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ブートの意味がない気がする。 結局、効率が悪い。