Good to Know Database

Booten vom Netzwerk: Ubuntu 12.04.3 via PXE starten


In der folgenden Anleitung wird ein bestehender PXELINUX PXE-Server um zwei Einträge für die Ubuntu 12.04.3 (Precise Pangolin) Live-Systeme erweitert. Sollten Sie noch keinen PXE-Server eingerichtet haben, lesen Sie bitte die Anleitung CentOS 6: PXE-Server mit graphischem Bootmenü. Des Weiteren wird ein funktionstüchtiger NFS-Server vorausgesetzt, welcher den Inhalt der Live-CD's zur Verfügung stellt. Die Konfiguration eines NFS-Servers wird in der Anleitung CentOS 6: NFSv4 Server einrichten beschrieben.

Zuerst laden Sie sich die benötigten Live-CD's herunter.

[root@centos6 ~]# wget -c http://ftp5.gwdg.de/pub/linux/debian/ubuntu/iso/12.04.3/ubuntu-12.04.3-desktop-i386.iso http://ftp5.gwdg.de/pub/linux/debian/ubuntu/iso/12.04.3/ubuntu-12.04.3-desktop-amd64.iso

Anschließend mounten Sie das erste ISO-Image (hier ubuntu-12.04.3-desktop-i386.iso) in das Verzeichnis /mnt.

[root@centos6 ~]# mount -o loop ubuntu-12.04.3-desktop-i386.iso /mnt

Erstellen Sie jetzt ein Verzeichnis in welches Sie den Inhalt des ISO-Images kopieren und später per NFS freigeben.

[root@centos6 ~]# mkdir -p /data/nfs/ubuntu12.04.3_live_i386
[root@centos6 ~]# cp -a /mnt/. /data/nfs/ubuntu12.04.3_live_i386

Nachdem Sie alle Dateien kopiert haben, hängen Sie das erste ISO-Image wieder aus.

[root@centos6 ~]# umount /mnt

Wiederholen Sie diese Schritte für die 64bit Live-CD (ubuntu-12.04.3-desktop-amd64.iso).

[root@centos6 ~]# mount -o loop ubuntu-12.04.3-desktop-amd64.iso /mnt
[root@centos6 ~]# mkdir -p /data/nfs/ubuntu12.04.3_live_amd64
[root@centos6 ~]# cp -a /mnt/. /data/nfs/ubuntu12.04.3_live_amd64
[root@centos6 ~]# umount /mnt

Jetzt geben Sie die beiden Verzeichnisse mittels NFS frei. Dazu bearbeiten Sie die Konfigurationsdatei /etc/exports.

[root@centos6 ~]# vi /etc/exports

Fügen Sie am Ende der Datei die beiden folgenden Zeilen ein. Wenn nötig ändern Sie die Subnetzadresse für welches diese Freigaben verfügbar sein sollen.

/data/nfs/ubuntu12.04.3_live_i386   192.168.10.0/24(ro)
/data/nfs/ubuntu12.04.3_live_amd64  192.168.10.0/24(ro)

Nachdem Sie die Konfigurationsdatei bearbeitet haben, laden Sie die neue Konfiguration.

[root@centos6 ~]# service nfs reload

Die Ubuntu 12.04.3 Live-Systeme verwenden die Kernelversion 3.8, bei welcher die NFS-Kernelmodule aufgesplittet wurden. Das bedeutet in der Ramdisk initrd.lz müssen die Kernelmodule nfs, nfsv3, nfsv4 und nfs_acl enthalten sein. In der initrd.lz auf den Ubuntu 12.04.3 Live-CD's befindet sich jedoch nur das Kernelmodul nfs. Sollten Sie die initrd.lz von den Ubuntu 12.04.3 Live-CD's verwenden, wird während des Bootvorgangs die folgende Fehlermeldung angezeigt und der Bootvorgang abgebrochen.

mount: Protocol not supported

Damit dies nicht der Fall ist müssen Sie die initrd.lz selber erstellen. Starten Sie dazu das jeweilige Ubuntu 12.04.3 Live-System von einer CD oder von einem USB-Stick (siehe Multiboot USB-Stick: Ubuntu 12.04.3 einrichten). Nachdem Sie das Live-System gestartet haben, öffnen Sie das Ubuntu Software Center. Klicken Sie hier im Menü Edit auf den Eintrag Software Sources.... Wechseln Sie zum Register Updates und aktivieren die Option Pre-released updates (precise-proposed).

Öffnen Sie jetzt ein Terminal-Fenster und aktualisieren die lokale Paketdatenbank.

ubuntu@ubuntu:~$ sudo apt-get update

Installieren Sie anschließend das Paket initramfs-tools.

ubuntu@ubuntu:~$ sudo apt-get install initramfs-tools

Erstellen Sie jetzt mit dem folgenden Befehl eine neue initrd.lz.

ubuntu@ubuntu:~$ mkinitramfs -c lzma -o /tmp/initrd.lz `uname -r`
cryptsetup: WARNING: failed to detect canonical device of overlayfs
cryptsetup: WARNING: could not determine root device from /etc/fstab

Mit dem folgenden Befehl können Sie überprüfen ob die benötigten Kernelmodule in der neu erstellten initrd.lz enthalten sind.

ubuntu@ubuntu:~$ unlzma -c -S .lz /tmp/initrd.lz | cpio -t | grep nfs
[...]
lib/modules/3.8.0-29-generic/kernel/fs/nfs_common
lib/modules/3.8.0-29-generic/kernel/fs/nfs_common/nfs_acl.ko
lib/modules/3.8.0-29-generic/kernel/fs/nfs
lib/modules/3.8.0-29-generic/kernel/fs/nfs/nfsv4.ko
lib/modules/3.8.0-29-generic/kernel/fs/nfs/nfsv3.ko
lib/modules/3.8.0-29-generic/kernel/fs/nfs/nfs.ko
[...]

Kopieren Sie jetzt die Datei /tmp/initrd.lz auf einen USB-Stick oder über das Netzwerk auf Ihren Server. Starten Sie anschließend das nächste Ubuntu 12.04.3 Live-System von CD oder USB-Stick und wiederholen diese Schritte erneut.

Nachdem Sie für das Ubuntu 12.04.3 i386 Live-System und das Ubuntu 12.04.3 amd64 Live-System die initrd.lz neu erstellt haben, sollten Sie auf dem PXE-Server eine Verzeichnisstruktur für die PXE-Bootdateien erstellen. Kopieren Sie anschließend die Kerneldateien von den Live-CD's und die erstellten Ramdiskdateien in die jeweiligen Unterverzeichnisse. Die Kerneldateien können Sie dabei direkt aus den NFS-Verzeichnissen kopieren.

[root@centos6 ~]# mkdir -p /tftpboot/ubuntu12.04.3_live/i386 /tftpboot/ubuntu12.04.3_live/amd64
[root@centos6 ~]# cp /data/nfs/ubuntu12.04.3_live_i386/casper/vmlinuz /tftpboot/ubuntu12.04.3_live/i386/
[root@centos6 ~]# cp /data/nfs/ubuntu12.04.3_live_amd64/casper/vmlinuz.efi /tftpboot/ubuntu12.04.3_live/amd64/

Öffnen Sie jetzt die Datei /tftpboot/pxelinux.cfg/default mit einem Editor.

[root@centos6 ~]# vi /tftpboot/pxelinux.cfg/default

Fügen Sie hier die folgenden Abschnitte ein damit Sie die Ubuntu 12.04.3 Live-Systeme via PXE booten können.

label ubuntu12.04.3_live_i386
  menu label Ubuntu 12.04.3 Live i386
  kernel /ubuntu12.04.3_live/i386/vmlinuz
  append nfsroot=192.168.10.1:/data/nfs/ubuntu12.04.3_live_i386/ netboot=nfs ro file=/cdrom/preseed/ubuntu.seed boot=casper initrd=/ubuntu12.04.3_live/i386/initrd.lz locale=de_DE bootkbd=de console-setup/layoutcode=de --

label ubuntu12.04.3_live_amd64
  menu label Ubuntu 12.04.3 Live amd64
  kernel /ubuntu12.04.3_live/amd64/vmlinuz.efi
  append nfsroot=192.168.10.1:/data/nfs/ubuntu12.04.3_live_amd64/ netboot=nfs ro file=/cdrom/preseed/ubuntu.seed boot=casper initrd=/ubuntu12.04.3_live/amd64/initrd.lz locale=de_DE bootkbd=de console-setup/layoutcode=de --

Nachdem Sie alle Änderungen durchgeführt haben, können Sie die Ubuntu 12.04.3 Live-Systeme vom PXE-Server booten.


Dieser Eintrag wurde am 21.09.2013 erstellt und zuletzt am 24.01.2016 bearbeitet.

Direkter Link zu dieser Seite: http://www.gtkdb.de/index_7_2343.html

[ Zur Startseite ]   [ Zur Kategorie ]


Valid XHTML 1.0 Transitional Valid CSS Valid Atom 1.0

© 2004-2018 by Georg Kainzbauer