linuxové bootování ze sítě

Potřebný software na serveru (Debian):
syslinux
tftpd-hpa
dphcpd3
nfs-kernel-server (není potřeba pro jednoduchý memtest boot)
portmap (není potřeba pro jednoduchý memtest boot)

Potřebný software na klientu :
žádný 🙂 (respektive je vše na serveru). Základní OS nainstalujeme (pouze pokud chceme bootovat OS – pro např. memtest je tohle zbytečné) do nějakého adresáře nejjednoduššeji debootstrapem:
# debootstrap etch _nekam_
# chroot _nekam_
# apt-get install portmap console-data console-common kbd debian-archive-keyring (a další dle chuti, např. vim)

————————————————-

Zde osekaný návod na memtest boot:

(je to pro Debian):

do dhcpd.conf přidat:

allow booting;
allow bootp;
filename “boot/pxelinux.0”;
next-server _ip_adresa_tvého_serveru_kde_běží_tftp_;

a reload dhcpd

Pro Debian:
nainstalovat tftpd-hpa (tftpd musí umět “tsize”, default tftpd to neumí), pokud je spouštěn přes inetd, tak mrknout do konfiguráku na jeho výchozí adresář s daty, řekněme, že to je /var/lib/tftpboot, v něm vyrobit adresář boot. Spustit tftpd-hpa.

nainstalovat syslinux, zkopírovat z něj (dpkg -L syslinux) do /var/lib/tftpboot/boot soubor pxelinux.0, dále v tom stejném adresáři vyrobit adresář syslinux.cfg a v něm vyrobit soubor default. Do něj umístit toto (já tam mám ještě navíc install debian.386, debian.amd64, stresslinux a nfsboot, dá se to prostě všelijak ohybat, viz dokumentaci):

DEFAULT memtest
TIMEOUT 0
PROMPT 1
DISPLAY boot.txt
LABEL memtest
kernel memtest

Dále stáhnout memtest pro linux, rozbalit tgz a podle README zkompilovat binárku memtestu a zkopírovat ji do /var/lib/tftpboot/boot. Dá se tam těch memtestů přidávat po libosti, do konfiguráku stačí pak jen přidat další label:
LABEL memtest2
kernel memtest2

Do /var/lib/tftpboot/boot ještě přihodit soubor boot.txt ve kterém bude něco jako:
Press Enter to continue with memtest or type desired label (options: metest, memtest2):
(nebo nějakou podobnou hovadinu).

Splashscreen

Je zobrazován v toku textu (nelze použít jako pozadí), řeší se “navazováním” černého obrázku. Vyrobí se obrázek vhodné výšky a šířky 640px, uloží se jako png v indexovaných barvách (optimální je vystačit se 4mi barvami, ale šlo mi 7 – možná půjde i víc, teoreticky jde 16, což je omezení ppmtolss16 – viz dále). Pak je potřeba png převést na formát rle (bude zapotřebí balík netpbm pro pngtopnm a pak skript ppmtolss16 je součástí balíku syslinux, stojí za to se do něj podívat, je to perlovina s docela solidní nápovědou v komentáři. Celá tahle legrace je pěkně komplikovaná, pro podrobonsti není špatně přečíst toto http://gentoo-wiki.com/HOWTO_gensplash) :
$ pngtopnm splash.png > splash.pnm
$ ppmtolss16 < splash.pnm > splash.rle

aby se to zobrazilo, je třeba do pxeconfigu přidat tento řádky /například/:
DISPLAY boot.txt

soubor boot.txt má trochu zvláštní formát na podrobnosti odkazuji do /usr/share/doc/syslinux/syslinux.doc.gz – je to tam zevrubně popsané. Řádek, který bude vkládat splashscreen v tomto souboru má tento tvar:
filename
kde je což je ASCII 24
V podstatě to bude speciální znak následovaný cestou k obrázku s koncovkou rle.
Tip: pokud nevíte, jak znaky vyrobit, tak nejjednodušší cesta je napsat to v nejjednodušším textovém editoru (vkládání se ukončuje pomocí ctrl+d) takto:
$ cat > boot.txt
Pak, když tam máte všechny podstatné znaky, se to dá editovat čímkoli (Vimem).

No a éto vsjo.

————————————–

Návod na rozběhnutí linuxového tenkého klienta (bezdisková stanice):

sorry, zatím nebyl čas 😉

Comments are closed.