Diskless Linux készítése

Egy nagyon hasznos szolgáltatás telepítését mutatom be. Sokszor lehet hasznos egy olyan hálózatról induló linux, ami a hardverek többségét felismeri és kezeli.
A szakirodalom Diskless Linux megoldásként ismeri, a lényege, hogy a hálózatról induló gép a TFTP kiszolgálóról megkapja a PXE konfigurációt, amiben le van írva, hogy milyen NFS kiszolgálóhoz kapcsolódjon.
Az indulás után egy karakteres vagy akár grafikus felületű Linux áll rendelkezésre, ami majdnem olyan gyorsan működik, mintha a gépben önálló HDD lenne.
A telepítés folyamata a következő:
A fájlrendszer számára készítünk egy könyvtárat

mkdir -p /nfsroot/diskless/

A már telepített debootstrap csomag segítségével egy alap fájlrendszert töltünk le, a --include után fel lehet sorolni csomagokat, amiket szeretnénk, hogy a debootstrap töltsön le és állítson be.

debootstrap --include=nfsbooted,dhcp3-client,procps,passwd,vim,less,configure-debian  lenny /nfsroot/diskless/  http://ftp.hu.debian.org/debian  --arch i386

Később az fstab- ban az alábbi könyvtárat adjuk meg, mint csatolási pont

mkdir -p /nfsroot/diskless/.nfsroot

Néhány alapvető fájlt beállítunk:

echo "127.0.0.1       localhost" > /nfsroot/diskless/etc/hosts
echo "diskless" > /nfsroot/diskless/etc/hostname
cp /etc/resolv.conf /nfsroot/diskless/etc/

A fájlrendszer csatolási pontját és az egyéb felcsatolásokat beállítjuk. Sokat lehet gyorsítani a Linux működésén, ha az olyan könyvtárakat, amelyekbe sokat írunk és nem baj, ha elveszik az ideiglenes adat, memóriában tároljuk. Erre jó a tmpfs és a ramfs

echo "NFSROOTDIR=/.nfsroot" > /nfsroot/diskless/etc/nfsbooted/mountfix.conf
cat < /nfsroot/diskless/etc/fstab
/               /.nfsroot       none    bind,ro         0 0
proc            /proc           proc    defaults        0 0
/dev/ram        /tmp            ramfs   defaults,rw,auto,dev            0 0
/dev/ram1       /var/run        ramfs   defaults,rw,auto,dev            0 0
/dev/ram2       /var/state      ramfs   defaults,rw,auto,dev            0 0
/dev/ram3       /var/lock       ramfs   defaults,rw,auto,dev            0 0
/dev/ram4       /var/account    ramfs   defaults,rw,auto,dev            0 0
/dev/ram5       /var/log        ramfs   defaults,rw,auto,dev            0 0
/dev/ram6       /var/lib/gdm    ramfs   defaults,rw,auto,dev            0 0
/dev/ram7       /var/tmp        ramfs   defaults,rw,auto,dev            0 0
/dev/ram8       /var/spool/cups ramfs   defaults,rw,auto,dev            0 0
EOF

Annak érdekében, hogy mindent megfelelően be tudjunk állítani, szükség van az alábbi felcsatolásokra:

mount -obind /proc /nfsroot/diskless/proc/
mount -obind /dev /nfsroot/diskless/dev/
mount -obind /sys /nfsroot/diskless/sys/

A chroot paranccsal a frissen telepített fájlrendszerbe lépünk, majd véglegesítjük a beállításokat.

chroot /nfsroot/diskless/
configure-debian –all
exit

Ezzel az alaprendszert el is készítettük, érdemes róla egy mentést készíteni

tar czf  diskless_diskless.tgz /nfsroot/diskless/

Telepítsünk néhány további csomagot, hogy grafikus felületen is dolgozhassunk. A fenti csatolásoknak működniük kell!.

chroot /nfsroot/diskless/
echo "deb http://ftp.hu.debian.org/debian diskless main contrib non-free" >/etc/apt/sources.list
apt-get update
apt-get install -y xserver-xorg-core gdm gnome-core smbfs mc less ssh

Annak érdekében, hogy az induláskor kapott pxe konfigból ki tudjuk nyerni az ott beállított gépnevet, az alábbira van szükség:

cat < /etc/init.d/sethostname
#!/bin/bash
recoveredName=\`dmesg  |  awk  '/host=/ {gsub(/host=/,"");gsub(/,/,"");print \$3}'\`
hostname \$recoveredName
touch /var/log/dmesg
EOF
chmod +x /etc/init.d/sethostname

Ezt a beállítást tegyük meg a második futási szinten.

ln -s /etc/init.d/sethostname /etc/rc2.d/S99sethostname

Érdemes beállítani az időzónát is:

dpkg-reconfigure tzdata
exit

A fentiekkel jó alapot készítettünk a Diskless Linuxunknak, már csak a kernel modulokat kell rendelkezésre bocsátani, hogy induláskor be tudja tölteni őket.
Ezért az előre elkészített kernelt át kell másolni /nfsroot/diskless/lib/modules/ és a /nfsroot/diskless/boot/ alá.
Azért van szükség új kernel létrehozására, mert nem hagyományos blokk eszközről kell indulnia, hanem NFS fájlrendszerről.
A telepítés folyamatáról és a kernel elkészítéséről az alábbi oldalak nyújtanak részletesebb tájékoztatást:

http://wiki.bolay.net/doku.php?id=operating_systems:linux:debian:nfsboot
http://www.jukie.net/~bart/blog/20070316092236


Új hozzászólás: