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
[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
[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)
/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
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
[...]
[...]
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/
[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 --
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 ]
© 2004-2021 by Georg Kainzbauer