PXELinux: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
Thomas (Diskussion | Beiträge)
Thomas (Diskussion | Beiträge)
Zeile 217: Zeile 217:
;interfaces  
;interfaces  
cat<<HERE > /etc/network/interfaces
cat<<HERE > /etc/network/interfaces
auto lo
auto lo
iface lo inet loopback
iface lo inet loopback
auto eth0
auto eth0
iface eth0 inet dhcp
iface eth0 inet dhcp
HERE
HERE



Version vom 7. Dezember 2015, 17:51 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

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

  • dd if=/dev/zero of=/mnt/initrd bs=1M count=1024

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

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

root@ubuntu-server:/lib/modules# exit

Wir sind nicht mehr im LOOP DEVICE Kernel kopieren

root@ubuntu-server:/# cp /ubuntu/vmlinuz  /var/lib/tftpboot/

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

http://forum.ubuntuusers.de/topic/pxe-image-bauen/

http://www.howtoforge.com/pxe_booting_debian