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