アップデートに失敗しました
再起動してください。と表示されたので再起動すると・・・
initramfs-4.18.0-553.42.1.el8_10.x86_64.img not found
となってshellのプロンプトまで到達しなかった。
仕方が無いのでレスキュー版で起動すると、
kernel panic!
仕方が無いので3つあるkernelを順に起動すると
- AlmaLinux (4.18.0-553.40.1.el8_10.x86_64) 8.10
- AlmaLinux (4.18.0-553.36.1.el8_10.x86_64) 8.10
で起動できた。
とりあえず2か3番目で自動起動しようとGRUB_SAVEDEFAULT=trueを追加してみた・・・
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
GRUB_DEFAULT=saved
GRUB_SAVEDEFAULT=true
GRUB_DISABLE_SUBMENU=true
GRUB_TERMINAL="serial console"
GRUB_SERIAL_COMMAND="serial --speed=115200"
GRUB_CMDLINE_LINUX="crashkernel=auto resume=/dev/mapper/cl-swap rd.lvm.lv=cl/rooot rd.lvm.lv=cl/swap console=ttyS0,115200n8"
GRUB_DISABLE_RECOVERY="true"
GRUB_ENABLE_BLSCFG=true
grub2-mkconfig -o /boot/grub2/grub.cfg
したけど36を指定して起動した後に再起動しても、やはり先頭の42を起動してしまう。
無駄だったみたいなので戻す。
ちゃんと直すしかないのか orz
失敗するのは最新の
- AlmaLinux (4.18.0-553.42.1.el8_10.x86_64) 8.10
だけなのでとりあえず、ls -l /boot/init*すると
# ls -l init*
-rw-------. 1 root root 65479600 2月 3 2020 initramfs-0-rescue-888ffa2eb9d5445599d39810727386a4.img
-rw------- 1 root root 51083878 1月 24 06:34 initramfs-4.18.0-553.36.1.el8_10.x86_64.img
-rw------- 1 root root 32029184 1月 29 07:24 initramfs-4.18.0-553.36.1.el8_10.x86_64kdump.img
-rw------- 1 root root 51083826 2月 13 04:15 initramfs-4.18.0-553.40.1.el8_10.x86_64.img
-rw------- 1 root root 32025088 2月 13 04:22 initramfs-4.18.0-553.40.1.el8_10.x86_64kdump.img
36と40が同じサイズ(注:そのときにはそう見えた)だから、
42でもサイズが同じならコピればすむかな?と36のファイルを42でコピして起動すると
[ 4.513259] dracut-pre-udev[294]: modprobe: FATAL: Module dm_mod not found in directory /lib/modules/4.18.0-553.42.1.el8_10.x86_64
使うファイル名にカーネルのバージョンが入っているのか・・・orz
initramfs-4.18.0-553.42.1.el8_10.x86_64.imgの中に
/lib/modules/4.18.0-553.42.1.el8_10.x86_64が無く困ってるようだ。
諦めてinitramfsファイルを再構築することにする
dracut --force --kver 4.18.0-553.42.1.el8_10.x86_64 /boot/initramfs-4.18.0-553.42.1.el8_10.x86_64.img
–force は実行フラグ
–kverはカーネルのバージョンで普通は uname -r でチェックできるけど、その42では動かないので
{36上で調べると}
# uname -r
4.18.0-553.36.1.el8_10.x86_64
{だから}
4.18.0-553.42.1.el8_10.x86_64
{だろう}
/boot/initramfs-4.18.0-553.42.1.el8_10.x86_64.imgは出力先ファイル名
これで42で起動できるようになったが、
レスキューが動かないと思えてしまったのはカーネルダンプの起動エラーの後、コンソールのエスケープシーケンスが壊れログインプロンプトがそれっぽく見えなかったせいだった。
その後
virt-sparsifyでKVMイメージを圧縮して約半分のサイズにしたら、
# virt-sparsify /var/lib/libvirt/images/AlmaLinux9.qcow2 /var/lib/libvirt/images/AlmaLinux9new.qcow2
は、$TMPDIRに一旦作業エリアを確保するし、コピー先ファイルも一旦同じサイズで作るみたいで空き容量は倍以上必要っぽい
また、未使用エリアのクリアが元になってエラーが出ることもあるようだ
クリアーし過ぎてエラったみたいなので
再び同じdracutコマンドでinitramfsを再構築し再起動したらちゃんと起動した。
#qemu-img convert -c -f qcow2 -O qcow2 /var/lib/libvirt/images/AlmaLinux9{,new}.qcow2
は、必要なトコだけファイルを作るので助かるけど圧縮率がイマイチなことも多々ある