Portál AbcLinuxu, 30. dubna 2025 13:13

„Živý Arch Linux“ — část druhá

18.8.2010 12:55 | Přečteno: 974× | Archlinux

V této druhé části se pokusíme vytvořit vlastní live distribuci založenou na Arch Linuxu pomocí sady skriptů náležejících do larch verze 7.2. Znovu připomínám, že by k tomu měla stačit téměř libovolná distribuce GNU/Linuxu. Tedy kromě Arch Linuxu můžete larch vytvořit např. i v Debianu apod. Jenom ještě nutno podotknout, že zvolíme tu "nejjednodušší variantu" -- tedy live systém bez X, určený pro opravy apod.

1. požadavky

bash, mkfs.vfat, mkfs.ext2, blkid and sfdisk a chroot musí být přítomny. Python (>= 2.5) a python-pexpect jsou nezbytné.

Nezbytností je samozřejmě nainstalovat sadu skriptů a ostatních dat patřících do larch. Stáhněte skript (program) larch-setup do nějakého prázdného adresáře, já budu používat ve výkladu adresář ~/larch-7.2, nastavte se do tohoto adresáře (tento adresář tedy bude pracovní), dále chmod u+x larch-setup. Nakonec skript spusťte a vyčkejte na jeho řádné ukončení.

Dále je třeba zkopírovat všechny soubory z ftp://ftp.berlios.de/pub/larch/larch7.2/i686 do nějakého adresáře, já budu předpokládat, že jsme soubory zkopírovali do adresáře /home/rotor/larch72repo.

2. Zkopírování profilu

Profily jsem už teoreticky vysvětlil v předchozím (prvním) zápisku. Zopakuju tedy jenom to, že profil je určitý adresář obsahující konfigurační informace pro tvorbu live systému. Název adresáře profilu je zároveň jménem profilu. Profily dodané přímo s larch najdete v adresáři ~/larch-7.2/larch0/profiles. Určitý profil si tedy někam zkopírujte a potom můžete ihned začít s jeho úpravami. Já využiju existující profil 'mini'. Náš profil, se kterým budeme dále pracovat, se bude jmenovat 'my_mini' a základní kameny převezme tedy z profilu 'mini':

cd ~/larch-7.2/larch0/profiles
cp --archive mini my_mini

3. ~/larch-7.2/larch0/data/mirrorlist

Editací tohoto souboru vybereme zrcadla (mirrors) s balíčky Arch Linuxu. Pokud pracujete právě v Arch Linuxu, tak se použije /etc/pacman.d/mirrorlist. Tady je ukázka, jak by mohl vypadat (minimální) mirrorlist:

# Czech Republic
Server = http://ftp.sh.cvut.cz/MIRRORS/arch/$repo/os/x86_64

#nebo (pokud nemáte 64bitový procesor):
#Server = http://ftp.sh.cvut.cz/MIRRORS/arch/$repo/os/i686

4. ~/larch-7.2/larch0/data/pacman.conf.repos

Konfigurace repozitářů. Všimněte si řádku začínajícího larch:, už určitě víte, proč jsme tam kopírovali soubory z ftp://ftp.berlios.de/pub/larch/larch7.2/i686 (je třeba poznamenat, že standardní cesta přeš larch: Server = ftp://ftp.berlios.de/pub/larch/larch7.2/i686 nefunguje):

# Package repository entries for pacman.conf
# '*platform*' will be replaced by 'i686' or 'x86_64' as appropriate.
# '*default*' will normally be replaced by 'Include = /etc/pacman.d/mirrorlist'
# (but for the installation: a 'mirrorlist' file in the working directory will
# be preferred, or - if neither exists - then 'data/mirrorlist')


# You can add your own custom repositories (anywhere).

larch:      Server = file:///home/rotor/larch72repo
#testing:    *default*
core:       *default*
extra:      *default*
community:  *default*

5. ~/larch-7.2/larch0/profiles/my_mini/pacman.conf.options

Pokud vám nebude vyhovovat konfigurační soubor správce balíčků -- programu pacman, tedy soubor ~/larch-7.2/larch0/data/pacman.conf, tak můžete vytvořit soubor pacman.conf.options v adresáři profilu, dojde k překrytí. Poznámka: repozitáře už jsme definovali v souboru pacman.conf.repos. Specifikace repozitáře(ů) v souboru pacman.conf.options bude ignorována. Pro naše účely stačí vychozí ~/larch-7.2/larch0/data/pacman.conf.

6. ~/larch-7.2/larch0/profiles/my_mini/addedpacks

Toto je (asi) nejdůležitější a povinný profilový soubor. Obsahuje seznam jmen balíčků nebo skupin balíčků, které budou použity k tvorbě live systému. Co řádek, to jméno balíčku nebo jméno skupiny balíčků. Prázdné řádky nebo řádky začínající '#' budou ignorovány. Pokud jménu skupiny předchází '*', potom je možné vyloučit instalaci určitých balíčků patřících do této skupiny pomocí 'vetopacks' souboru. Bez použití '*' není toto vyloučení (zakázání) možné. Balíčkové závislosti vyřeší pacman automaticky. Poznámka: Určité balíčky označené jako 'required' (vyžadované) nebo 'suggested' (navrhované) jsou zahrnuty automaticky. Jejich seznam naleznete v souboru ~/larch-7.2/larch0/data/requiredpacks. Ukázka souboru addedpacks:

# Useful for use as installer, etc.
ntfsprogs
parted

# generally useful tools which don't require X
openssh
sshfs
rsync
dosfstools
lynx
mc
unzip
zip

lsof
dvd+rw-tools

Soubor ~/larch-7.2/larch0/profiles/my_mini/addedpacks si můžete libovolně upravit (vylepšit). Já se ale budu držet jeho vychozího obsahu.

7. ~/larch-7.2/larch0/profiles/my_mini/vetopacks

Co řádek, to jméno balíčku, který má být vyřazen z instalačního seznamu. Je to hlavně užitečné, když chceme vyřadit z instalačního seznamu nějaký balíček či balíčky z určité skupiny. Poznámka: I když zahrneme do tohoto souboru určitý název balíčku, který by se měl vyloučit z instalačního seznamu, tak není stejně jistota, zda tento balíček bude skutečně "vyloučen". Může ho totiž jako závislost vyžadovat jiný balíček ze seznamu addedpacks.

8. ~/larch-7.2/larch0/profiles/my_mini/rootoverlay/etc/rc.conf

Toto je hlavní konfigurační soubor Arch Linuxu. Je dobře čitelný a myslím, že úplně stačí, abych uvedl svůj rc.conf:

#
# /etc/rc.conf - Main Configuration for Arch Linux
#

# -----------------------------------------------------------------------
# LOCALIZATION
# -----------------------------------------------------------------------
#
# LOCALE: available languages can be listed with the 'locale -a' command
# HARDWARECLOCK: set to "UTC" or "localtime", any other value will result
#   in the hardware clock being left untouched (useful for virtualization)
# TIMEZONE: timezones are found in /usr/share/zoneinfo
# KEYMAP: keymaps are found in /usr/share/kbd/keymaps
# CONSOLEFONT: found in /usr/share/kbd/consolefonts (only needed for non-US)
# CONSOLEMAP: found in /usr/share/kbd/consoletrans
# USECOLOR: use ANSI color sequences in startup messages
#
LOCALE="cs_CZ.UTF-8"
HARDWARECLOCK="localtime"
TIMEZONE="Europe/Prague"
KEYMAP="cz-us-qwertz"
CONSOLEFONT="lat2-16"
CONSOLEMAP="8859-2_to_uni"
USECOLOR="yes"

# -----------------------------------------------------------------------
# HARDWARE
# -----------------------------------------------------------------------
#
# MOD_AUTOLOAD: Allow autoloading of modules at boot and when needed
# MOD_BLACKLIST: Prevent udev from loading these modules
# MODULES: Modules to load at boot-up. Prefix with a ! to blacklist.
#
# NOTE: Use of 'MOD_BLACKLIST' is deprecated. Please use ! in the MODULES array.
#
MOD_AUTOLOAD="yes"
#MOD_BLACKLIST=() #deprecated
MODULES=()

# Scan for LVM volume groups at startup, required if you use LVM
USELVM="no"

# -----------------------------------------------------------------------
# NETWORKING
# -----------------------------------------------------------------------
#
# HOSTNAME: Hostname of machine. Should also be put in /etc/hosts
#
HOSTNAME="darkstar"

# Use 'ifconfig -a' or 'ls /sys/class/net/' to see all available interfaces.
#
# Interfaces to start at boot-up (in this order)
# Declare each interface then list in INTERFACES
#   - prefix an entry in INTERFACES with a ! to disable it
#   - no hyphens in your interface names - Bash doesn't like it
# 
# DHCP:     Set your interface to "dhcp" (eth0="dhcp")
# Wireless: See network profiles below
#

#Static IP example
#eth0="eth0 192.168.0.2 netmask 255.255.255.0 broadcast 192.168.0.255"
eth0="dhcp"
INTERFACES=(eth0)

# Routes to start at boot-up (in this order)
# Declare each route then list in ROUTES
#   - prefix an entry in ROUTES with a ! to disable it
#
gateway="default gw 192.168.0.1"
ROUTES=(!gateway)
 
# Enable these network profiles at boot-up.  These are only useful
# if you happen to need multiple network configurations (ie, laptop users)
#   - set to 'menu' to present a menu during boot-up (dialog package required)
#   - prefix an entry with a ! to disable it
#
# Network profiles are found in /etc/network.d
#
# This now requires the netcfg package
#
#NETWORKS=(main)

# -----------------------------------------------------------------------
# DAEMONS
# -----------------------------------------------------------------------
#
# Daemons to start at boot-up (in this order)
#   - prefix a daemon with a ! to disable it
#   - prefix a daemon with a @ to start it up in the background
#
DAEMONS=(syslog-ng network crond)

9. ~/larch-7.2/larch0/profiles/my_mini/rootoverlay/etc/locale.gen

Myslím, že v současnosti by mělo stačit toto:

en_US.UTF-8  UTF-8
cs_CZ.UTF-8  UTF-8

10. raw installation

Nejdřív poznamenám, že jsme si tento pojem už vysvětlili v prvním díle. Ale pro ty, co nechtějí číst část první ;-) mám zjednodušenou "definici": 'raw installation' je čistá (nenakonfigurovaná, neupravená) instalace Arch Linuxu (do určitého adresáře). Program larch-archin slouží k vytváření 'raw installation'. Dále uvedu příkaz, kterým vytvoříme 'raw installation' do adresáře /home/larchbuild, musíte ho spustit jako root! Poznámka: Pracovat jako root v *Ubuntu snad půjde pomocí příkazu sudo su - "[login name]" nahraďte vaším přihlašovacím jménem.

cd /home/[login name]/larch-7.2
./larch-archin --profile=larch0/profiles/my_mini --installation-dir=/home/larchbuild install

11. Vytvoření live systému

Následující skript (příkaz) vytvoří live systém, tedy hlavně archivy (viz první část) system.sqf a mods.sqf. Opět toto musíte vykonat jako root a "[login name]" nahradit vaším přihlašovacím jménem:

cd /home/[login name]/larch-7.2
./larch-larchify --profile=larch0/profiles/my_mini --installation-dir=/home/larchbuild

12. Vytvoření bootovatelného 'iso' obrazu (spustit jako root!)

Vytvoříme bootovatelný 'iso' obraz my_mini.iso

cd /home/[login name]/larch-7.2
./larch-live_iso --profile=larch0/profiles/my_mini --installation-dir=/home/larchbuild --isofile=my_mini.iso

Pokud chceme vytvořit bootovatelný USB Flash disk, tak si nejdřív musíte pečlivě zjistit oddíl, na který chcete zapsat live systém! Předpokládám, že se jedná o /dev/sdc1. Potom jako root vykonejte následující (použijeme systém souborů ext2):

cd /home/[login name]/larch-7.2
./larch-live_part --profile=larch0/profiles/my_mini --installation-dir=/home/larchbuild --format=ext2 sdc1
       

Hodnocení: 100 %

        špatnédobré        

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

Komentáře

Nástroje: Začni sledovat (2) ?Zašle upozornění na váš email při vložení nového komentáře. , Tisk

Vložit další komentář

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.