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
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
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 pontmkdir -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 ramfsecho "diskless" > /nfsroot/diskless/etc/hostname
cp /etc/resolv.conf /nfsroot/diskless/etc/
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:cat <
/ /.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
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.mount -obind /dev /nfsroot/diskless/dev/
mount -obind /sys /nfsroot/diskless/sys/
chroot /nfsroot/diskless/
configure-debian –all
exit
Ezzel az alaprendszert el is készítettük, érdemes róla egy mentést készíteniconfigure-debian –all
exit
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: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
cat < /etc/init.d/sethostname
#!/bin/bash
recoveredName=\`dmesg | awk '/host=/ {gsub(/host=/,"");gsub(/,/,"");print \$3}'\`
hostname \$recoveredName
touch /var/log/dmesg
EOF
#!/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.exit
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
