PXELinux: Unterschied zwischen den Versionen
Thomas (Diskussion | Beiträge) |
Thomas (Diskussion | Beiträge) |
||
Zeile 157: | Zeile 157: | ||
Bootstrap erstellen mit debootstrap | Bootstrap erstellen mit debootstrap | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
===als loopdevice=== | ===als loopdevice=== | ||
Leere Datei erstellen | Leere Datei erstellen |
Version vom 8. Dezember 2015, 09:32 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
TFTP_USERNAME="tftp" TFTP_DIRECTORY="/var/lib/tftpboot" TFTP_ADDRESS="0.0.0.0:69" TFTP_OPTIONS="-l -s"
Starten
root@xinux-desktop:~# service tftpd-hpa restart
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
/dev/ram0 / ext2 defaults 0 0 proc /proc proc 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:/# sed -i.bak -e "s/MODULES=most/MODULES=netboot/" /etc/initramfs-tools/initramfs.conf xinux-desktop:/#update-initramfs -vu
Tastatur einstellen
xinux-desktop:/# dpkg-reconfigure keyboard-configuration
Passwort setzen
xinux-desktop:/# passwd exit
mit NFS
PXE boot konfigurieren
root@xinux-desktop:~# cd /var/lib/tftpboot root@xinux-desktop:~# cp /pxeroot/vmlinuz . root@xinux-desktop:~# chmod 644 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 ip=dhcp rw -- PROMPT 0 TIMEOUT 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
als loopdevice
Leere Datei erstellen
- dd if=/dev/zero of=/mnt/initrd bs=1M count=768
Leere Datei formatieren
- mkfs.ext2 -i 1024 -b 1024 -m 5 -F -v /mnt/initrd
Datei mounten
- mount /mnt/initrd /mnt/ubuntu -o loop
Ubuntu in das loop Device installieren
- debootstrap trusty /mnt/ubuntu
proc, sys , dev mounten
- mount -o bind /dev /mnt/ubuntu/dev
- mount -o bind /proc /mnt/ubuntu/proc
- mount -o bind /sys /mnt/ubuntu/sys
In das Verzeichnis changerooten
- chroot /mnt/ubuntu
Wir sind im LOOP DEVICE
Platz freimache
- apt-get clean
Kernel installieren
- apt-get install linux-image-3.13.0-24-generic
Modulabhängikeiten erstellen
- depmod -a 3.13.0-24-generic
Keboard und Locale
- dpkg-reconfigure keyboard-configuration
Rootpasswd setzen
- passwd
Enter new UNIX password: Retype new UNIX password: passwd: password updated successfully
Diverse Dateien anpassen
- hosts
- echo "127.0.0.1 localhost" > /etc/hosts
- echo "127.0.1.1 ramlinux.xinux.org" ramlinux >> /etc/hosts
- resolv.conf
echo "nameserver 192.168.240.200" > /etc/resolv.conf echo "search xinux.org taribo.lan" >> /etc/resolv.conf
- hostname
echo ramlinux > /etc/hostname
- interfaces
cat<<HERE > /etc/network/interfaces
auto lo iface lo inet loopback auto eth0 iface eth0 inet dhcp
HERE
Raus aus dem LOOP Device
- exit
Wir sind nicht mehr im LOOP DEVICE Kernel kopieren
- cp /mnt/ubuntu/vmlinuz /var/lib/tftpboot/loop-vmlinuz
umounten
- umount /mnt/ubuntu/proc
- umount /mnt/ubuntu/sys
- umount /mnt/ubuntu/dev
- umount /mnt/ubuntu
ZWEI MÖGLICHKEITEN
umkomprimiert
- cp /mnt/initrd /var/lib/tftpboot/loop-initrd
- cat /var/lib/tftpboot/pxelinux.cfg/default
LABEL loop MENU LABEL ^loop kernel loop-vmlinuz append vga=normal initrd=loop-initrd ramdisk_size=1024000 root=/dev/ram0 rw --
komprimiert
- gzip -c /mnt/initrd > /var/lib/tftpboot/loop-initrd.gz
- cat /var/lib/tftpboot/pxelinux.cfg/default
LABEL loop-gz MENU LABEL loop-^gz kernel loop-vmlinuz append vga=normal initrd=loop-initrd.gz ramdisk_size=1024000 root=/dev/ram0 rw --
Quellen
http://www.pieczewski.de/?page_id=51