それマグで!

知識はカップより、マグでゆっくり頂きます。 takuya_1stのブログ

習慣に早くから配慮した者は、 おそらく人生の実りも大きい。

ubuntu でnet-installが使えなくなり、PXEブートインストールもしんどくなった

virsh install でインストール時にダウンロードできていた。

いままでは、virt-install でインストールできた。必要なパッケージはAptで取ってくるのでAPTプロキシが良い感じに効いてくれた。

virt-install --location http://archive.ubuntu.com/ubuntu/dists/focal/main/installer-amd64/

net-installのインストールのURLを指定するだけで良かった。http://archive.ubuntu.com/ubuntu/dists/focal/main/installer-amd64/

これでlinux のイメージを直接指定できたのだが、22.04 以降ではできなくなっている。

Ubuntuは、net-installをlegacy インストールだと言い放ち、サポート終了している。cloud-init作ったからいいよね。っていうのはちょっとどうかと思うんですけど。

どうしてミラーできない方法をとってしまったのか。などと思う。

同じものを作って捨てるってのがめんどくさいんですよね。従来のインストールならaptのプロキシでデータを共有できたんですよね。

対策1

focal でインストールして、dist-upgrade する。

NAME=ubuntu-2204
DISK=/var/lib/libvirt/images/ubuntu-2204.qcow2
[[ ! -e $DISK ]] && sudo qemu-img create -f qcow2 $DISK 10G 

virt-install \
--name $NAME \
--ram 8192 \
--disk path=$DISK \
--vcpus 4 \
--virt-type kvm \
--os-variant ubuntu22.04 \
--graphics none \
--location 'http://archive.ubuntu.com/ubuntu/dists/jammy/main/installer-amd64/' \
--extra-args "console=tty0 console=ttyS0,115200n8"

対策2

ISOをダウンロードして、を指定する。

ダウンロードして

curl -LJO 'https://releases.ubuntu.com/24.04/ubuntu-24.04-live-server-amd64.iso'

Location指定する。

--location $ubuntu_server_iso,kernel=casper/vmlinuz,initrd=casper/initrd

ISOを使ってインストール

NAME=ubuntu-2404
DISK=/var/lib/libvirt/images/ubuntu-2204.qcow2
[[ ! -e $DISK ]] && qemu-img create -f qcow2 $DISK 10G 
cd /tmp 
curl -LJO 'https://releases.ubuntu.com/24.04/ubuntu-24.04-live-server-amd64.iso'
cd - 
ubuntu_server_iso=$(ls /tmp/ubuntu*.iso)


virt-install \
--name $NAME \
--ram 8192 \
--disk path=$DISK \
--vcpus 4 \
--virt-type kvm \
--os-variant ubuntu-lts-latest \
--graphics none \
--location $ubuntu_server_iso,kernel=casper/vmlinuz,initrd=casper/initrd \
--extra-args "console=tty0 console=ttyS0,115200n8"

ただ、ISOが3GBになるので、事前準備がめんどくさい。起動して初期設定を済ませてからダウンロードするほうが、絶対楽だったんだよなぁ。なにか手を考えたいと思う。

ubuntu のISO配布Archiveサーバーおそいんですよねぇ。何かいい方法ないかなぁ

後始末の例

実験して後始末してデータを消す。

virsh destroy $NAME
virsh undefine $NAME

対策3 PXEインストール

アドレスを変えてPXEインストール用のイメージ(https://releases.ubuntu.com/24.04/)を使う

閲覧すると。netbootがあるんで、見に行くと。pxeイメージが転がっている。 https://releases.ubuntu.com/24.04/netboot/amd64/

PXEブートのイメージを取ってきて、

--location 'https://releases.ubuntu.com/24.04/netboot/amd64/,initrd=initrd,kernel=linux'

ただ、PXEブートはISOを取得するので、ISOを指定しているのとあまり変わらない。

iso-url=https://releases.ubuntu.com/24.04/ubuntu-24.04-live-server-amd64.iso

いちおうインストールしてみた。

NAME=ubuntu-2404
DISK=/var/lib/libvirt/images/ubuntu-2404.qcow2
[[ ! -e $DISK ]] && qemu-img create -f qcow2 $DISK 30G 

virt-install \
--name $NAME \
--ram 8192 \
--disk path=$DISK \
--vcpus 4 \
--virt-type kvm \
--os-variant ubuntu22.04 \
--graphics none \
--location 'https://releases.ubuntu.com/24.04/netboot/amd64/,initrd=initrd,kernel=linux' \
--extra-args "console=tty0 console=ttyS0,115200n8,"

これで問題なくインストールが始まるが、起動後にISOのダウンロードが始まるので。

これはでは、PXEブートの意味がない気がする。 結局、効率が悪い。