Linux/Tipps/Gentoo/PXE: Unterschied zwischen den Versionen

Zur Navigation springen Zur Suche springen
keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
 
Keine Bearbeitungszusammenfassung
 
(8 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 13: Zeile 13:
Hier wird von folgendem ausgegangen:
Hier wird von folgendem ausgegangen:
* Server-IP = 192.168.0.7
* Server-IP = 192.168.0.7
* Client-IP = 192-168.0.5
* Server-Name = backend
* Client-IP = 192.168.0.5
* Client-Mac-Adresse: 00:1B:21:0A:FC:0C
* Client-Name = frontend
* Gateway-IP = 192.168.0.1
* Gateway-IP = 192.168.0.1
* DNS-IP = 192.168.0.1
* DNS-IP = 192.168.0.1
* Server-Verzeichnis für den Client: /pxe/frontend
* Server-NFS-Verzeichnis für den Client: /pxe/frontend
* Server-Verzeichnis für tftp: /tftpboot
* Server-Verzeichnis für tftp: /tftpboot
Ich habe das mit Gentoo und Fedora Core 5 als Server und jeweils Gentoo als Client getestet. Die Vorgehensweise ist praktisch identisch, ich beschreibe hier aber Gentoo. Außerdem ist bei mir der Server alles in einem (NFS-Server, DHCP-Server, TFTP-Server).


==Installation des Servers==
==Installation des Servers==
Ich habe das mit Gentoo und Fedora Core 5 als Server getestet. Die Vorgehensweise ist praktisch identisch, ich beschreibe hier aber Gentoo. Außerdem ist bei mir der Server alles in einem (NFS-Server, DHCP-Server, TFTP-Server).
 
===NFS===
emerge nfs-utils
'''/etc/exports''':
/pxe/frontend 192.168.0.5(rw,sync,no_root_squash)
Dann:
rc-update add nfs default
/etc/init.d/nfs start


===DHCP-Server===
===DHCP-Server===
Zeile 46: Zeile 58:
  filename "pxelinux.0";
  filename "pxelinux.0";
  }
  }
'''next-server''' gibt hier die IP-Adresse des tftp-Servers an.
Dann:
rc-update add dhcpd default
/etc/init.d/dhcpd start


===TFTP===
===TFTP===
Das ist der Teil, von dem die Netzwerkkarte initial den Loader holt.
emerge tftp-hpa
'''/etc/conf.d/in.tftpd''':
INTFTPD_PATH="/tftpboot"
INTFTPD_USER="nobody"
INTFTPD_OPTS="-u ${INTFTPD_USER} -l -vvvvvv -p -c -s ${INTFTPD_PATH}"
Dann:
mkdir /tftpboot
chmod 777 /tftpboot
rc-update add in.tftpd default
/etc/init.d/in.tftpd start


===pxelinux===
===pxelinux===
Das ist der Teil, der per tftp als erstes an den Client geliefert wird. Es gibt auch noch pxegrub, aber das lief mit meinem Client-Rechner nicht.
Das ist der Teil, der per tftp als erstes an den Client geliefert wird. Es gibt auch noch pxegrub, aber das lief mit meinem Client-Rechner nicht.
emerge syslinux
cp /usr/lib/syslinux/pxelinux.0 /tftpboot/
cp /pxe/frontend/boot/kernel-genkernel-x86-2.6.23-gentoo-r3 /tftpboot/
cp /pxe/frontend/boot/initramfs-genkernel-x86-2.6.23-gentoo-r3 /tftpboot/
mkdir /tftpboot/pxelinux.cfg
chmod 777 /tftpboot/pxelinux.cfg
Beispiel für '''/tftpboot/pxelinux.cfg/01-00-1b-21-0a-fc-0c''' (der letzte Teil ist die Mac-Adresse des Clients, Kernelnamen und Kernelparameter sind entsprechend anzupassen.) mit Kernel < 2.6.27:
default gentoo
# gentoo
label gentoo
  kernel kernel-genkernel-x86-2.6.23-gentoo-r3
  append initrd=initramfs-genkernel-x86-2.6.23-gentoo-r3 ip=dhcp real_root=/dev/nfs nfsroot=192.168.0.7:/pxe/frontend vga=791 splash=silent,theme:livecd-2007.0 console=tty1 quiet
implicit 0
say gentoo = Gentoo vom Server
prompt 1
timeout 50
Optional (Bootoption für booten von einer lokalen Platte zu Debugzwecken durch Eingabe von "lokal"):
# lokal
label lokal
  localboot 0


Beispiel für '''/tftpboot/pxelinux.cfg/01-00-1b-21-0a-fc-0c''' (der letzte Teil ist die Mac-Adresse des Clients, Kernelnamen und Kernelparameter sind entsprechend anzupassen.) mit Kernel >= 2.6.27, NFS-Options in '''nfsroot''' ([[Linux/Tipps/Gentoo/Bugs#PXE_mit_NFS-Options_in_nfsroot_und_genkernel-3.4.10-r2|Bug]] beachten!):
default gentoo
# gentoo
label gentoo
  kernel kernel-genkernel-x86-2.6.27-gentoo-r8
  append initrd=initramfs-genkernel-x86-2.6.27-gentoo-r8 ip=dhcp root=/dev/nfs nfsroot=192.168.0.7:/pxe/frontend''',ro,nolock,rsize=8192,wsize=8192,nfsvers=3,tcp,intr''' vga=791 splash=silent,theme:livecd-2007.0 console=tty1 quiet
implicit 0
say gentoo = Gentoo vom Server
prompt 1
timeout 50
Optional (Bootoption für booten von einer lokalen Platte zu Debugzwecken durch Eingabe von "lokal"):
# lokal
label lokal
  localboot 0


==Installation des Clients==
==Installation des Clients==
Am besten installiert man den Client in einem Verzeichnis auf dem Server mit [[Linux/Tipps/Allgemein#chroot|chroot]]. Das geht natürlich unter Gentoo sehr gut mit einem [[Linux/Tipps/Gentoo/Installation#Mit_Stage3_Tarball|Stage 3 Tarball]].
Am besten installiert man den Client in einem Verzeichnis auf dem Server mit [[Linux/Tipps/Allgemein#chroot|chroot]]. Das geht natürlich unter Gentoo sehr gut mit einem [[Linux/Tipps/Gentoo/Installation#Mit_Stage3_Tarball|Stage 3 Tarball]]. Dabei wird prinzipiell normal installiert, bis auf den Bootloader. Dabei sind für PXE-Boot einige [[Linux/Tipps/Gentoo/Kernel#PXE|Kerneloptionen]] einzuschalten.
 
Außerdem werden speziell für PXE folgende Konfig-Dateien modifiziert:
 
'''/etc/conf.d/net''' (hier wird verhindert, dass eth0 nochmal initialisiert wird):
config_eth0=( "noop" )
'''/etc/conf.d/rc''' (hier wird verhindert, dass der Client beim Runterfahren eth0 zu früh abschaltet):
RC_PLUG_SERVICES="!net.*"
'''/etc/fstab (Kernel < 2.6.27)''':
192.168.0.7:/pxe/frontend  /      nfs    nfsvers=3,tcp,intr,rw,nolock,rsize=8192,wsize=8192  0 0
'''/etc/fstab (Kernel >= 2.6.27)''':
/dev/nfs    /        none    rw,noatime        0 0
'''/etc/conf.d/local.start''' (hier wird verhindert, dass der Client einen Filesystem-Check beim Booten durchführt):
touch /fastboot
 
'''Achtung: Evtl. verhindert ein [[Linux/Tipps/Gentoo/Bugs#PXE_mit_baselayout-1.12.11.1_und_util-linux-2.14.1|Bug]] das Booten des Clients!'''


/etc/fstab
==Swap über NFS==
Coldplug
Server (512 MB Swapfile):
dd if=/dev/zero of=/pxe-root-path/swapfile bs=1024k count=512
mkswap swapfile
Client (bei jedem Booten):
losetup /dev/loop0 /swapfile
swapon /dev/loop0
1.075

Bearbeitungen

Navigationsmenü