18.04 ISO PXE önyükleme


12

Daha önce, ISO'yu bir NFS montajına çıkararak ve vmlinuz.efi ve initrd.gz'yi casper'dan tftpboot dizinine bazı iPXE betik sihiriyle kopyalayarak Ubuntu LiveCD'lerin PXE önyüklemesini ayarladım.

Bu, 16.04, 16.10 ve 17.10'da kusursuz bir şekilde çalıştı (Artful).

18.04 ile önce vmlinuz.efi'nin artık casper'da bulunmadığını, ancak vmlinuz'un bulduğunu gördüm. Bazı isimleri değiştirerek tekrar deniyorum ...

Ve şimdi hala önyüklemeyi tamamlamıyor. "Acil durum modunu" alıyorum. 'Journalctl -xb' yazarak (acil durum modu isteminde önerildiği gibi) ve göz atmak aşağıdakilere yol açar:

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.

Yardım!

2018-04-30 eklendi:

PXE montajı için ISO ayıklamak için kullanılan kod kodu (TARGET resim adına ayarlanmıştır, örn. Biyonik):

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.

Bu "temiz" bir kurulum muydu, yani çekirdeğin bulunduğu sürücü yeni biçimlendirilmiş miydi? Yoksa başka bir işletim sisteminin yanında mı / üstünde mi?
Jonathan

1
Söz konusu hedef makinelerin sabit sürücüsü yoktur ve 18.04 masaüstü LiveCD'yi ağ önyüklemesi yoluyla yüklüyor. Önceki yapılandırma yok. LiveCD'yi başlatmak için USB anahtarları veya CD'leri kullanmak yerine, bunun yerine iPXE'yi ağ üzerinden canlı CD'ye önyükleyen bir grup makine düşünün.
Joe Marley

Yanıtlar:


7

Launchpad hata izleyicide "Woodrow Shen" tavsiyesini takip ederek iPXE'de bu sorunu çözdüm .

Temelde ubuntu 16.04.3 için eski giriş adapte:

: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

Ubuntu 18.04 için böyle görünmek için:

: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

aşağıdaki değişikliklere dikkat edin:

  • adlandırmak vmlinuz.efiiçin vmlinuxhatlar 4 ve 6 ile ilgili
  • toram6. satıra seçenek ekle
  • açıkça nfs_pathyeni özü ISO konumunu eşleşecek şekilde değiştirin

Launchpad'de belirtildiği gibi, bu toramseçeneğin ek RAM gerektirdiğini unutmayın . Testlerimde, sanal makinelerimin 4GB RAM tahsis edilmesini sağlamam gerekiyordu

Bunun hem EFI hem de eski BIOS sistemlerimiz için de işe yaradığını unutmayın.


1
Teşekkür DrGecko - toramseçenek benim için nane 19 ile çalıştı!
Brian Sidebotham

Bu aynı zamanda tam olarak ihtiyacım olan şey olan lubuntu 18.04.1 (LTS) için de geçerli. Teşekkür ederim!
Joe Marley

1
Çok toramdaha az RAM ile bir bilgisayarı gerektirmeyen ve önyüklemeye izin veren başka bir seçenek daha var: 6. satırın sonunuip=dhcp systemd.mask=tmp.mount ro -- || read void
Ricflomag

@Ricflomag Çok teşekkür ederim, 2GB RAM'e sahip bir yığın bilgisayarım var. Ubuntu 18.04.1 ve Ubuntu 18.04 tabanlı olduğu için aynı sorunu taşıyan Linux Mint 19.1 üzerinde test edildi ve çalışıyor.
Skylar Ittner

2

Hafta sonundan sonra, tam belirtilerimi açıklayan bildirilen bir hata buldum (ve etkileşimli bir geçici çözüm sağlıyor).

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

Görünüşe göre 18.04.1'de bekleyeceğim. En azından şimdi (tamamen) deli olmadığımı biliyorum!


Daha önce bağlantıya tıklamalıydım - bulmak için çok zaman harcadım. AIO Boot kullanıyordum. Teşekkürler.
Regmi

0

Aşağıda güncelleme - canlı iso kullanmayın, eskiden yaptığım gibi PXE önyüklenebilir geleneksel olanı kullanın


Ubuntu 14.04 ve 16.04 için, tam sunucu DVD ISO'yu döngüsel olarak monte ettim, böylece bir web sunucusu üzerinden erişilebilir ve her zamanki şekilde PXE önyüklemesini ayarladım (çekirdek ve initrd'i tftp arka plan programına kopyaladı, DHCP sonraki sunucu seçeneği , pxe menüsü vb.).

düğümlerin dağıtımını tamamen otomatikleştirmek için bir başlatma işlemi var.

bu sadece 18.04 ile çalışmaz, kurulum dizininde çekirdek ve install / netboot / ubuntu-installer / amd64 dizini yoktu! Bu yüzden casper dizininden çekirdek ve initrd denedim ama bu da işe yaramaz. Netinstall DVD iso'yu aldım ve bundan çekirdek ve initrd kullandım. Aslında metin yükleyiciyi ateşler, ancak aynanın bir dosya eksik olduğu konusunda ısrar eder, ancak http sunucumdaki günlük 404s vermez!

Genel olarak, ubuntu 18.04 sunucusu ISO'nun otomatik yüklemeler yapmak isteyen insanlar için retrograd bir adım olduğunu hissediyorum.


Ayrıca bunu kickstart'a eklemeyi denedim

önceden yüklenen canlı yükleyici / net görüntü dizesi http: //myreposerver/ubuntu-18.04-live-server-amd64/casper/filesystem.squashfs

Ubuntu 14.04 PXE önyüklemesini otomatik hale getirmek için yapmam gereken şey gibi

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.