Benutzer-Werkzeuge

Webseiten-Werkzeuge


pxe-boot

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Nächste Überarbeitung
Vorhergehende Überarbeitung
pxe-boot [2011-10-24 22:46:52] – Externe Bearbeitung 127.0.0.1pxe-boot [2016-04-12 22:50:02] (aktuell) – Externe Bearbeitung 127.0.0.1
Zeile 1: Zeile 1:
 +====== PXE-Boot ======
 +
 +  * [[http://www.ubuntu.com/getubuntu/releasenotes?os=ubuntu&ver=11.10&lang=de]] Ubuntu 11.10 Release Notes
 +    * Bei Ubuntu wurde das Dateisystem __JFS__ aus dem Kernel (3.0) entfernt. Es gibt also seit Kernel 3.0 bei Ubuntu keine native __JFS__-Untestützung mehr, dafür kann man aber jetzt __BtrFS__ als "/boot"- bzw. "/"-Dateisystem verwenden!
 +
 +  * [[http://www.kegel.com/linux/pxe.html]]
 +  * [[http://wiki.ubuntuusers.de/PXE-Boot]]
 +  * [[http://www.n3ncy.com/UNIX/CentOS/PXE.htm]]
 +  * [[http://www.panticz.de/Ubuntu-LiveCD-PXE-boot]]
 +  * [[http://andreasmarschke.wordpress.com/2012/11/04/pxe-setup-with-libvirt-and-kvm/]]
 +  * [[https://github.com/paulmaunders/TFTP-PXE-Boot-Server]]
 +
 +
 +===== NetBoot =====
 +
 +  * [[http://netboot.sourceforge.net/german/einfuehrung.html]]
 +    * [[http://www.vpsdiscussions.com/index.php/topic,119.0.html]]
 +    * [[http://etherboot.org/wiki/httpboot]]
 +    * [[http://www.howtoforge.com/boot-linux-over-http-with-boot.kernel.org-bko]]
 +    * [[http://www.howtoforge.com/boot-linux-over-http-with-netboot.me]]
 +    * [[http://www.linuxtoday.com/it_management/2009100200735OSHLNT]]
 +    * [[http://forums.techarena.in/operating-systems/1303647.htm]]
 +
 +
 +===== booting over HTTP =====
 +
 +  * [[https://help.ubuntu.com/community/PXEInstallServer]]
 +  * [[https://help.ubuntu.com/community/Desktop/PXE]]
 +
 +  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 [[http://wiki.ubuntuusers.de/Alternate_Installation|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]]
 +