cobbler import した Ubuntu 20.04 が PXE boot しているのに CD-ROM を求められてしまう件の解決法

Cobbler 3.2.0 で Ubuntu 20.04 の ISO を import して PXE boot しているにも関わらず、CD-ROM が求められる問題で困っていました。

なお、cobbler では、以前このブログで紹介した yaml の手順は使えないので、ubuntu-20.04.1-legacy-server-amd64.iso を使用して、Preseed でインストールする設定です。

Legacy 版の ISO は下記からダウンロードできます。

現象

Detect and mount CD-ROM

Your installation CD-ROM couldn’t be mounted. This probably means that the CD-ROM was not in the drive. If so you can insert it and try again.
Retry mounting the CD-ROM?

インターネットで調べてみたら、DHCP 周りも怪しそうな気がしてきましたが、この状態で busybox を見ても、lo しか見えていないようです。

画面の指示に従いインストール DVD を入れると、正常に Ubuntu 20.04 がインストールされますが、PXE の意味がなくなってしまいます。

調査

※今回は、distro 名を Ubuntu-20.04.1-x86_64 として登録していますが、環境によって読み替えていただければと思います。

いろいろ調べても有力な情報は見つからなかったのですが、公式の手順を注意深く見てみると、vmlinuz ではなく linux で起動しているようです。

cobbler で自動生成された /var/lib/tftpboot/ 内も vmlinuz + initrd.gz の構成になっていました。

# ll /var/lib/tftpboot/images/Ubuntu-20.04.1-x86_64/
total 28616
-r--r--r-- 3 root root 17637355 Aug  1 01:49 initrd.gz
-r--r--r-- 3 root root 11662080 Jul 30 05:31 vmlinuz

この部分は、cobbler distro の設定項目ですが、import 時に自動設定されていたものです。

# cobbler distro report Ubuntu-20.04.1-x86_64 | grep distro_mirror/Ubuntu-20.04.1-x86_64
Initrd                         : /var/www/cobbler/distro_mirror/Ubuntu-20.04.1-x86_64/install/initrd.gz
Kernel                         : /var/www/cobbler/distro_mirror/Ubuntu-20.04.1-x86_64/install/vmlinuz

解決法

それぞれ、下記に変更します。
公式の手順のページよりダウンロードすることもできますが、ISO の中に含まれていて、distro_mirror にもミラーされているのでそれを使用します。

  • install/initrd.gz → install/netboot/ubuntu-installer/amd64/initrd.gz
  • install/vmlinuz → install/netboot/ubuntu-installer/amd64/linux

cobbler distro edit コマンドで編集します。

# cobbler distro edit --name Ubuntu-20.04.1-x86_64 --initrd=/var/www/cobbler/distro_mirror/Ubuntu-20.04.1-x86_64/install/netboot/ubuntu-installer/amd64/initrd.gz --kernel=/var/www/cobbler/distro_mirror/Ubuntu-20.04.1-x86_64/install/netboot/ubuntu-installer/amd64/linux

正常に反映されたことを確認します。

# cobbler distro report Ubuntu-20.04.1-x86_64 | grep distro_mirror/Ubuntu-20.04.1-x86_64
Initrd                         : /var/www/cobbler/distro_mirror/Ubuntu-20.04.1-x86_64/install/netboot/ubuntu-installer/amd64/initrd.gz
Kernel                         : /var/www/cobbler/distro_mirror/Ubuntu-20.04.1-x86_64/install/netboot/ubuntu-installer/amd64/linux
# ll /var/lib/tftpboot/images/Ubuntu-20.04.1-x86_64/
total 61920
-r--r--r-- 3 root root 51738338 Jul 30 05:31 initrd.gz
-r--r--r-- 3 root root 11662080 Jul 30 05:31 linux

解決

この状態で再度 PXE を走らせると、無事 OS インストールが走りました。

Comments

comments

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

*

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)