Boot PXE dari 18,04 ISO

12

Sebelumnya, saya telah menyiapkan booting PXE dari LiveCDs Ubuntu dengan mengekstraksi ISO ke mount NFS dan menyalin vmlinuz.efi dan initrd.gz dari casper ke direktori tftpboot dengan beberapa sihir skrip iPXE.

Ini bekerja dengan sempurna untuk 16.04, 16.10, dan 17.10 (Artful).

Dengan 18,04, saya pertama kali menemukan bahwa vmlinuz.efi tidak lagi ada di casper, tetapi vmlinuz memilikinya. Jadi, saya coba lagi dengan mengganti nama ...

Dan sekarang ini masih belum menyelesaikan booting. Saya mendapatkan "mode darurat". Mengetik 'journalctl -xb' (seperti yang disarankan oleh prompt mode darurat) dan menjelajah mengarah ke yang berikut:

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.

Tolong!

Ditambahkan 2018-04-30:

Kode skrip yang digunakan untuk mengekstrak ISO untuk pemasangan PXE (TARGET diatur ke nama gambar, misalnya bionik):

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.
Joe Marley
sumber
Apakah ini instalasi yang "bersih", artinya, drive yang kernal aktifkan diformat baru? Atau apakah itu di samping / melampaui OS lain?
Jonathan
1
Mesin target yang dimaksud tidak memiliki hard drive, dan memuat LiveCD desktop 18,04 melalui boot jaringan. Tidak ada konfigurasi sebelumnya. Bayangkan sekelompok mesin yang alih-alih menggunakan kunci USB atau CD untuk mem-boot liveCD, boot live CD menggunakan iPXE melalui jaringan sebagai gantinya.
Joe Marley

Jawaban:

7

Saya mengatasi masalah ini di iPXE dengan mengikuti saran "Woodrow Shen" di pelacak bug Launchpad .

Pada dasarnya saya mengadaptasi entri lama kami untuk 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

Agar terlihat seperti ini untuk 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

perhatikan perubahan berikut:

  • ganti nama vmlinuz.efimenjadi vmlinuxon line 4 dan 6
  • tambahkan toramopsi ke baris 6
  • jelas mengubah nfs_pathagar sesuai dengan lokasi ekstrak ISO baru

perhatikan bahwa seperti yang ditunjukkan pada Launchpad, toramopsi ini membutuhkan RAM tambahan. Dalam pengujian saya, saya perlu memastikan mesin virtual saya memiliki 4GB RAM yang dialokasikan

Perhatikan bahwa ini juga berfungsi untuk sistem BIOS EFI dan lawas kami.

DrGecko
sumber
1
Terima kasih DrGecko - toramopsi bekerja untuk saya dengan mint 19!
Brian Sidebotham
Ini juga berfungsi untuk lubuntu 18.04.1 (LTS), yang memang saya butuhkan. Terima kasih!
Joe Marley
1
Ada pilihan lain, yang tidak memerlukan toramdan memungkinkan untuk mem-boot komputer dengan RAM yang jauh lebih sedikit: ubah akhir baris 6 keip=dhcp systemd.mask=tmp.mount ro -- || read void
Ricflomag
@Ricflomag Terima kasih banyak, saya memiliki setumpuk komputer dengan 2GB RAM. Diuji dan berfungsi pada Ubuntu MATE 18.04.1 dan Linux Mint 19.1, yang memiliki masalah yang sama karena didasarkan pada Ubuntu 18.04.
Skylar Ittner
2

Setelah akhir pekan, saya menemukan bug yang dilaporkan yang menggambarkan gejala saya yang sebenarnya (dan memberikan solusi interaktif).

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

Rupanya saya akan menunggu di 18.04.1. Setidaknya sekarang saya tahu saya tidak (sepenuhnya) gila!

Joe Marley
sumber
Saya seharusnya mengklik tautan sebelumnya - menghabiskan cukup banyak waktu untuk mencari. Saya menggunakan AIO Boot. Terima kasih.
Regmi
0

perbarui di bawah ini - jangan gunakan iso langsung, gunakan yang tradisional yang dapat di-boot PXE persis seperti yang biasa saya lakukan


untuk ubuntu 14.04 dan 16.04, saya hanya loop-mount mount server penuh DVD ISO sehingga dapat diakses melalui server web, dan mengatur boot PXE dengan cara biasa (menyalin kernel dan initrd ke tftp daemon, opsi DHCP server berikutnya) , menu pxe, dll).

kami memiliki proses kickstart untuk sepenuhnya mengotomatiskan penyebaran node.

ini tidak bekerja dengan 18.04, tidak ada kernel di direktori install, dan tidak ada direktori install / netboot / ubuntu-installer / amd64! Jadi saya mencoba kernel dan initrd dari direktori casper tetapi itu juga tidak berguna. Saya mengambil iso netinstall DVD dan menggunakan kernel dan initrd dari sana. Itu benar-benar menyalakan installer teks tetapi bersikeras cermin tidak ada file, tetapi log dari server http saya tidak memberikan 404s!

secara keseluruhan, saya merasa server ubuntu 18.04 ISO adalah langkah retrograde bagi orang yang ingin melakukan instalasi otomatis.


Saya juga mencoba menambahkan ini ke kickstart

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

yang agak seperti hal yang harus saya lakukan untuk membuat boot Ubuntu 14,04 PXE automatable

Paul M.
sumber