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 インストールが走りました。