Author: wolvverine Date: Fri Dec 7 21:35:02 2007 New Revision: 9129 Modified: PLD-doc/queue/diskless.sec Log: - dodanie tag�w, wst�pne wygladzenie tekstu
Modified: PLD-doc/queue/diskless.sec ============================================================================== --- PLD-doc/queue/diskless.sec (original) +++ PLD-doc/queue/diskless.sec Fri Dec 7 21:35:02 2007 @@ -1,113 +1,116 @@ +<?xml version="1.0" encoding="utf-8"?> +<section id="diskless-boot"> + <title>Bootowanie z sieci</title> + (TODO: root over NFS, swap over NFS) + <para> + Obecnie najczęściej stosuje się pobieranie parametrów z serwera DHCP przez klienta z PXE (ang. Preboot Execution Environment). + Co potrzebne: + 1. karta sieciowa z opcja bootowania przez sieć (PXE),lub (dla starych kart i komputerów które nie mają opcji PXE) odpowiednio przygotowana dyskietka z klientem PXE. + 2. serwer przekazujący parametry startowe: + Parametry startowe dla stacji bezdyskowych możemy przekazywać na kilka sposobów: + a. za pomocą serwera <produktname>DHCP</produktname> - pakiet dhcpd (najczęściej stosowane i zalecane). + b. za pomocą serwera <produktname>PXE</produktname> - pakie pxe. + c. za pomocą bootparamd - pakiet bootparamd. + d. za pomoca serwera <produktname>BOOTP</produktname> (zalecane jest korzystanie z DHCP które jest następcą BOOTP) - pakiet bootp. + 3. serwer <produktname>TFTP</produktname> - pakiet tftpd-hpa (obecnie zalecany do współpracy z pxelinux). + 4. serwer <produktname>NFS</produktname> udostępniający zasoby dyskowe (np: root over NFS) o ile planujemy z nich korzystać a nie tylko z ramdysku - pakiet nfsd. + </para> + + <title>Konfiguracja serwera DHCP dla stacji bootowanych przez sieć dzięki PXE</title> + <para> + W pliku <filename>/etc/dhcpd.conf</filename> wpisujemy odpowiednie opcje, poniżej podane są one globalnie dla wszystkich stacji, niektóre z nich można podać dla wybranej grupy stacji lub dla pojedyńczego terminala, zakładamy że serwer DHCP jest już wstępnie skonfigurowany: + </para> +<screen> + allow bootp; # + allow booting; # + filename "/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 "/exports/diskless"; # pełna scieżka do root-path dla terminala (z /etc/exports) + next-server 192.168.0.1; # IP serwera TFTP skąd PXE pobiera pliki + #range dynamic-bootp 192.168.0.10 192.168.0.20; # zakres IP przyznawanych dla stacji ktore bedą bootowały się z sieci + # opcje specjalne dla pxelinux zobacz opis tutaj http://syslinux.zytor.com/pxe.php + # definicje opcji: + 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; + # deklaracja wartości jakie mają mieć opcje: + #option pxelinux.magic f1:00:74:7e; # + #option pxelinux.configfile "pxelinux.cfg/default"; # scieżka do pliku konfiguracyjnego (nie ustawiaj chyba że wiesz co robisz wiecej tutaj: http://syslinux.zytor.com/pxe.php) + #option pxelinux.pathprefix "/pxe"; # prefix + option pxelinux.reboottime 30; # czas po ktorym stacja zrobi reboot jesli nie da rady się zabootować +</screen> + <para> + przykład konfiguracji dla pojedynczej stacji: + </para> +<screen> + host terminal1{ + hardware ethernet 00:d0:dd:d6:df:d7; + fixed-address 192.168.0.2; + next-server 192.168.0.1; # IP serwera TFTP + filename "/pxe/memdisk.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 "/exports/specialstation"; # pełna scieżka do root-path dla terminala (z /etc/exports) + } +</screen> + +<title>Instalacja i konfiguracja serwera <productname>TFTP</productname> + (uwaga: jest to usługa o bardzo małym stopniu bezpieczeństwa) +<screen> + +</screen> + <para> + w PLD aktualnie serwery tftp są uruchamiane przez inetd: + /etc/sysconfig/rc-inetd/tftpd - konfiguracja uruchamiania serwera tftp + </para> + <para> + TODO opis instalacji i konfiguracji serwera i zabezpieczeń + </para> + + <para> + Następnie tworzymy katalog <filename>/var/lib/tftp/pxe</filename> i umieszczamy następujące pliki: + </para> + + initrd - plik z odpowiednio przygotowanym obrazem initrd + pxelinux.0 - bootloader z pakietu syslinux + vmlinuz - plik z kernelem + pxelinux.cfg - katalog z plikami konfiguracyjnymi bootloadera + + <para> + jak widać zawartość jest dość podobna do /boot (i spełnia to samo zadanie) + </para> + <para> + Kolejność poszukiwania poszczególnych plików konfiguracyjnych w <filename>pxelinux.cfg<filename> jest nastepująca: + wpierw szukany jest plik o nazwie takiej samej jak MAC karty terminala czyli np: 00-02-44-90-1F-7B + # ...TODO... + na końcu szukany jest plik <filename>default<filename> + + </para> + <para> + przykładowa zawartośc pliku konfiguracyjnego bootloadera (tutaj dla konkretnej stacji o adresie MAC 00-02-44-90-1F-7B), jesli nie chcesz definiować dla kazdej stacji/ grupy stacji utwórz plik o nazwie <filename>default<filename>: + <para> +<screen> + # vim /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 ip=192.168.0.2:192.168.0.1:192.168.0.1:255.255.255.0:serwer2:eth0:bootp iniitrd=initrd-2.6.11.10-3.gz root=/dev/nfs nfsroot=192.168.0.1:/mnt/hdb2/root/serwer2 + IPAPPEND 1 + <para> + APPEND przekazuje do ładowanego kernela opcje dodatkowe: + </para> +<screen> + nfsaddrs=<adres IP terminala>:<adres IP serwera>:<maska podsieci>:<nazwa terminala> + ip=<adres IP terminala>:<adres IP serweray>:<adres IP serwera x>:<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> +</screen> -Bootowanie z sieci i system z root-NFS - -Co potrzebne: -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ć (wybrane opcje): - -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/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: - -host terminal1{ - 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/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: - [EMAIL PROTECTED] 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ć -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/pxe # pełna sciezka do katalogu tftp z plikami startowymi - -Konfiguracja serwera bootp: - [EMAIL PROTECTED] root]# vim /etc/bootptab -global.prof:\ - :sm=255.255.255.0:\ - :ds=192.168.0.1:\ - :gw=192.168.0.1:\ - :ht=ethernet:\ - :bf=linux: -serwer2:hd=/var/lib/tftp/pxe:tc=global.prof:ha=00508d665f67:ip=192.168.0.2 - -Konfiguracja usługi bootparams: - [EMAIL PROTECTED] root]# vim /etc/bootparams -serwer2 serwer:/var/lib/tftp/pxe - -Instalacja i konfiguracja serwera tftp (uwaga: jest to usługa o bardzo małym stopniu bezpieczeństwa) : - -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ń - - -przykładowa zawartośc pliku konfiguracyjnego bootloadera: - [EMAIL PROTECTED] 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 -ip=192.168.0.2:192.168.0.1:192.168.0.1:255.255.255.0:serwer2:eth0:bootp -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: - -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 -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> - - -w /var/lib/tftp/pxe umieszczamy następujące pliki: - -initrd - plik z odpowiednio przygotowanym obrazem initrd -pxelinux.0 - bootloader z pakietu syslinux -vmlinuz - plik z kernelem - -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): +<title>Przykład dla bootowania przez PXE za pomocą dhcp przy wykorzystaniu RescueCD, prosta konfiguracja (krok po kroku).</title> #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 @@ -201,6 +204,39 @@ /etc/init.d/rc-inetd restart +<title>konfiguracja serwera PXE</title> +<screen> + # 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ć + 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/pxe # pełna sciezka do katalogu tftp z plikami startowymi +</screen> + +<title>Konfiguracja serwera bootp dla bootowanie przez sieć:</title> +<screen> + # vim /etc/bootptab + global.prof:\ + :sm=255.255.255.0:\ + :ds=192.168.0.1:\ + :gw=192.168.0.1:\ + :ht=ethernet:\ + :bf=linux: + serwer2:hd=/var/lib/tftp/pxe:tc=global.prof:ha=00508d665f67:ip=192.168.0.2 +</screen> + +<title>Konfiguracja usługi bootparams dla bootowania przez sieć</title> +<screen> + # vim /etc/bootparams + serwer2 serwer:/var/lib/tftp/pxe +</screen> +<para> 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 @@ -222,4 +258,4 @@ http://adas.artikon.one.pl/PLD/Initrd.txt http://pl.docs.pld-linux.org/konfiguracja_geninitrd.html http://team.pld.org.pl/~klakier/doc/install/pl/ - +</para>
_______________________________________________ pld-cvs-commit mailing list [email protected] http://lists.pld-linux.org/mailman/listinfo/pld-cvs-commit
