Hlavní navigace

Kickstart CD pro RH 7.x

Václav Říkal 19. 9. 2002

V nedávné době jsem byl nucen pobíhat se třemi CD Red Hatu mezi spoustou různých strojů a instalovat a měnit a nastavovat... Přitom podstata byla jednoduchá: udělat minimální instalaci, nastavit síť, vykopat nepotřebné rpms, zastavit nechtěné služby a nakonfigurovat systém k obrazu svému.

Celý objem nainstalovaného softu je přitom obvykle menší, než je velikost CD. Už jen měnit CD v mechanice během instalace je otrava, když si místo toho můžeme v klidu dát cigárko/sex/ka­fíčko/párek+ka­kao/freeciv. Dle libosti. Další nezanedbatelnou výhodou je, že při tom všem nám zůstane zachován funkční instalátor RH 7.x, takže to CD se dá použít na skutečně různorodých strojích.

Příprava CD

Každý, kdo RH někdy instaloval, zná kickstart soubor /root/anaconda-ks.cfg, který vznikne po instalaci. Ten je výchozím článkem pro celou proceduru selfinstalace. Samotný by ale moc nepomohl, budeme se muset vrtat mnohem hlouběji. Pro začátek si ho zkopírujme do ks.cfg

Nejprve je nutné zkopírovat někam instalační CD, na to je potřeba místo na té které partišně. Osvědčil se mi tenhle postup (opakovaný pro všechna CD):

 mount /mnt/cdrom
 mkdir $HOME/kick-7.3/kick-CD
 cd /mnt/cdrom
 tar -cf - . | ( cd $HOME/kick-7.3/kick-CD ; tar -xvpf - )
 cd $HOME/kick-7.3/kick-CD
 umount /mnt/cdrom

Někdo musí z kola ven…

…aby se to všechno vešlo na CD. Teď je čas na kreativitu. Vyplatí se použít rpm -qa > $HOME/installed, spuštěný na už hotovém systému. Ten použijeme jako mustr a získáme tak seznam pakáží, které je potřeba ponechat v $HOME/kick-7.3/kick-CD/RedHat/RPMS.

V souboru $HOME/kick-7.3/kick-CD/RedHat/base/com­ps je výpis pakáží, který čte instalační anaconda a na který se odkazuje iks.cfg. Má celkem jednoduchou strukturu. Dozvíme se v něm, proč se nám normálně instaluje sendmail a podobná zvěrsva, i když je vůbec nechceme. Pro naše účely stačí, když bude mít tento tvar:

4

1 Base {
hwdata
mailcap
.
. <vynechán dlouhý seznam>
.
vim-enhanced
taper
perl-libnet
}

Mezi {} závorkami ponecháme výpis z $HOME/installed. Stále však instalátor neví, že je vše jen na jednom CD. Je potřeba rebuild

$HOME/kick-7.3/kick-CD/RedHat/base/hdlis­t, na to je v pakáži anaconda-runtime prográmek genhdlist:

genhdlist --withnumbers
  --hdlist RedHat/base/hdlist $HOME/kick-7.3

Mezi hdlist, comps a ks.cfg je potřeba zajistit konzistenci. V tom nám pomůžou tyhle skriptíky: comps-check.pl, který srovná obsah comps souboru s

$HOME/kick-7.3/kick-CD/RedHat/RPMS, a depchecktree.py, kterýžto testne křížové závislosti pakáží tamtéž. ks.cfg si musíme pohlídat sami.

kickstart

Teď dojde na ks.cfg. Tenhle soubor čte anaconda při bootu z CD. Je celkem slušně zdokumentován (na rozdíl od předchozího) v customization guide RedHatu. Dokonce existuje gui nástroj (ksconfig) na jeho tvorbu, ale co s GUI, že?

Nicméně se vyplatí postupovat opatrně, např. při tvorbě partitions pracuje příliš hrubě. Hm, ne surově, ale má jen velmi málo options. Navíc třeba mezi RH7.2 a RH7.3 je rozdíl v locales, takže en_US.iso885915 použité v ks.cfg z RH7.3 vám RH7.2 nezbaští a během instalace na vás anaconda vysype spoustu errorů a zhasne.

Pokud máme comps soubor ve tvaru uvedeném nahoře, vypadá seznam pakáží v ks.cfg takhle:

%packages
@Base

Pakáž kudzu je k instalaci nutná, když jsem ji v %packages vynechal, zhavarovalo to. Smažte ji tedy až po instalaci v sekci %post. Mimochodem, tam se dá celkem slušně vyřádit, jestli tedy potřebujete co nejvíc pozměnit konfiguraci daného stroje, tak tady je to nejlepší místo.

Soubor ks.cfg musí přijít do image v$HOME/kick-7.3/kick-CD/dosutils/au­toboot/cdboot­.img, který je načítán během bootu. Tady je jeden z možných postupů, jak ho tam zahnat:

mount -o loop
 $HOME/kick-7.3/kick-CD/dosutils/autoboot/cdboot.img
 /mnt/floppy
gzip -dc /mnt/floppy/initrd.img > floppy.initrd
mkdir /tmp/redhat
mount -o loop floppy.initrd /tmp/redhat
install -c -m 644 ks.cfg /tmp/redhat/tmp
umount /tmp/redhat
gzip -9 floppy.initrd
mv floppy.initrd.gz /mnt/floppy/initrd.img
umount -f /mnt/floppy
rmdir /tmp/redhat

Navíc je to floppy, takže se na ní nemůžeme příliš rozmachovat. Nyní je třeba upravit syslinux.cfg. Tam se při bootu pomocí předaného parametru anaconda dozví, že a kde má hledat ks.cfg. Takže třeba:

mount -o loop
 $HOME/kick-7.3/kick-CD/RedHat/dosutils/autoboot/cdboot.img
 /mnt/floppy
$(EDITOR) /mnt/floppy/syslinux.cfg
umount -f /mnt/floppy

kde ve svém oblíbeném editoru upravíme řádek začínající append tak, aby obsahoval ks=floppy, nebojte se, je to sice floppy, ve skutečnosti však je to jeho image, co v něm právě editujeme. Pro případ, že by ho měl hledat na skutečné floppy, je třeba tam mít ks=hd:fd0/ks.cfg. Dají se s tím dělat psí kusy, za domácí úkol si přečtěte manuál.

A teď to spálit

Každý, kdo má vypalovačku, ji má rozchozenou. Tečka. Takže mu stačí:

mkisofs -b \
 $HOME/kick-7.3/kick-CD/RedHat/dosutils/autoboot/cdboot.img \
 -l -J -R -r -T -V 'Custom RH Install' . | \
   cdrecord -v blank=fast speed=4 dev=0,0,0 -

dle chuti pozměnit parametry. No a to by mělo být vše. Celý postup potřebuje ještě moře práce, aby to bylo vyladěno, ale to už nechám na laskavém čtenáři.

Jde to nastavit tak, aby si to bralo rpms ze sítě, přidat tam do %post sekce základní nastavení FW (ten redhnátí je směšný a navíc postavený na ipchains), na CD-RW si takhle můžeme udržovat up2date pakáže (nebere to jejich čísla, ale jen jména)… no prostě otázka – jako obvykle – nezní, jestli to jde, ale jak to udělat.

Ale o tom až v pátém kvartálu

Ukázky

můj ks.cfg (upraveno), syslinux.cfg

Credits

Tohle všechno jsem samozřejmě nevymyslel a nebudu tady lízat cizí smetanu. Velmi nápomocná je stránkaGraye Watsona, jehož Makefile jsem témeř nemusel předělávat.

Mnohem komplexněji je to popsáno tady.

comps-check.pl a depchecktree.py pochazejí odsud.

Našli jste v článku chybu?

22. 8. 2007 2:40

Vac (neregistrovaný)
Musím říct, že se stydím, že jsem to na tomhle serveru publikoval. (Vážně! Tehdy to tu nebylo o BLEKÁCH a komiksech, a root.cz bylo jméno.) A je jen dobře, že tomu vy *ntuisti nerozumíte ;)

26. 11. 2002 23:42

Vac (neregistrovaný)

To byla pocta nesmrtelnemu Lukasi Gallinovi a jeho zvracenym chutovym kombinacim ;)

Vitalia.cz: Mondelez stahuje rizikovou čokoládu Milka

Mondelez stahuje rizikovou čokoládu Milka

Měšec.cz: U levneELEKTRO.cz už reklamaci nevyřídíte

U levneELEKTRO.cz už reklamaci nevyřídíte

Měšec.cz: Air Bank zruší TOP3 garanci a zdražuje kurzy

Air Bank zruší TOP3 garanci a zdražuje kurzy

Vitalia.cz: Nestlé vyvinula nový typ „netloustnoucího“ cukru

Nestlé vyvinula nový typ „netloustnoucího“ cukru

Podnikatel.cz: Přehledná titulka, průvodci, responzivita

Přehledná titulka, průvodci, responzivita

Lupa.cz: Proč firmy málo chrání data? Chovají se logicky

Proč firmy málo chrání data? Chovají se logicky

Vitalia.cz: Chtějí si léčit kvasinky. Lék je jen v Německu

Chtějí si léčit kvasinky. Lék je jen v Německu

Root.cz: Certifikáty zadarmo jsou horší než za peníze?

Certifikáty zadarmo jsou horší než za peníze?

Vitalia.cz: Znáte „černý detox“? Ani to nezkoušejte

Znáte „černý detox“? Ani to nezkoušejte

Lupa.cz: Insolvenční řízení kvůli cookies? Vítejte v ČR

Insolvenční řízení kvůli cookies? Vítejte v ČR

Vitalia.cz: Baletky propagují zdravotní superpostel

Baletky propagují zdravotní superpostel

Vitalia.cz: Dáte si jahody s plísní?

Dáte si jahody s plísní?

Podnikatel.cz: Na poslední chvíli šokuje výjimkami v EET

Na poslední chvíli šokuje výjimkami v EET

DigiZone.cz: ČT má dalšího zástupce v EBU

ČT má dalšího zástupce v EBU

Vitalia.cz: Láska na vozíku: Přitažliví jsme pro tzv. pečovatelky

Láska na vozíku: Přitažliví jsme pro tzv. pečovatelky

Podnikatel.cz: 1. den EET? Problémy s pokladnami

1. den EET? Problémy s pokladnami

DigiZone.cz: Recenze Westworld: zavraždit a...

Recenze Westworld: zavraždit a...

Lupa.cz: Seznam mění vedení. Pavel Zima v čele končí

Seznam mění vedení. Pavel Zima v čele končí

Lupa.cz: Co se dá měřit přes Internet věcí

Co se dá měřit přes Internet věcí

Měšec.cz: Jak vymáhat výživné zadarmo?

Jak vymáhat výživné zadarmo?