Portál AbcLinuxu, 30. dubna 2025 13:13
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.
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
.
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
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
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*
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.
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.
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.
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)
Myslím, že v současnosti by mělo stačit toto:
en_US.UTF-8 UTF-8 cs_CZ.UTF-8 UTF-8
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
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
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
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.