LPS:AutomatizovanyInstalatorKoncovychStanicOrion/LiveCD

Z HelpDesk

Úvod

K vytvoření livecd jsou použity skripty z balíku live-build a k sestavení jsou zapotřebí tyto tři:

  1. 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.
  2. 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í:
    1. bootstrap: Naplní chroot adresář balíčky a vytvoří kostru systému (/root oddíl).
    2. chroot: Dokončí vytváření chroot adresáře. Nainstaluje požadované balíky apod.
    3. binary: Vytvoří finální obraz.
  3. 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.