PXELinux: Unterschied zwischen den Versionen
Admin (Diskussion | Beiträge) |
|||
Zeile 8: | Zeile 8: | ||
tftp dgram udp4 wait root /usr/sbin/in.tftpd /usr/sbin/in.tftpd -s /var/lib/tftpboot | tftp dgram udp4 wait root /usr/sbin/in.tftpd /usr/sbin/in.tftpd -s /var/lib/tftpboot | ||
− | ===Start als | + | ===Start als alleinstehender Server=== |
* /etc/default/tftpd-hpa | * /etc/default/tftpd-hpa | ||
#Defaults for tftpd-hpa | #Defaults for tftpd-hpa | ||
Zeile 36: | Zeile 36: | ||
* /etc/dhcp3/dhcpd.conf | * /etc/dhcp3/dhcpd.conf | ||
subnet 192.168.242.0 netmask 255.255.255.0 { | subnet 192.168.242.0 netmask 255.255.255.0 { | ||
− | + | range 192.168.242.170 192.168.242.180; | |
− | + | default-lease-time 600; | |
− | + | max-lease-time 7200; | |
− | + | option domain-name-servers 192.168.240.21; | |
− | + | option broadcast-address 192.168.242.255; | |
− | + | option subnet-mask 255.255.255.0; | |
− | + | filename "/pxelinux.0"; | |
− | + | next-server 192.168.242.140; | |
− | + | option root-path "192.168.242.140:/pxeroot"; | |
− | + | ||
− | + | host pxeclient { | |
− | + | hardware ethernet 00:0c:29:99:25:91; | |
− | + | fixed-address 192.168.242.171; | |
− | + | option host-name "pxeclient"; | |
− | + | } | |
− | |||
− | |||
− | |||
− | |||
− | |||
} | } | ||
+ | |||
+ | ===Starten=== | ||
+ | root@xinux-desktop:~# /etc/init.d/dhcp3-server start | ||
+ | |||
+ | ===Stoppen=== | ||
+ | root@xinux-desktop:~# /etc/init.d/dhcp3-server stop | ||
+ | |||
+ | ===Neustarten=== | ||
+ | root@xinux-desktop:~# /etc/init.d/dhcp3-server restart | ||
+ | |||
+ | ===Kontrolle=== | ||
+ | root@xinux-desktop:~# netstat -nplu | grep 67 | ||
+ | udp 0 0 0.0.0.0:67 0.0.0.0:* 3515/dhcpd3 | ||
==Bootimage vorbereiten== | ==Bootimage vorbereiten== | ||
− | + | root@xinux-desktop:~# apt-get install syslinux | |
− | root@xinux-desktop: | ||
− | |||
root@xinux-desktop:~# cp /usr/lib/syslinux/pxelinux.0 /var/lib/tftpboot/ | root@xinux-desktop:~# cp /usr/lib/syslinux/pxelinux.0 /var/lib/tftpboot/ | ||
Zeile 78: | Zeile 84: | ||
root@xinux-desktop:~# debootstrap intrepid /pxeroot | root@xinux-desktop:~# debootstrap intrepid /pxeroot | ||
− | + | ||
− | |||
− | |||
− | |||
===Hostname setzen=== | ===Hostname setzen=== | ||
Zeile 97: | Zeile 100: | ||
ff02::2 ip6-allrouters | ff02::2 ip6-allrouters | ||
ff02::3 ip6-allhosts | ff02::3 ip6-allhosts | ||
− | :wq zum Speichern und Beenden | + | Escape :wq zum Speichern und Beenden |
===fstab anpassen=== | ===fstab anpassen=== | ||
Zeile 125: | Zeile 128: | ||
exit | exit | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
===TFTP Server konfigurieren=== | ===TFTP Server konfigurieren=== | ||
Zeile 154: | Zeile 136: | ||
Neustarten | Neustarten | ||
− | /root@xinux-desktop:~# etc/init.d/tftpd-hpa restart | + | /root@xinux-desktop:~# /etc/init.d/tftpd-hpa restart |
+ | ==mit NFS== | ||
===PXE boot konfigurieren=== | ===PXE boot konfigurieren=== | ||
root@xinux-desktop:~# cd /var/lib/tftpboot | root@xinux-desktop:~# cd /var/lib/tftpboot | ||
Zeile 180: | Zeile 163: | ||
Neustarten | Neustarten | ||
/etc/init.d/nfs-kernel-server restart | /etc/init.d/nfs-kernel-server restart | ||
+ | |||
+ | ==mit RAMdisk== | ||
+ | Bootstrap erstellen mit debootstrap | ||
+ | |||
+ | ===mit mkcramfs=== | ||
+ | Komprimiertes Image erstellen | ||
+ | root@xinux-desktop:~# mkcramfs /pxeroot/ /var/lib/tftpboot/initrd.img | ||
+ | |||
+ | root@xinux-desktop:/var/lib/tftpboot# cp /pxeroot/initrd.img . | ||
+ | |||
+ | ramdisk_size= in default anpassen, root= anpassen | ||
+ | root@xinux-desktop:/var/lib/tftpboot/pxelinux.cfg# vim default | ||
+ | |||
+ | LABEL linux | ||
+ | kernel vmlinuz | ||
+ | append vga=normal initrd=initrd.img ramdisk_size=400000 root=/dev/ram0 nfsroot=192.168.242.140:/pxeroot rw -- | ||
+ | |||
+ | PROMPT 0 | ||
+ | TIMEOUT 0 | ||
+ | |||
+ | Netzwerkkonfiguration auskommentieren, falls vorhanden da die DHCP Einstellung vom Booten übernommen wird | ||
+ | root@xinux-desktop:/pxeroot/etc/network# vim interfaces | ||
+ | #auto eth0 | ||
+ | #iface eth0 inet dhcp | ||
+ | ===als loopdevice=== | ||
+ | Leere Datei erstellen | ||
+ | root@ubuntu-server:/# dd if=/dev/zero of=/initrd bs=1M count=400 | ||
+ | Leere Datei formatieren | ||
+ | root@ubuntu-server:/# mkfs.ext2 -i 1024 -b 1024 -m 5 -F -v initrd | ||
+ | Datei mounten | ||
+ | root@ubuntu-server:/# mount /initrd /ubuntu -o loop | ||
+ | Ubuntu in das loop Device installieren | ||
+ | root@ubuntu-server:/# debootstrap jaunty ubuntu/ | ||
+ | ''Wir sind im LOOP DEVICE'' | ||
+ | |||
+ | In das Verzeichnis changerooten | ||
+ | root@ubuntu-server:/# chroot /ubuntu | ||
+ | Platz freimachen | ||
+ | root@ubuntu-server:/# apt-get clean | ||
+ | Kernel installieren | ||
+ | root@ubuntu-server:/# apt-get install linux-image | ||
+ | Modulabhängikeiten erstellen | ||
+ | root@ubuntu-server:/lib/modules# depmod -a 2.6.28-11-generic | ||
+ | Rootpasswd setzen | ||
+ | root@ubuntu-server:/# passwd | ||
+ | Enter new UNIX password: | ||
+ | Retype new UNIX password: | ||
+ | passwd: password updated successfully | ||
+ | Kernel kopieren | ||
+ | root@ubuntu-server:/# cp /ubuntu/vmlinuz /var/lib/tftpboot/ | ||
+ | Raus aus dem LOOP Device | ||
+ | root@ubuntu-server:/lib/modules# exit | ||
+ | ''Wir sind nicht mehr im LOOP DEVICE'' | ||
+ | Diverse Dateien anpassen | ||
+ | root@ubuntu-server:/# cat /ubuntu/etc/hosts | ||
+ | 127.0.0.1 localhost | ||
+ | 127.0.1.1 client.localdomain client | ||
+ | |||
+ | root@ubuntu-server:/# cat /ubuntu/etc/hostname | ||
+ | client | ||
+ | |||
+ | root@ubuntu-server:/# cat /ubuntu/etc/network/interfaces | ||
+ | auto lo | ||
+ | iface lo inet loopback | ||
+ | auto eth0 | ||
+ | iface eth0 inet dhcp | ||
+ | |||
+ | root@ubuntu-server:/var/lib/tftpboot/pxelinux.cfg# cat default | ||
+ | default lil | ||
+ | LABEL lil | ||
+ | kernel vmlinuz | ||
+ | append vga=normal initrd=initrd ramdisk_size=400000 root=/dev/ram0 rw -- | ||
+ | |||
+ | PROMPT 0 | ||
+ | TIMEOUT 0 | ||
+ | |||
+ | ===cpio-archiv erstellen=== | ||
+ | cd /pxeroot | ||
+ | find . -depth -print | cpio -o > archiv.cpio | ||
+ | mit gzip komprimieren | ||
+ | gzip archiv.cpio | ||
=Quellen= | =Quellen= |
Version vom 13. August 2009, 09:43 Uhr
Mit PXELinux kann man ein System über ein Netzwerk booten oder auch installieren.
Installation tftp-Server
root@xinux-desktop:/# apt-get install tftpd-hpa
Start über inetd
- /etc/inetd.conf : udp -> udp4 ändern
tftp dgram udp4 wait root /usr/sbin/in.tftpd /usr/sbin/in.tftpd -s /var/lib/tftpboot
Start als alleinstehender Server
- /etc/default/tftpd-hpa
#Defaults for tftpd-hpa RUN_DAEMON="yes" OPTIONS="-l -s /var/lib/tftpboot"
Starten
root@xinux-desktop:~# /etc/init.d/tftpd-hpa start
Kontrolle
- Ist der tftp Port geöffnet
root@ubuntu-server:/etc/dhcp3# netstat -lnu | grep 69 udp 0 0 0.0.0.0:69 0.0.0.0:*
- Installation tftp Client
root@lydia:~# apt-get install tftp
- Kann man einen Datei ziehen?
root@lydia:~# tftp 192.168.11.50 tftp> get 1545_sender Received 900983 bytes in 0.6 seconds tftp> quit
Installation DHCP-Server
root@xinux-desktop:~# apt-get install dhcp3-server
Anpassen der dhcpd.conf
- /etc/dhcp3/dhcpd.conf
subnet 192.168.242.0 netmask 255.255.255.0 { range 192.168.242.170 192.168.242.180; default-lease-time 600; max-lease-time 7200; option domain-name-servers 192.168.240.21; option broadcast-address 192.168.242.255; option subnet-mask 255.255.255.0; filename "/pxelinux.0"; next-server 192.168.242.140; option root-path "192.168.242.140:/pxeroot"; host pxeclient { hardware ethernet 00:0c:29:99:25:91; fixed-address 192.168.242.171; option host-name "pxeclient"; } }
Starten
root@xinux-desktop:~# /etc/init.d/dhcp3-server start
Stoppen
root@xinux-desktop:~# /etc/init.d/dhcp3-server stop
Neustarten
root@xinux-desktop:~# /etc/init.d/dhcp3-server restart
Kontrolle
root@xinux-desktop:~# netstat -nplu | grep 67 udp 0 0 0.0.0.0:67 0.0.0.0:* 3515/dhcpd3
Bootimage vorbereiten
root@xinux-desktop:~# apt-get install syslinux root@xinux-desktop:~# cp /usr/lib/syslinux/pxelinux.0 /var/lib/tftpboot/
PXELinux mit debootstrap
Minimales virtuelles System erstellen
Installation von debootstrap
root@xinux-desktop:~# apt-get install debootstrap
Debian
root@xinux-desktop:~# mkdir /pxeroot root@xinux-desktop:~# cd /pxeroot root@xinux-desktop:~# debootstrap etch /pxeroot
Ubuntu
root@xinux-desktop:~# mkdir /pxeroot root@xinux-desktop:~# cd /pxeroot root@xinux-desktop:~# debootstrap intrepid /pxeroot
Hostname setzen
root@xinux-desktop:~# echo pxeboot > /pxeroot/etc/hostname root@xinux-desktop:~# cp /etc/hosts /pxeroot/etc/hosts root@xinux-desktop:~# vi /pxeroot/etc/hosts
127.0.0.1 localhost pxeboot # The following lines are desirable for IPv6 capable hosts ::1 localhost ip6-localhost ip6-loopback fe00::0 ip6-localnet ff00::0 ip6-mcastprefix ff02::1 ip6-allnodes ff02::2 ip6-allrouters ff02::3 ip6-allhosts
Escape :wq zum Speichern und Beenden
fstab anpassen
# <file system> <mount point> <type> <options> <dump> <pass> proc /proc proc defaults 0 0 /dev/ram0 / ext2 defaults 0 0 tmpfs /tmp tmpfs defaults 0 0
Virtuelles System anpassen
root@xinux-desktop:/pxeroot/etc# chroot /pxeroot
Kernel installieren
xinux-desktop:/# apt-get install linux-image
Die Warnung, dass keine Bootloader installiert sind, kann ignoriert werden. Wenn das Skript fragt, ob abgebrochen werden soll mit no antworten.
Ramdisk auf NFS anpassen
xinux-desktop:/# sed -i.bak -e "s/BOOT=local/BOOT=nfs/" /etc/initramfs-tools/initramfs.conf xinux-desktop:/#update-initramfs -vu
Locales installieren und de_DE@euro ISO-8859-15 als Spracheinstellung auswählen
xinux-desktop:/# apt-get install locales xinux-desktop:/# dpkg-reconfigure locales
exit
TFTP Server konfigurieren
- /etc/default/tftpd-hpa
RUN_DAEMON="yes" OPTIONS="-l -s /var/lib/tftpboot"
Neustarten
/root@xinux-desktop:~# /etc/init.d/tftpd-hpa restart
mit NFS
PXE boot konfigurieren
root@xinux-desktop:~# cd /var/lib/tftpboot root@xinux-desktop:~# cp /pxeroot/vmlinuz ./ root@xinux-desktop:~# cp /pxeroot/initrd.img ./ root@xinux-desktop:~# mkdir pxelinux.cfg root@xinux-desktop:~# vim pxelinux.cfg/default
- /var/lib/tftpboot/pxelinux.cfg/default
DEFAULT linux LABEL linux kernel vmlinuz append vga=normal initrd=initrd.img ramdisk_size=14332 root=/dev/nfs nfsroot=192.168.242.140:/pxeroot rw -- PROMPT 0 TIIMEOUT 0
nfs server konfigurieren
root@xinux-desktop:~# apt-get install nfs-kernel-server
- /etc/exports
/pxeroot 192.168.0.0/255.255.0.0(rw,sync,no_root_squash,no_subtree_check)
Neustarten
/etc/init.d/nfs-kernel-server restart
mit RAMdisk
Bootstrap erstellen mit debootstrap
mit mkcramfs
Komprimiertes Image erstellen
root@xinux-desktop:~# mkcramfs /pxeroot/ /var/lib/tftpboot/initrd.img
root@xinux-desktop:/var/lib/tftpboot# cp /pxeroot/initrd.img .
ramdisk_size= in default anpassen, root= anpassen
root@xinux-desktop:/var/lib/tftpboot/pxelinux.cfg# vim default
LABEL linux kernel vmlinuz append vga=normal initrd=initrd.img ramdisk_size=400000 root=/dev/ram0 nfsroot=192.168.242.140:/pxeroot rw -- PROMPT 0 TIMEOUT 0
Netzwerkkonfiguration auskommentieren, falls vorhanden da die DHCP Einstellung vom Booten übernommen wird
root@xinux-desktop:/pxeroot/etc/network# vim interfaces #auto eth0 #iface eth0 inet dhcp
als loopdevice
Leere Datei erstellen
root@ubuntu-server:/# dd if=/dev/zero of=/initrd bs=1M count=400
Leere Datei formatieren
root@ubuntu-server:/# mkfs.ext2 -i 1024 -b 1024 -m 5 -F -v initrd
Datei mounten
root@ubuntu-server:/# mount /initrd /ubuntu -o loop
Ubuntu in das loop Device installieren
root@ubuntu-server:/# debootstrap jaunty ubuntu/
Wir sind im LOOP DEVICE
In das Verzeichnis changerooten
root@ubuntu-server:/# chroot /ubuntu
Platz freimachen
root@ubuntu-server:/# apt-get clean
Kernel installieren
root@ubuntu-server:/# apt-get install linux-image
Modulabhängikeiten erstellen
root@ubuntu-server:/lib/modules# depmod -a 2.6.28-11-generic
Rootpasswd setzen
root@ubuntu-server:/# passwd Enter new UNIX password: Retype new UNIX password: passwd: password updated successfully
Kernel kopieren
root@ubuntu-server:/# cp /ubuntu/vmlinuz /var/lib/tftpboot/
Raus aus dem LOOP Device
root@ubuntu-server:/lib/modules# exit
Wir sind nicht mehr im LOOP DEVICE Diverse Dateien anpassen
root@ubuntu-server:/# cat /ubuntu/etc/hosts 127.0.0.1 localhost 127.0.1.1 client.localdomain client root@ubuntu-server:/# cat /ubuntu/etc/hostname client
root@ubuntu-server:/# cat /ubuntu/etc/network/interfaces auto lo iface lo inet loopback auto eth0 iface eth0 inet dhcp
root@ubuntu-server:/var/lib/tftpboot/pxelinux.cfg# cat default
default lil LABEL lil kernel vmlinuz append vga=normal initrd=initrd ramdisk_size=400000 root=/dev/ram0 rw -- PROMPT 0 TIMEOUT 0
cpio-archiv erstellen
cd /pxeroot find . -depth -print | cpio -o > archiv.cpio
mit gzip komprimieren
gzip archiv.cpio
Quellen
http://www.pieczewski.de/?page_id=51