18.04 ISOのPXEブート


12

以前は、ISOをNFSマウントに抽出し、vmlinuz.efiとinitrd.gzをcasperからtftpbootディレクトリにコピーし、iPXEスクリプトマジックを使用してUbuntu LiveCDのPXEブートを設定しました。

これは、16.04、16.10、および17.10(Artful)でも問題なく機能しました。

18.04では、最初にvmlinuz.efiはcasperには存在しませんが、vmlinuzは存在します。だから、私はいくつかの名前を変更して再試行します...

そして今、それはまだ起動を完了していません。「緊急モード」になります。「journalctl -xb」(緊急モードのプロンプトで示唆されているとおり)を入力して参照すると、次のようになります。

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.

助けて!

2018-04-30を追加:

PXEマウント用にISOを抽出するために使用されるスクリプトコード(TARGETはイメージ名に設定されています。たとえば、バイオニック):

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.

これは「クリーン」インストールでしたか?つまり、カーネルが置かれているドライブは新しくフォーマットされましたか?それとも、他のOSと並んで/上にありますか?
ジョナサン

1
問題のターゲットマシンにはハードドライブがなく、ネットワークブート経由で18.04デスクトップLiveCDをロードしています。以前の構成はありません。USBキーまたはCDを使用してliveCDを起動する代わりに、ネットワーク経由でiPXEを使用してライブCDを起動するマシンのグループを想像してください。
ジョーマーリー

回答:


7

Launchpadバグトラッカーで「Woodrow Shen」のアドバイスに従うことにより、iPXEでこの問題を回避しました。

基本的に、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

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

次の変更点に注意してください。

  • 4行目と6行目に名前vmlinuz.efiを変更しますvmlinux
  • toram6行目にオプションを追加します
  • 明らかnfs_pathに、新しい抽出ISOの場所に一致するように変更します

Launchpadで指摘されているように、このtoramオプションには追加のRAMが必要であることに注意してください。テストでは、仮想マシンに4GBのRAMが割り当てられていることを確認する必要がありました

これは、EFIシステムとレガシーBIOSシステムの両方で機能することに注意してください。


1
ありがとうDrGecko- toramオプションはミント19で私のために働いた!
ブライアンサイドボタム

これはlubuntu 18.04.1(LTS)でも機能します。これはまさに私が必要としていたものです。ありがとうございました!
ジョーマーリー

1
必要としない別のオプション、あるtoramに6行目の終わりを変更しますとはるかに少ないRAMでコンピュータを起動することができますip=dhcp systemd.mask=tmp.mount ro -- || read void
Ricflomag

@Ricflomagありがとうございます。2GBのRAMを搭載したコンピューターが山ほどあります。Ubuntu MATE 18.04.1およびLinux Mint 19.1でテストおよび動作します。Ubuntu18.04に基づいているため、同じ問題があります。
スカイラーイットナー

2

週末の後、正確な症状を説明するバグが報告されました(インタラクティブな回避策を提供します)。

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

どうやら18.04.1で待つことになります。少なくとも、私は(完全に)狂っていないことを知っています!


前にリンクをクリックする必要がありました-かなりの時間を考えて費やしました。AIO Bootを使用していました。ありがとう。
レグミ

0

以下の更新-ライブisoを使用せず、従来どおり正確にPXEブートできるものを使用します


Ubuntu 14.04および16.04の場合、フルサーバーDVD ISOをループバックマウントしてWebサーバー経由でアクセスできるようにし、通常の方法でPXEブートをセットアップしました(カーネルとinitrdをtftpデーモンにコピーし、DHCP next-serverオプション、pxeメニューなど)。

ノードの展開を完全に自動化するキックスタートプロセスがあります。

これは18.04では動作しません。インストールディレクトリにカーネルがなく、install / netboot / ubuntu-installer / amd64ディレクトリがありません。だから、私はcasperディレクトリからカーネルとinitrdを試しましたが、それも役に立たないです。netinstall DVD isoを入手し、そこからカーネルとinitrdを使用しました。それは実際にテキストインストーラーを起動しますが、ミラーにはファイルが欠落していると主張しますが、私のHTTPサーバーからのログは404を提供していません!

全体として、ubuntu 18.04サーバーISOは、自動インストールを行いたい人にとっては逆行性のステップだと感じています。


これをキックスタートに追加してみました

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

これは、Ubuntu 14.04 PXEブートを自動化できるようにするためにやらなければならなかったことに似ています

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.