Avvio PXE di 18.04 ISO


12

In precedenza, avevo impostato l'avvio PXE dei LiveCD di Ubuntu estraendo l'ISO su un mount NFS e copiando vmlinuz.efi e initrd.gz dal casper alla directory tftpboot con un po 'di magia di scripting iPXE.

Questo ha funzionato perfettamente per 16.04, 16.10 e 17.10 (Artful).

Con 18.04, ho scoperto che vmlinuz.efi non esiste più in casper, ma vmlinuz lo fa. Quindi, riprovo con un cambio di nome ...

E ora non completa ancora l'avvio. Ottengo la "modalità di emergenza". Digitando "journalctl -xb" (come suggerito dal prompt della modalità di emergenza) e la navigazione porta a quanto segue:

Unit sys-fs-fuse-connections has begun starting up.
ubuntu systemd[1]: Failed to set up mount unit: Device or resource busy
ubuntu systemd[1]: Failed to set up mount unit: Device or resource busy
sys-kernel-config.mount: Mount process finished, but there is no mount.
sys-kernel-config.mount: Failed with result 'protocol'.
Failed to mount Kernel Configuration File System.

Aiuto!

Aggiunto il 30-04-2018:

Codice dello script utilizzato per estrarre ISO per l'attacco PXE (TARGET impostato sul nome dell'immagine, ad esempio bionico):

set -e

# Look for bionic.iso as the ISO I am going to extract.
TARGET=invalid.iso
[ -f bionic.iso ] && TARGET=bionic
echo TARGET=$TARGET

# Mount the ISO to the /tmp directory
sudo rm -rf /var/nfs/$TARGET/*
sudo rm -rf /tmp/$TARGET
mkdir /tmp/$TARGET
sudo mount -o loop ~/$TARGET.iso /tmp/$TARGET

# Clear up the NFS directory where things will be copied (and copy them)
sudo rm -rf /var/nfs/$TARGET
sudo mkdir /var/nfs/$TARGET
sudo rsync -avH /tmp/$TARGET/ /var/nfs/$TARGET

# I've not had luck with iPXE changing filesystems to find
# vmlinuz, vmlinuz.efi, or initrd.gz... so I copy those files
# specifically to the tftp directory structure so the boot loader
# can load them.
sudo rm -rf /var/lib/tftpboot/$TARGET
sudo mkdir /var/lib/tftpboot/$TARGET
sudo cp /tmp/$TARGET/casper/vmlinuz* /var/lib/tftpboot/$TARGET/.
sudo cp /tmp/$TARGET/casper/initrd.lz /var/lib/tftpboot/$TARGET/.

# Cleanup: unmount the ISO and remove the temp directory
sudo umount /tmp/$TARGET/
sudo rm -rf /tmp/$TARGET/
echo Done.

Era un'installazione "pulita", il che significa che l'unità su cui si trova il kernal era formattata di recente? O è accanto / sopra un altro sistema operativo?
Jonathan,

1
Le macchine di destinazione in questione non hanno un disco rigido e stanno caricando il LiveCD desktop 18.04 tramite l'avvio di rete. Non esiste una configurazione precedente. Immagina un gruppo di macchine che invece di utilizzare chiavi USB o CD per avviare il liveCD, avviano invece il live CD usando iPXE sulla rete.
Joe Marley,

Risposte:


7

Ho risolto questo problema in iPXE seguendo il consiglio di "Woodrow Shen" nel tracker dei bug del Launchpad .

Fondamentalmente ho adattato la nostra vecchia voce per Ubuntu 16.04.3:

:deployUbuntu-x64-16.04.3
set server_ip 123.123.123.123
set nfs_path /opt/nfs-exports/ubuntu-x64-16.04.3
kernel nfs://${server_ip}${nfs_path}/casper/vmlinuz.efi || read void
initrd nfs://${server_ip}${nfs_path}/casper/initrd.lz || read void
imgargs vmlinuz.efi initrd=initrd.lz root=/dev/nfs boot=casper netboot=nfs nfsroot=${server_ip}:${nfs_path} ip=dhcp splash quiet -- || read void
boot || read void

Per apparire così per Ubuntu 18.04:

:deployUbuntu-x64-18.04
set server_ip 123.123.123.123
set nfs_path /opt/nfs-exports/ubuntu-x64-18.04
kernel nfs://${server_ip}${nfs_path}/casper/vmlinuz || read void
initrd nfs://${server_ip}${nfs_path}/casper/initrd.lz || read void
imgargs vmlinuz initrd=initrd.lz root=/dev/nfs boot=casper netboot=nfs nfsroot=${server_ip}:${nfs_path} ip=dhcp splash quiet toram -- || read void
boot || read void

notare le seguenti modifiche:

  • rinominare vmlinuz.efiper essere vmlinuxsulle linee 4 e 6
  • aggiungi l' toramopzione alla riga 6
  • ovviamente cambia il nfs_pathper adattarlo alla posizione del nuovo estratto ISO

nota che, come sottolineato su Launchpad, questa toramopzione richiede RAM aggiuntiva. Nei miei test, avevo bisogno di assicurarmi che alle mie macchine virtuali fossero allocati 4 GB di RAM

Nota che questo funziona anche con i nostri sistemi EFI e BIOS legacy.


1
Grazie DrGecko - l' toramopzione ha funzionato per me con mint 19!
Brian Sidebotham,

Questo funziona anche con lubuntu 18.04.1 (LTS), che è esattamente ciò di cui avevo bisogno. Grazie!
Joe Marley,

1
C'è un'altra opzione, che non richiede torame consente di avviare un computer con molta meno RAM: cambiare la fine della linea 6 inip=dhcp systemd.mask=tmp.mount ro -- || read void
Ricflomag

@Ricflomag Grazie mille, ho un mucchio di computer con 2 GB di RAM. Testato e funziona su Ubuntu MATE 18.04.1 e Linux Mint 19.1, che presenta lo stesso problema poiché si basa su Ubuntu 18.04.
Skylar Ittner

2

Dopo il fine settimana, ho trovato un bug segnalato che descriveva i miei sintomi esatti (e fornisce una soluzione interattiva).

https://bugs.launchpad.net/ubuntu/+source/casper/+bug/1755863

Apparentemente aspetterò il 18.04.1. Almeno ora so che non sono (del tutto) pazzo!


Avrei dovuto fare clic sul collegamento in precedenza - ho trascorso parecchio tempo a capire. Stavo usando AIO Boot. Grazie.
Regmi,

0

aggiorna qui sotto - non usare l'iso live, usa quello tradizionale che può essere avviato PXE esattamente come facevo prima


per Ubuntu 14.04 e 16.04, ho semplicemente montato in loop-back l'intero ISO del DVD del server in modo che fosse accessibile tramite un server Web e ho impostato l'avvio PXE nel solito modo (copiato il kernel e initrd dal demone tftp, opzione DHCP del server successivo , menu pxe ecc.).

abbiamo un processo kickstart per automatizzare completamente la distribuzione dei nodi.

semplicemente non funziona con 18.04, non c'era kernel nella directory di installazione e nessuna directory install / netboot / ubuntu-installer / amd64! Quindi ho provato il kernel e initrd dalla directory casper ma anche questo è inutile. Ho preso il DVD di netinstall e ho usato il kernel e initrd. In realtà avvia l'installazione del testo ma insiste che al mirror manca un file, ma il registro dal mio server http non sta fornendo 404 secondi!

nel complesso, quindi, ritengo che l'ISO del server Ubuntu 18.04 sia un passaggio retrogrado per le persone che desiderano eseguire installazioni automatizzate.


Ho anche provato ad aggiungere questo al kickstart

stringa preinstallata live-installer / net-image http: //myreposerver/ubuntu-18.04-live-server-amd64/casper/filesystem.squashfs

che è un po 'come la cosa che dovevo fare per rendere automatico l'avvio di Ubuntu 14.04 PXE

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.