mount --bind /media/cdrom/ /var/www/ubuntu/ mount --bind /media/cdrom/install/netboot/ /tftpboot/
install url --url http://192.168.0.1/ubuntu/
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 --
# 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
das Menü-Programm von der CD kopieren:
# cp /media/cdrom0/isolinux/vesamenu.c32 /tftpboot/pxelinux.cfg/
In dieser Datei können nur maximal 64 LABEL verwaltet werden. Stehen mehr drin, dann werden alle ab dem 65. LABEL ignoriert.
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
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
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 #
# aptitude install system-config-kickstart # system-config-kickstart
network --bootproto=dhcp --device=eth0 install url --url http://192.168.2.1/amd64/ubuntu-desktop/ keyboard de
network --bootproto=dhcp --device=eth0 install url --url http://192.168.2.1/amd64/ubuntu-server/ keyboard de
network --bootproto=dhcp --device=eth0 install url --url http://192.168.2.1/i386/ubuntu-desktop/ keyboard de
network --bootproto=dhcp --device=eth0 install url --url http://192.168.2.1/i386/ubuntu-server/ keyboard de
# chown -R nobody:nogroup /tftpboot/ # chmod 0644 /tftpboot/install/*/*ks.cfg # chmod 0644 /tftpboot/install/*/initrd.img # chmod 0644 /tftpboot/install/*/vmlinuz
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>
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.
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…
Um die initrd, wenn nötig, an spezielle Wünsche anpassen zu können, lesen sie bitte hier weiter: Dateisystem-Images