LPS:AutomatizovanyInstalatorKoncovychStanicOrion/LiveCD
Úvod
K vytvoření livecd jsou použity skripty z balíku live-build a k sestavení jsou zapotřebí tyto tři:
- lb config: Vytvoří kostru konfigurace, která je uložena v souborech v adresáři config. Tento adresář obsahuje vše potřebné k samotnému sestavení výsledného iso souboru.
- lb build: Načte konfiguraci z adresáře config a vytvoří výsledný obraz. Vytvoření livecd je rozděleno do následujících fází:
- bootstrap: Naplní chroot adresář balíčky a vytvoří kostru systému (/root oddíl).
- chroot: Dokončí vytváření chroot adresáře. Nainstaluje požadované balíky apod.
- binary: Vytvoří finální obraz.
- lb clean: Slouží k vyčištění pracovního adresáře, aby bylo možné provést vícero po sobě jdoucích sestavení obrazu.
Auto skripty
Příkaz lb config na základě předaných parametrů vytvoří konfiguraci v adresáři config. Při opětovném spuštění z jinými parametry nemusí dojít ke správné aktualizaci adresáře a z toho důvodu jsou použity auto skripty, které jsou uloženy v adresáři auto. Soubor auto/config poté obsahuje příkaz lb config ze všemi jeho parametry.
Postup sestavení LiveCD
Následuje návod na vytvoření vlastního (upraveného) livecd, které automaticky spustí grafické rozhraní s rootovským terminálem.
Vytvoření počáteční konfigurace
Nejdříve spustíme příkaz lb config, který vytvoří kostru konfigurace. Poté příkazem cp /usr/share/doc/live-build/examples/auto/* auto/ nakopírujeme ukázkové auto skripty. Upravíme soubor auto/config, tak aby obsahoval:
#!/bin/sh lb config noauto \ -a i386 \ -d wheezy \ -b iso-hybrid \ "${@}"
Pro přehlednost je každý parametr uveden na vlastní řádce, proto je zapotřebí řádku ukončit \. Parametr -a určuje architekturu, -d slouží k výběru distribuce a parametrem -b zvolíme typ obrazu (iso|iso-hybrid|net|tar|usb-hdd).
Nakonec ještě znovu spustíme příkaz lb config, aby se výše provedené úpravy projevily.
Úprava bootloaderu
Pro zobrazení vlastního pozadí nakopírujeme soubor s pozadím do adresáře config/includes.binary/isolinux/ (adresář je nutné vytvořit). Soubor se musí jmenovat splash.png.
Dobu zobrazení menu změníme vytvořením souboru (shellového skriptu) config/hooks/bootloader_timeout.binary. Umístěním skriptu do adresáře config/hooks jsme vytvořili hook - tento skript bude automaticky spuštěn a to v příslušné fázi sestavení, která je dána příponou. Na jméně souboru nezáleží, ale musí mít příponu .binary, aby ke spuštění došlo během finálního sestavení obrazu. Obsah skriptu je následující:
#!/bin/sh sed -i 's|timeout 0|timeout 50|' binary/isolinux/isolinux.cfg
Po jeho spuštění dojde v konfiguračním souboru bootloaderu k přepsání defaultní hodnoty timeout 0 na timeout 50.
Vytvoření seznamu balíků
Pro nainstalování námi vybraných balíků vytvoříme soubor config/package-lists/packages.list.chroot. Obdobně jako u hooků musí mít soubor příponu .list.chroot, aby byly balíky nainstalovány do budoucího systému. Seznam balíků je možné rozdělit i do více souborů. Ukázka obsahu souboru:
vim screen openssh-client parted bash-completion ntfs-3g rsync lxde
Přidání/Nahrazení souborů
Pokud chceme nahradit, nebo přidat soubory do budoucího systému, stačí je umístit do příslušného adresáře v adresáři config/includes.chroot/. Např. pokud chceme přepsat soubor /root/.bashrc nakopírujeme daný soubor do adresáře config/includes.chroot/root/.bashrc.
Nastavení grafického prostředí
Vytvoříme soubor config/includes.chroot/home/user/.config/autostart/terminal.desktop s obsahem:
[Desktop Entry] Type=Application Exec=sudo lxterminal Terminal=true
Tím zajistíme spuštění rootovského terminálu po spuštění systému.
Dále je potřeba, aby při vytváření obrazu došlo ke zkopírování konfigurace lxpanelu do domovského adresáře uživatele. To provedeme skriptem config/hooks/lxpanel.chroot, do kterého uložíme tento obsah:
#/bin/sh mkdir -p /home/user/.config/lxpanel/ cp -r /etc/xdg/lxpanel/profile/LXDE /home/user/.config/lxpanel/
Aby se terminál zobrazil maximalizovaný, upravíme konfiguraci okenního manageru. Vytvoříme hook config/hooks/openbox.chroot, jehož obsah je:
#!/bin/sh sed -i 's|</applications>|<application name="lxterminal">\n<maximized>yes</maximized>\n</application>\n</applications>|' /etc/xdg/openbox/rc.xml
Sestavení finálního obrazu
Jako root zavoláme příkaz lb build, čímž spustíme sestavení výsledného obrazu. Po jeho skončení se v aktuálním adresáři vytvoří soubor s obrazem. V našem případě binary.hybrid.iso. Dojde také k uložení logu a to do build.log.
Před dalším zavoláním lb build je potřeba nejprve spustit skript lb clean.