windows10gegner
Goto Top

Ubuntu Live DVD PXE Boot

Halo,
ich wollte mal frage ob es schonmal jemand geschafft hat, ein Bionic x64 Live per PXE zu booten. Ziel ist, dass man auf das Live-System auch ohne CD Zugriff hat.
TFTP (tftpd-hpa) läuft und funktioniert auch.
Ich versuche mich hierdran zu halten:
https://wiki.ubuntuusers.de/PXE-Boot/

1. Frage: Mein tftpd-hpa nutzt /var/lib/tftpboot
/var/lib/tftp wurde nicht erstellt.
Wenn ich mit tftp von außen drauf zugreife, komme ich auf die Inhalte von /var/lib/tftpboot.
Auf Inhalte in tftp kann ich nicht zugreifen. Hätte mich auch gewundert.
2. Frage: Wie macht man das Ganze richtig?

DHCP ist der Cisco. Der vergibt Option 66 und 67.
Ich verstehe das so:
ISO in TFTP-Verzeichnis entpacken, pxelinux.cfg erstellen, Datei default erstellen.
Als Datei wird pxelinux.0 übergeben. Diese beinhaltet das DVD-ISO aber nicht. Was soll hier getan werden?

LG Marco

Content-ID: 391793

Url: https://administrator.de/forum/ubuntu-live-dvd-pxe-boot-391793.html

Ausgedruckt am: 21.12.2024 um 14:12 Uhr

gammelobst
gammelobst 06.11.2018 um 15:25:56 Uhr
Goto Top
Moin,

dein angegebener Link ist perfekt für dein Unterfangen.

In kurz:

- tftp-server + bootfile "pxelinux.0" kommt vom DHCP
- pxelinux.0 sucht nach der config in pxelinux.cfg (default)
- default lädt syslinux-komponenten um ein menü anzuzeigen (wenn konfiguriert)
- gewählter booteintrag wird gestartet
LABEL       ubuntu-live
MEMU LABEL  ^Ubuntu-Live-DVD 14.04          # Nur wenn menu.c32 benutzt wird!
KERNEL      ubuntu-live/casper/vmlinuz.efi
APPEND      root=/dev/nfs boot=casper netboot=nfs nfsroot=192.168.178.2:/var/lib/tftp/ubuntu-live/ initrd=ubuntu-live/casper/initrd.lz quiet splash --
sagt uns, dass er den kernel und das initrd vom tftp holt und den rest über NFS...

cya
Windows10Gegner
Windows10Gegner 06.11.2018 um 17:47:52 Uhr
Goto Top
Die Frage ist, woher pxeconfig.0 kommt.
Die ist nicht im Ubuntu-ISO enthalten, wenn man dies entpackt.
gammelobst
gammelobst 06.11.2018 aktualisiert um 21:18:46 Uhr
Goto Top
Moin,

guckst du hier.
Anleitung die da.

cya
Windows10Gegner
Windows10Gegner 07.11.2018 um 15:39:07 Uhr
Goto Top
Leider ist nach dem Entpacken mit tar (habe das tar.gz genommen) keine pxelinux.0 im core-Verzeichnis.
gammelobst
gammelobst 07.11.2018 um 18:18:41 Uhr
Goto Top
Moin,

das ist der source-code zum selber kompilieren.
Ne vorkompilierte version gibts z.b. in der netboot.tar.gz vom debian netinstall...

cya
Windows10Gegner
Windows10Gegner 07.11.2018 um 20:09:48 Uhr
Goto Top
Soe sieht der Ordner jetzt aus:
djkuhpisse@ubuntu-server:/var/lib/tftpboot$ ls -la
insgesamt 80408
drwxrwxr-x  6 tftp tftp     4096 Nov  7 19:58 .
drwxr-xr-x 39 root root     4096 Nov  7 19:38 ..
-rwxrwxrwx  1 tftp tftp    25204 Nov  7 19:37 chain.c32
drwxrwxrwx  2 tftp tftp     4096 Nov  7 19:49 images
lrwxrwxrwx  1 tftp tftp       47 Jul 25 03:24 ldlinux.c32 -> ubuntu-installer/amd64/boot-screens/ldlinux.c32
-rwxrwxrwx  1 tftp tftp    11712 Nov  7 19:37 mboot.c32
-rwxrwxrwx  1 tftp tftp    25628 Nov  7 19:38 memdisk
-rwxrwxrwx  1 tftp tftp    26568 Nov  7 19:36 menu.c32
-rwxrwxrwx  1 tftp tftp 54881316 Jul 25 03:53 netboot.tar.gz
-rwxrwxrwx  1 tftp tftp    41661 Nov  7 19:56 pxelinux.0
lrwxrwxrwx  1 tftp tftp       33 Jul 25 03:24 pxelinux.0.old -> ubuntu-installer/amd64/pxelinux.0
drwxrwxrwx  2 tftp tftp     4096 Nov  7 19:59 pxelinux.cfg
lrwxrwxrwx  1 tftp tftp       35 Jul 25 03:24 pxelinux.cfg.old -> ubuntu-installer/amd64/pxelinux.cfg
-rwxrwxrwx  1 tftp tftp 27278336 Nov  7 19:30 syslin.tar
drwxrwxrwx 32 tftp tftp     4096 Nov  7 19:15 syslinux
drwxrwxrwx  3 tftp tftp     4096 Jul 25 03:24 ubuntu-installer
-rwxrwxrwx  1 tftp tftp       60 Jul 25 03:24 version.info
djkuhpisse@ubuntu-server:/var/lib/tftpboot$ 

Ich habe mit sudo tcpdump |grep tftp
versucht rauszubekommen, ob da ein Zugriff stattfindet. Findet aber nicht statt.
Wenn ich manuell was übertrage sehe ich es dort.
Daher werde ich jetzt den DHCP prüfen.
gammelobst
gammelobst 08.11.2018 aktualisiert um 20:43:18 Uhr
Goto Top
Moin,

bei Cisco sollte das wohl so aussehen:
ip dhcp pool <name>
     network <ip of network> <subnet mask>
     bootfile pxelinux.0
     next-server <ip of PXE Server>
     default-router <network default gateway>
     netbios-name-server <one or more ip adresses>
     option 43 hex <hex values obtained from PXE Forced Mode Utility>
     option 66 ascii "name of PXE Server"  
     dns-server <one or more ip addresses>
     option 150 <ip of PXE Server>
     domain-name <domain name>

cya...
Windows10Gegner
Windows10Gegner 08.11.2018 um 20:48:36 Uhr
Goto Top
Funktioniert. Ich erhalte jetzt Peter Anvin ...
Sollte also geklappt haben.
Dann kann ich den DHCP-Thread schließen.
Windows10Gegner
Windows10Gegner 08.11.2018 um 21:15:20 Uhr
Goto Top
Leider funktioniert es nicht mit der Live-DVD, der Eintrag ist vorhanden, es passiert aber nichts.
default
path ubuntu-installer/amd64/boot-screens/
include ubuntu-installer/amd64/boot-screens/menu.cfg
default ubuntu-installer/amd64/boot-screens/vesamenu.c32
prompt 0
timeout 0

LABEL       ubuntu-live
KERNEL      ubuntu-live/casper/vmlinuz.efi
APPEND      root=/dev/nfs boot=casper netboot=nfs nfsroot=10.0.0.115:/var/lib/tftpboot/ubuntu-live/ initrd=ubuntu-live/casper/initrd.lz quiet splash --

Netinstall kann gestartet werden

Ich habe jetzt wie bei ubuntuusers.de das ISO-Image von Bionic x64 entpackt.
Die Anleitung zu Yakkety ist uralt, ich habe auch das Gefühl es gibt da Probleme mit den Dateien aus den verschiedenen Quellen.
gammelobst
gammelobst 09.11.2018 um 20:01:28 Uhr
Goto Top
Moin,

dein NFS-Server ist auch richtig konfiguriert?

cya
Windows10Gegner
Windows10Gegner 09.11.2018 um 21:33:38 Uhr
Goto Top
NFS kann ich mounten und die Daten auch lesen.
Wenn ich dann Ubuntu-live anwähle passiert nichts. Ich kann weiterhin mit den Pfeiltasten zu den anderen Optionen navigieren.
Ich bin jetzt etwas weiter. Eine vmlinuz.efi gibt es nicht, nur ohne diese Endung. Diese habe ich jetzt in default eingetragen.
Jetzt wird die Datei geladen, dann leibt der Monitor aber schwarz. Wenn man dann Enter drückt kommt die normale Konsole (wie beim Recovery Modus).
Ein Desktop wie bei der Live-CD üblich erschient nicht.
Schreibrechte habe ich auf dem NFS (Im /tftpboot/ubuntu-live Verzeichnis).
djkuhpisse@ubuntu-server:/var/lib/tftpboot$ cat pxelinux.cfg/default 
# D-I config version 2.0
# search path for the c32 support libraries (libcom32, libutil etc.)
path ubuntu-installer/amd64/boot-screens/
include ubuntu-installer/amd64/boot-screens/menu.cfg
default ubuntu-installer/amd64/boot-screens/vesamenu.c32
prompt 0
timeout 0

LABEL       ubuntu-live
KERNEL      ubuntu-live/casper/vmlinuz #vorher.efi
APPEND      root=/dev/nfs boot=casper netboot=nfs nfsroot=10.0.0.115:/var/lib/tftpboot/ubuntu-live/ initrd=ubuntu-live/casper/initrd.lz quiet splash --
gammelobst
Lösung gammelobst 11.11.2018 aktualisiert um 17:35:38 Uhr
Goto Top
Moin,

nach ein wenig google und testen:

LABEL live-bionic
        menu label Bionic_^Live
        menu default
        kernel bionic/vmlinuz
        append boot=casper netboot=nfs nfsroot=10.0.0.115:/srv/nfs/bionic initrd=bionic/initrd.lz toram

cya
Windows10Gegner
Windows10Gegner 11.11.2018 aktualisiert um 18:24:22 Uhr
Goto Top
Booten funktioniert (Pfade waren aber mit casper).
Desktop kommt.
Gibt es noch eine Möglichkeit, den immer in deutscher Sprache zu starten?
EDIT:
Das System startet immer in Englisch, dann muss man manuell die Tastaturbelegung ändern.

Ein weiterer Effekt ist, dass der DNS nicht funktioniert (ich schaue mal, was da los ist).
Windows10Gegner
Windows10Gegner 14.11.2018 um 15:51:48 Uhr
Goto Top
gammelobst
gammelobst 17.11.2018 um 11:20:54 Uhr
Goto Top
ich hab das jetzt so:

LABEL live-bionic
        menu label Bionic_^Live
        menu default
        kernel bionic/vmlinuz
        append nfsroot=10.9.9.1:/srv/nfs/bionic netboot=nfs ro file=/cdrom/preseed/ubuntu.seed boot=casper initrd=bionic/initrd.lz locale=de_DE bootkbd=de console-setup/layoutcode=de systemd.mask=tmp.mount --

und /etc/resolv.conf muss manuell auf den richtigen DNS gesetzt werden

cya
Windows10Gegner
Windows10Gegner 03.12.2018 um 17:30:45 Uhr
Goto Top
Es funktioniert bei mir.
Zum DNS: Kann man systemd-resolve den DNS nicht irgendwie auch übergeben?
Denn wenn ich dem manuell den DNS gebe funktioniert alles.
DNS wird per DHCP zugeteilt.