Benutzer-Werkzeuge

Webseiten-Werkzeuge


pxe-boot

PXE-Boot

NetBoot

booting over HTTP

mount --bind /media/cdrom/ /var/www/ubuntu/
mount --bind /media/cdrom/install/netboot/ /tftpboot/

ks.cfg

install
url --url http://192.168.0.1/ubuntu/

/tftpboot/pxelinux.cfg/default

label linux

      kernel ubuntu-installer/i386/linux
      append ks=http://192.168.0.1/ks.cfg vga=normal initrd=ubuntu-installer/i386/initrd.gz ramdisk_size=16432 root=/dev/rd/0 rw  --

TFTP

Installationsdateien

# mkdir -p /tftpboot/pxelinux.cfg /tftpboot/install/amd64 /tftpboot/install/i386

Ubuntu Desktop amd64 - CD kopieren:

# cp -a /media/cdrom0/ /tftpboot/install/amd64/ubuntu-desktop

Ubuntu Desktop i386 - CD kopieren:

# cp -a /media/cdrom0/ /tftpboot/install/i386/ubuntu-desktop

Ubuntu Server amd64 - CD kopieren:

# cp -a /media/cdrom0/ /tftpboot/install/amd64/ubuntu-server

Ubuntu Server i386 - CD kopieren:

# cp -a /media/cdrom0/ /tftpboot/install/i386/ubuntu-server

PXE-Boot

das Menü-Programm von der CD kopieren:

# cp /media/cdrom0/isolinux/vesamenu.c32 /tftpboot/pxelinux.cfg/

/tftpboot/pxelinux.cfg/default

In dieser Datei können nur maximal 64 LABEL verwaltet werden. Stehen mehr drin, dann werden alle ab dem 65. LABEL ignoriert.

mit VESA-Menü

Für diese Variante muss man die Datei vesamenu.c32 von einer CD kopieren!

PROMPT 0
TIMEOUT 0
DEFAULT pxelinux.cfg/vesamenu.c32
MENU TITLE PXE Boot-Menue

LABEL u64d
        MENU LABEL ^u64 - Ubuntu 64 Bit - Desktop
        KERNEL install/amd64/vmlinuz
        APPEND ks=http://192.168.2.1/amd64/ubuntu-desktop_ks.cfg ide=nodma fetch=tftp://192.168.2.1/install/amd64/ubuntu-desktop/casper/filesystem.squashfs vga=normal initrd=install/amd64/initrd.img boot=casper splash locale=de_DE bootkbd=de console-setup/layoutcode=de ramdisk_size=16432 root=/dev/rd/0 rw --

LABEL u32d
        MENU LABEL ^u32 - Ubuntu 32 Bit - Desktop
        KERNEL install/i386/vmlinuz
        APPEND initrd=install/i386/ubuntu-desktop/casper/initrd.lz boot=casper ramdisk_size=717000 root=/dev/ram0 rw --

LABEL u64s
        MENU LABEL ^u64 - Ubuntu 64 Bit - Server
        KERNEL install/amd64/vmlinuz
        APPEND ks=http://192.168.2.1/amd64/ubuntu-server.cfg preseed/url=http://192.168.2.1/amd64/ubuntu-desktop/preseed/ubuntu-server.seed vga=normal initrd=install/amd64/initrd.img locale=de_DE bootkbd=de console-setup/layoutcode=de ramdisk_size=16432 root=/dev/rd/0 rw --

LABEL u32s
        MENU LABEL ^u32 - Ubuntu 32 Bit - Server
        KERNEL install/i386/vmlinuz
        APPEND ks=http://192.168.2.1/i386/ubuntu-server.cfg preseed/url=http://192.168.2.1/i386/ubuntu-desktop/preseed/ubuntu-server.seed vga=normal initrd=install/i386/initrd.img locale=de_DE bootkbd=de console-setup/layoutcode=de ramdisk_size=16432 root=/dev/rd/0 rw --

LABEL memtest32d
        MENU LABEL ^MEM-Test von dem Ubuntu 32 Bit - Desktop - CD - Image
        KERNEL install/i386/ubuntu-desktop/install/mt86plus

LABEL memtest32s
        MENU LABEL ^MEM-Test von dem Ubuntu 32 Bit - Server - CD - Image
        KERNEL install/i386/ubuntu-server/install/mt86plus

LABEL memtest64d
        MENU LABEL ^MEM-Test von dem Ubuntu 64 Bit - Desktop - CD - Image
        KERNEL install/amd64/ubuntu-desktop/install/mt86plus

LABEL memtest64s
        MENU LABEL ^MEM-Test von dem Ubuntu 64 Bit - Server - CD - Image
        KERNEL install/amd64/ubuntu-server/install/mt86plus
ohne VESA-Menü

Diese Variante kommt ohne vesamenu.c32 aus, jedoch muss man für den START das komplette LABEL eintippen, deshalb sollte man sich an kurze LABEL halten.

PROMPT 0
TIMEOUT 0
DISPLAY pxelinux.cfg/menue.txt
MENU TITLE PXE Boot-Menue

LABEL u64d
        KERNEL install/amd64/vmlinuz
        APPEND ks=http://192.168.2.1/amd64/ubuntu-desktop_ks.cfg ide=nodma fetch=tftp://192.168.2.1/install/amd64/ubuntu-desktop/casper/filesystem.squashfs vga=normal initrd=install/amd64/initrd.img boot=casper splash locale=de_DE bootkbd=de console-setup/layoutcode=de ramdisk_size=16432 root=/dev/rd/0 rw --

LABEL u32d
        KERNEL install/i386/vmlinuz
        APPEND initrd=install/i386/ubuntu-desktop/casper/initrd.lz boot=casper ramdisk_size=717000 root=/dev/ram0 rw --

LABEL u64s
        KERNEL install/amd64/vmlinuz
        APPEND ks=http://192.168.2.1/amd64/ubuntu-server.cfg preseed/url=http://192.168.2.1/amd64/ubuntu-desktop/preseed/ubuntu-server.seed vga=normal initrd=install/amd64/initrd.img locale=de_DE bootkbd=de console-setup/layoutcode=de ramdisk_size=16432 root=/dev/rd/0 rw --

LABEL u32s
        KERNEL install/i386/vmlinuz
        APPEND ks=http://192.168.2.1/i386/ubuntu-server.cfg preseed/url=http://192.168.2.1/i386/ubuntu-desktop/preseed/ubuntu-server.seed vga=normal initrd=install/i386/initrd.img locale=de_DE bootkbd=de console-setup/layoutcode=de ramdisk_size=16432 root=/dev/rd/0 rw --

LABEL memtest32d
        KERNEL install/i386/ubuntu-desktop/install/mt86plus

LABEL memtest32s
        KERNEL install/i386/ubuntu-server/install/mt86plus

LABEL memtest64d
        KERNEL install/amd64/ubuntu-desktop/install/mt86plus

LABEL memtest64s
        KERNEL install/amd64/ubuntu-server/install/mt86plus

/tftpboot/pxelinux.cfg/menue.txt

In dieser Datei listet man sinnvoller weise alle LABEL aus der Datei /tftpboot/pxelinux.cfg/default mit einer Kurzbeschreibung auf.

#
u32d: Ubuntu 32 Bit - Desktop
u32s: Ubuntu 32 Bit - Server
u64d: Ubuntu 64 Bit - Desktop
u64s: Ubuntu 64 Bit - Server
memtest32d: MEM-Test von dem Ubuntu 32 Bit - Desktop - CD - Image
memtest32s: MEM-Test von dem Ubuntu 32 Bit - Server - CD - Image
memtest64d: MEM-Test von dem Ubuntu 64 Bit - Desktop - CD - Image
memtest64s: MEM-Test von dem Ubuntu 64 Bit - Server - CD - Image
#

ks.cfg

# aptitude install system-config-kickstart
# system-config-kickstart
/tftpboot/install/amd64/ubuntu-desktop_ks.cfg
network --bootproto=dhcp --device=eth0
install url --url http://192.168.2.1/amd64/ubuntu-desktop/
keyboard de
/tftpboot/install/amd64/ubuntu-server_ks.cfg
network --bootproto=dhcp --device=eth0
install url --url http://192.168.2.1/amd64/ubuntu-server/
keyboard de
/tftpboot/install/i386/ubuntu-desktop_ks.cfg
network --bootproto=dhcp --device=eth0
install url --url http://192.168.2.1/i386/ubuntu-desktop/
keyboard de
/tftpboot/install/i386/ubuntu-server_ks.cfg
network --bootproto=dhcp --device=eth0
install url --url http://192.168.2.1/i386/ubuntu-server/
keyboard de

Rechte

# chown -R nobody:nogroup /tftpboot/
# chmod 0644 /tftpboot/install/*/*ks.cfg
# chmod 0644 /tftpboot/install/*/initrd.img
# chmod 0644 /tftpboot/install/*/vmlinuz

HTTP

Die nötige VirtualHost-Sektion könnte so aussehen:

Listen 80
<VirtualHost 192.168.2.1:80>
      DocumentRoot "/tftpboot/install"
      ServerName server:80
      ServerAdmin root@domain.de
      ErrorLog "/var/log/httpd-error_tftp.log"
      TransferLog "/var/log/httpd-access_tftp.log"
      <LocationMatch "/">
              allow from all
      </LocationMatch>
</VirtualHost>                                  

initrd

Möglicherweise brauchen wir eine neu gebaute initrd.

Dann müssen wir entweder die initrd aus einem bereits installierten System verwenden oder uns eine eigene bauen.

In jedem Fall benötigen wir dann ein laufendes Ubuntu-System, auf dem die gleiche Ubuntu-Version läuft, wie sie sich auf dem CD-Image befindet (manchmal geht auch eine ähnliche).

Wenn wir über keine bereits vorhandene Ubuntu-Installation verfügen, müssen wir jetzt unseren Client von unserer CD installieren, und erstellen uns dort die benötigte initrd.

Die Installation kann selbstverständlich auch auf einem USB-Stick erfolgen, um das ursprüngliche System nicht zu beeinflussen oder zu beschädigen. Diese Installation muss aber dann mit der Alternate CD erfolgen, da es sonst nicht möglich ist festzulegen, wo der Bootloader installiert werden soll.

eine vorhandene initrd verwenden

hier kopieren wir uns den Kernel und die initrd:

# cp /boot/initrd.img-$(uname -r) .
# cp /boot/vmlinuz-$(uname -r) .

die 64Bit-Version:

# scp initrd.img-2.6.38-11-generic root@server:/tftpboot/install/amd64/initrd.img
# scp vmlinuz-2.6.38-11-generic root@server:/tftpboot/install/amd64/vmlinuz

die 32Bit-Version:

# scp initrd.img-2.6.38-11-generic root@server:/tftpboot/install/i386/initrd.img
# scp vmlinuz-2.6.38-11-generic root@server:/tftpboot/install/i386/vmlinuz

Manchmal können wir uns auch die benötigten Dateien irgendwo aus dem Internet holen…

unsere initrd modifizieren

Um die initrd, wenn nötig, an spezielle Wünsche anpassen zu können, lesen sie bitte hier weiter: Dateisystem-Images

/home/http/wiki/data/pages/pxe-boot.txt · Zuletzt geändert: von 127.0.0.1