SVN: PLD-doc/queue/diskless.sec
wolvverine
wolvverine w pld-linux.org
Pi±, 7 Gru 2007, 21:35:04 CET
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:
-
-[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ć
-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:
-
-[root w serwer 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:
-
-[root w serwer 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:
-
-[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
-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>
Wiêcej informacji o li¶cie dyskusyjnej pld-doc