SVN: PLD-doc/queue/diskless.sec
wolvverine
wolvverine w pld-linux.org
Pi±, 30 Lis 2007, 13:27:16 CET
Author: wolvverine
Date: Fri Nov 30 13:27:16 2007
New Revision: 9124
Modified:
PLD-doc/queue/diskless.sec
Log:
- poprawki, usci¶lenia, konkretny przykład instalacji
Modified: PLD-doc/queue/diskless.sec
==============================================================================
--- PLD-doc/queue/diskless.sec (original)
+++ PLD-doc/queue/diskless.sec Fri Nov 30 13:27:16 2007
@@ -1,48 +1,24 @@
-Bootowanie za pomoc± PXE z sieci systemu root-NFS
+Bootowanie z sieci i system z root-NFS
Co potrzebne:
-1. karta sieciowa z opcja bootowania przez sieć (PXE)
-2. serwer DHCP (zalecane)
- i/lub serwer PXE
- i/lub bootparamd
- i/lub bootp (zalecane dhcp zamiast bootp)
-3. serwer tftp (istnieje chyba mozliwo¶c pominięcia)
-4. serwer NFS udostępniajacy system (root-NFS)
-
-potrzebne pakiety na serwerze:
-syslinux
-nfsd
-
-
-Parametry startowe dla stacji bezdyskowych mozemy przekazywać na kilka sposobów:
-1. za pomoc± dhcp - pakiet dhcpd
-2. za pomoc± serwera PXE - pakie pxe
-3. za pomoc± usługi bootparamd - pakiet bootparamd
-4. za pomoca serwera bootp (zalecane jest korzystanie z dhcp jednak) - pakiet bootp
+1. karta sieciowa z opcja bootowania przez sieć (PXE).
+2. serwer przekazujÄ…cy parametry startowe:
+ Parametry startowe dla stacji bezdyskowych możemy przekazywać na kilka sposobów:
+ a. za pomocą dhcp - pakiet dhcpd (najczęściej stosowane i zalecane)
+ b. za pomocÄ… serwera PXE - pakie pxe
+ c. za pomocÄ… bootparamd - pakiet bootparamd
+ d. za pomoca serwera bootp (zalecane jest korzystanie z dhcp jednak) - pakiet bootp
+3. serwer tftp - pakiet tftpd-hpa (obecnie zalecany do współpracy z pxelinux)
+4. serwer NFS udostępniający system (root-NFS) - pakiet nfsd
-Konfiguracja serwera DHCP dla stacji bootowanych przez sieć:
+Konfiguracja serwera DHCP dla stacji bootowanych przez sieć (wybrane opcje):
-w /etc/dhcpd.conf:
-
-allow bootp;
-allow booting;
-server-identifier 192.168.0.1;
-range dynamic-bootp 192.168.0.10 192.168.0.20;
-option option-128 code 128 = string;
-option option-129 code 129 = text;
-option space pxelinux;
-option pxelinux.magic code 208 = string;
-option pxelinux.configfile code 209 = text;
-option pxelinux.pathprefix code 210 = text;
-option pxelinux.reboottime code 211 = unsigned integer 32;
-
-
-opcje poniżej mozemy podac dla wszystkich stacji, wybranej grupy lub dla pojedyńczych terminali:
+opcje poniżej mozemy podac dla wszystkich stacji, wybranej grupy lub dla pojedyńczych terminali:
next-server 192.168.0.1; # IP serwera TFTP
-filename "/var/lib/tftp/pxelinux.0"; # pełna scieżka do pliku bootloadera dla PXE z pakietu syslinux
-option root-path "/mnt/hdb2/root/serwer2"; # pełna scieżka do root-path dla terminala (z /etc/exports)
+filename "/var/lib/tftp/pxe/pxelinux.0"; # pełna scieżka do pliku bootloadera dla PXE z pakietu syslinux, jeśli serwer tftp działa w chroot podajemy względną
+option root-path "/mnt/hdb2/root/serwer2"; # pełna scieżka do root-path dla terminala (z /etc/exports)
w konfiguracji dla pojedynczej stacji:
@@ -51,26 +27,24 @@
hardware ethernet 00:d0:dd:d6:df:d7;
fixed-address 192.168.0.2;
next-server 192.168.0.1; # IP serwera TFTP
- filename "/var/lib/tftp/pxelinux.0"; # pełna scieżka do pliku bootloadera dla PXE z pakietu syslinux
- option root-path "/mnt/hdb2/root/serwer2"; # pełna scieżka do root-path dla terminala (z /etc/exports)
+ filename "/var/lib/tftp/pxe/pxelinux.0"; # pełna scieżka do pliku bootloadera dla PXE z pakietu syslinux (jeżeli tftp działa w chroot podajemy względną)
+ option root-path "/mnt/hdb2/root/serwer2"; # pełna scieżka do root-path dla terminala (z /etc/exports)
}
konfiguracja serwera PXE:
[root w serwer root]# vim /etc/pxe.conf
-interface=eth1 # interface na którym serwer PXE ma działać
-default_address=192.168.0.1 # adress IP na którym ma nasłuchiwać serwer
-listen_port=4011 # port na którym serwer PXE ma nasłuchiwać
+interface=eth1 # interface na którym serwer PXE ma działać
+default_address=192.168.0.1 # adress IP na którym ma nasłuchiwać serwer
+listen_port=4011 # port na którym serwer PXE ma nasłuchiwać
use_multicast=0 #
use_broadcast=0 #
prompt=Press F8 to view menu ... # komunikat
prompt_timeout=10 #
service=X86PC,0,0,local,Local boot #
service=X86PC,0,0,pxelinux,PXELinux #
-tftpdbase=/var/lib/tftp # pełna sciezka do katalogu tftp z plikami startowymi
-
-
+tftpdbase=/var/lib/tftp/pxe # pełna sciezka do katalogu tftp z plikami startowymi
Konfiguracja serwera bootp:
@@ -81,37 +55,24 @@
:gw=192.168.0.1:\
:ht=ethernet:\
:bf=linux:
-serwer2:hd=/var/lib/tftp:tc=global.prof:ha=00508d665f67:ip=192.168.0.2
+serwer2:hd=/var/lib/tftp/pxe:tc=global.prof:ha=00508d665f67:ip=192.168.0.2
-Konfiguracja usługi bootparams:
+Konfiguracja usługi bootparams:
[root w serwer root]# vim /etc/bootparams
-serwer2 serwer:/var/lib/tftp
-
-Instalacja i konfiguracja serwera tftp (uwaga: jest to usługa o bardzo małym stopniu bezpieczeństwa) :
+serwer2 serwer:/var/lib/tftp/pxe
-Instalujemy jeden z serwerów tftp (atftpd, utftpd, tftpd) - najbardziej zalecane ze wzgledów bezpieczeństwa jest zainstalowanie utftpd i odpowiednie skonfigurowanie zabezpieczeń (ACL)
+Instalacja i konfiguracja serwera tftp (uwaga: jest to usługa o bardzo małym stopniu bezpieczeństwa) :
-poldek -i utftpd
-
-w PLD aktualnie serwery tftp s± uruchamiane przez inetd:
+w PLD aktualnie serwery tftp sÄ… uruchamiane przez inetd:
/etc/sysconfig/rc-inetd/tftpd - konfiguracja uruchamiania serwera tftp
-TODO opis instalacji i konfiguracji serwera i zabezpieczeń
-
-W /var/lib/tftp przygotowujemy konfiguracje startow± dla terminali
-
-# mkdir /var/lib/tftp/pxelinux.cfg
+TODO opis instalacji i konfiguracji serwera i zabezpieczeń
-w tym katalogu umieszczamy pliki configuracyjne bootloadera.
-Kolejno¶ć poszukiwania poszczególnych plików jest nastepuj±ca:
-wpierw szuka pliku o nazwie takiej samej jak MAC karty terminala czyli np: 00-02-44-90-1F-7B
-na końcu szuka pliku "default"
+przykładowa zawartośc pliku konfiguracyjnego bootloadera:
-przykładowa zawarto¶c pliku konfiguracyjnego bootloadera:
-
-[root w serwer root]# cat /var/lib/tftp/pxelinux.cfg/00-02-44-90-1F-7B
+[root w serwer root]# cat /var/lib/tftp/pxe/pxelinux.cfg/00-02-44-90-1F-7B
LABEL serwerinit
KERNEL vmlinuz-2.6.11.10-3
APPEND nfsaddrs=192.168.0.2:192.168.0.1:255.255.255.0:serwer2
@@ -119,27 +80,130 @@
iniitrd=initrd-2.6.11.10-3.gz root=/dev/nfs nfsroot=192.168.0.1:/mnt/hdb2/root/serwer2
IPAPPEND 1
-APPEND przekazuje do załadowanego kernela opcje dodatkowe:
+APPEND przekazuje do załadowanego kernela opcje dodatkowe:
nfsaddrs=<adres IP terminala>:192.168.0.1:<maska podsieci>:<nazwa terminala>
-ip=<adres IP terminala>:192.168.0.1:192.168.0.1:<maska podsieci>:<nazwa terminala>:<nazwa interfejsu przez który łaczy sie z root-path>:bootp
+ip=<adres IP terminala>:192.168.0.1:192.168.0.1:<maska podsieci>:<nazwa terminala>:<nazwa interfejsu przez ktĂłry Ĺ‚aczy sie z root-path>:bootp
iniitrd=<nazwa pliku initrd>
-root=/dev/nfs - wirtualne wpis urz±dzenia wskazuj±cy ze root-path bedzie po NFS
-nfsroot=<IP serwera NFS>:<scieżka do root-path>:<opcje dla NFS>
+root=/dev/nfs - wirtualne wpis urzÄ…dzenia wskazujÄ…cy ze root-path bedzie po NFS
+nfsroot=<IP serwera NFS>:<scieĹĽka do root-path>:<opcje dla NFS>
-w /var/lib/tftp umieszczamy następuj±ce pliki:
+w /var/lib/tftp/pxe umieszczamy następujące pliki:
initrd - plik z odpowiednio przygotowanym obrazem initrd
-Kickstart_end - plik
pxelinux.0 - bootloader z pakietu syslinux
vmlinuz - plik z kernelem
-jak widać zawarto¶ć jest do¶ć podobna do /boot (i spełnia to samo zadanie)
+jak widać zawartość jest dość podobna do /boot (i spełnia to samo zadanie)
+
+przykład dla bootowania przez PXE za pomocą dhcp przy wykorzystaniu RescueCD (krok po kroku):
+
+#instalujemy potrzebne pakiety (zakładam że dhcpd jest już wstępnie skonfigurowane i działające w sieci)
+sudo poldek -i syslinux dhcpd tftpd-hpa
+# W /var/lib/tftp przygotowujemy konfiguracje startowÄ… dla terminali
+# w tym katalogu umieszczamy pliki configuracyjne bootloadera.
+# Kolejność poszukiwania poszczególnych plików jest nastepująca:
+# wpierw szuka pliku o nazwie takiej samej jak MAC karty terminala czyli np: 00-02-44-90-1F-7B
+# ...TODO...
+# na końcu szuka pliku "default"
+mkdir -p /var/lib/tftp/pxe/pxelinux.conf
+# kopiujemy bootloadery z pakietu syslinux
+cp /usr/lib/syslinux/pxelinux.0 /var/lib/tftp/pxe/pxelinux.0
+cp /usr/lib/syslinux/memdisk /var/lib/tftp/pxe/memdisk
+#sciagamy najnowszĹĽ wersje RCD
+wget http://rescuecd.pld-linux.org/download/2007-06-17/x86/RCDx86_290.iso
+# montujemy
+mount -o loop RCDx86_290.iso /mnt/cdrom
+# kopiujemy pliki z RescueCD
+cd /mnt/cdrom
+# informacje wyswietlana przy logowaniu
+cp boot/iso/linux/boot.msg /var/lib/tftp/pxe
+# informacja wyĹĽwietlana po wcisnieciu F1
+cp boot/iso/linux/help.msg /var/lib/tftp/pxe
+# obraz z programem memtest
+cp boot/iso/linux/memtest /var/lib/tftp/pxe
+# initrd z RescueCD
+cp rescue.cpi /var/lib/tftp/pxe
+# kernel
+cp boot/isolinux/vmlinuz /var/lib/tftp/pxe
+# edytujemy pliki konfiguracyjne:
+vim /etc/dhcpd.conf
+------------------------------------------------
+## wybrane opcje: tutaj w sekcji global ale mozna teĹĽ dla konkretnych stacji niektore opcje ustawic ##########
+allow bootp;
+allow booting;
+filename "/pxe/pxelinux.0"; # name of the bootloader program,if tftp is in chroot (recomended) then path is relative
+option root-path "/home/services/diskless"; # path to root-path for pxe stations (in /etc/export) - root-nfs
+next-server 192.168.0.1; # tftp serwer IP adress for pxe
+#range dynamic-bootp 192.168.0.10 192.168.0.20; #
+# pxelinux option see: http://syslinux.zytor.com/pxe.php
+# custom options for pxelinux
+option space pxelinux;
+option pxelinux.magic code 208 = string;
+option pxelinux.configfile code 209 = text;
+option pxelinux.pathprefix code 210 = text;
+option pxelinux.reboottime code 211 = unsigned integer 32;
+#option pxelinux.magic f1:00:74:7e;
+#option pxelinux.configfile "pxelinux.cfg/default";
+#option pxelinux.pathprefix "/pxe";
+option pxelinux.reboottime 30;
+------------------------------------------------------
+vim /var/lib/tftp/pxe/pxelinux.conf/default
+-----------------------------------------------------
+default local
+prompt 1
+display boot.msg
+F1 help.msg
+timeout 20
+
+LABEL linuxnet
+ kernel vmlinuz
+ append initrd=/rescue.cpi init=/linuxrc root=/dev/ram0 ramdisk_size=54000
+ ipappend 1
+
+LABEL linuxnetconsole
+ kernel vmlinuz
+ append initrd=/rescue.cpi init=/linuxrc root=/dev/ram0 ramdisk_size=54000 console=tty0 console=ttyS0,9600n81
+
+LABEL memtest
+ kernel memtest
+
+LABEL local
+ LOCALBOOT 0
+
+LABEL winnet
+ KERNEL memdisk
+#From windows create a bootable floppy disk. Make sure its bootable and copy the disk image off:
+# dd if=/dev/floppy of=/var/lib/tftp/pxe/win.img bs=1024 count=1440
+ APPEND initrd=win.img
+
+LABEL next
+ localboot -1
+
+LABEL hd0
+ localboot 0x80
+
+LABEL hd1
+ localboot 0x81
+
+LABEL floppy
+ localboot 0x00
+
+--------------------------------------------------------
+# ustawiamy właściciela dla plików
+chown -R tftp:root /var/lib/tftp/pxe
+# zmiana uprawnien dla podkatalogow i plikĂłw - perms to skrypt zmieniajacy je rekurencyjnie.
+./perms -d 570 -f 460 /var/lib/tftp/pxe
+# restartujemy usługi
+/etc/init.d/dhcpd restart
+/etc/init.d/rc-inetd restart
Literatura:
+http://andrzej.dopierala.name/2007-06-02_Bootowanie_systemu_z_pxe_na_nowych_komputerach
+http://rescuecd.pld-linux.org/download/2007-06-17/PXE.txt
http://oceanic.wsisiz.edu.pl/~lukasz/Diskless.pl.html
http://oceanic.wsisiz.edu.pl/~lukasz/xterm.html
http://oceanic.wsisiz.edu.pl/~lukasz/nfsroot.txt
Więcej informacji o li¶cie dyskusyjnej pld-doc