ProxmoxをVer.8.4→Ver.9.1にアップデートをしたところ、あろうことかブートができなくなったなったので、慌てて修復しました。
いろいろ他のツールなどを使って試しましたが、どれもうまくいかず、最終的にはProxmox公式に記載されている方法で対処できました。灯台下暗し...
症状
Proxmox VE8で稼働している仮想サーバーを公式の手順通りにVE9にバージョンアップしました。
手順通りに従いシステムは無事アップデートできましたが、再起動するとGRUB画面に遷移せず、起動→リセットを繰り返すようになってしまいました。
[grub rescue >]も出てこない。
詰んだか...と思いましたが、Proxmoxツールで1日程度で復旧できました。
修復手順
[手順1]ProxmoxインストールUSBの作成
システムが起動できないため、USBのブートディスクを作成します。
Proxmoxの公式ページから最新のISOファイルをダウンロードします。

RufusでUSBに書き込みます。
USBサイズは8GB以上必要だったと思います。

SDカードリーダーは先日購入したUGREEN製のカードリーダーを使用。
USB-Cですが、変換アダプタでUSB-Aも普通に使えます。
Magsafe磁石でサーバーの筐体にも張り付くので固定も楽です。

[手順2]インストールUSBを使ってシステム起動
Proxmoxマシンにモニターとキーボードを接続し、作成したUSB起動デバイスを挿入し、USBブートします。
Delキー連打でマザボのUEFI画面に入り、起動デバイスをUSBに設定します。

起動後、ProxmoxのGUIメニューで「Rescue Boot」を選択します。

Rescue Bootは、ストレージ内のProxmoxシステムを自動マウントして、通常のProxmoxシステムを起動してくれました!
まさに神ツールです。

Windows端末から[http:(サーバーアドレス):8006/]に接続できるようになり、Proxmoxコンソールに入れるようになります。

[手順3]GRUBの再構築
Proxmoxコンソールから[>シェル]を起動し、コマンド操作をします。

lsblkでストレージを確認します。
root@falconblog:~# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
sda 8:0 0 931.5G 0 disk
├─sda1 8:1 0 1007K 0 part
├─sda2 8:2 0 1G 0 part
└─sda3 8:3 0 930.5G 0 part
├─pve-swap 252:0 0 8G 0 lvm [SWAP]
├─pve-root 252:1 0 96G 0 lvm /
├─pve-data_tmeta 252:2 0 8.1G 0 lvm
│ └─pve-data-tpool 252:4 0 794.3G 0 lvm
│ ├─pve-data 252:5 0 794.3G 1 lvm
│ ├─pve-vm--106--disk--0 252:6 0 64G 0 lvm
│ ├─pve-vm--107--disk--0 252:7 0 100G 0 lvm
│ ├─pve-vm--108--disk--0 252:8 0 90G 0 lvm
│ ├─pve-vm--109--disk--0 252:9 0 32G 0 lvm
│ ├─pve-vm--140--disk--0 252:10 0 120G 0 lvm
│ ├─pve-vm--139--disk--0 252:11 0 64G 0 lvm
│ ├─pve-vm--120--disk--0 252:12 0 96G 0 lvm
│ ├─pve-vm--121--disk--0 252:13 0 100G 0 lvm
│ └─pve-vm--124--disk--0 252:14 0 64G 0 lvm
└─pve-data_tdata 252:3 0 794.3G 0 lvm
└─pve-data-tpool 252:4 0 794.3G 0 lvm
├─pve-data 252:5 0 794.3G 1 lvm
├─pve-vm--106--disk--0 252:6 0 64G 0 lvm
├─pve-vm--107--disk--0 252:7 0 100G 0 lvm
├─pve-vm--108--disk--0 252:8 0 90G 0 lvm
├─pve-vm--109--disk--0 252:9 0 32G 0 lvm
├─pve-vm--140--disk--0 252:10 0 120G 0 lvm
├─pve-vm--139--disk--0 252:11 0 64G 0 lvm
├─pve-vm--120--disk--0 252:12 0 96G 0 lvm
├─pve-vm--121--disk--0 252:13 0 100G 0 lvm
└─pve-vm--124--disk--0 252:14 0 64G 0 lvm
sdb 8:16 1 59.5G 0 disk
├─sdb1 8:17 1 286K 0 part
├─sdb2 8:18 1 8M 0 part
├─sdb3 8:19 1 1.7G 0 part
└─sdb4 8:20 1 300K 0 part
sdc 8:32 1 0B 0 disk
sr0 11:0 1 1024M 0 rom
root@falconblog:~# cd /dev/sda2
-bash: cd: /dev/sda2: Not a directory
通常は/dev/sda2/が起動ストレージに設定されています。
公式にあるとおり、/dev/sda2に/boot/efiをマウントします。
lsblkで/boot/efiがマウント出来ていることが確認しておきます。
root@falconblog:/boot/efi# mount /dev/sda2 /boot/efi
root@falconblog:/boot/efi# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
sda 8:0 0 931.5G 0 disk
├─sda1 8:1 0 1007K 0 part
├─sda2 8:2 0 1G 0 part /boot/efi
└─sda3 8:3 0 930.5G 0 part
├─pve-swap 252:0 0 8G 0 lvm [SWAP]
├─pve-root 252:1 0 96G 0 lvm /
├─pve-data_tmeta 252:2 0 8.1G 0 lvm
│ └─pve-data-tpool 252:4 0 794.3G 0 lvm
│ ├─pve-data 252:5 0 794.3G 1 lvm
│ ├─pve-vm--106--disk--0 252:6 0 64G 0 lvm
│ ├─pve-vm--107--disk--0 252:7 0 100G 0 lvm
│ ├─pve-vm--108--disk--0 252:8 0 90G 0 lvm
│ ├─pve-vm--109--disk--0 252:9 0 32G 0 lvm
│ ├─pve-vm--140--disk--0 252:10 0 120G 0 lvm
│ ├─pve-vm--139--disk--0 252:11 0 64G 0 lvm
│ ├─pve-vm--120--disk--0 252:12 0 96G 0 lvm
│ ├─pve-vm--121--disk--0 252:13 0 100G 0 lvm
│ └─pve-vm--124--disk--0 252:14 0 64G 0 lvm
└─pve-data_tdata 252:3 0 794.3G 0 lvm
└─pve-data-tpool 252:4 0 794.3G 0 lvm
├─pve-data 252:5 0 794.3G 1 lvm
├─pve-vm--106--disk--0 252:6 0 64G 0 lvm
├─pve-vm--107--disk--0 252:7 0 100G 0 lvm
├─pve-vm--108--disk--0 252:8 0 90G 0 lvm
├─pve-vm--109--disk--0 252:9 0 32G 0 lvm
├─pve-vm--140--disk--0 252:10 0 120G 0 lvm
├─pve-vm--139--disk--0 252:11 0 64G 0 lvm
├─pve-vm--120--disk--0 252:12 0 96G 0 lvm
├─pve-vm--121--disk--0 252:13 0 100G 0 lvm
└─pve-vm--124--disk--0 252:14 0 64G 0 lvm
sdb 8:16 1 59.5G 0 disk
├─sdb1 8:17 1 286K 0 part
├─sdb2 8:18 1 8M 0 part
├─sdb3 8:19 1 1.7G 0 part
└─sdb4 8:20 1 300K 0 part
sdc 8:32 1 0B 0 disk
sr0 11:0 1 1024M 0 rom
マウントが出来たら/dev/sdaにgrubをインストールします。
インストールは一瞬で終わります。
/boot/efi/EFI/にファイルが保存されていたらインストール成功です。
# grub-install /dev/sda2 Installing for x86_64-efi platform. Installation finished. No error reported. # ls /boot/efi EFI # ls /boot/efi/EFI/ BOOT proxmox
再起動して、通常起動するようになれば、修復は完了です。
Linuxのメジャーバージョンアップはリスクあり
筆者の経験では、Linuxのメジャーバージョンアップは、Boot領域の書き換えがあるため、よく起動しなくなります。
ディストリビューションの差もあまりなく、Ubuntu(Debian)でもRocky Linux(RedHat)でも同様の傾向があるように思います。
ProxmoxにおいてもDebianベースのため、Ubuntuと同じ症状になる傾向があります。
メジャーバージョンアップをする場合は、必ずVMのイメージバックアップを取っておき、最悪、再インストールで対処できるようにしておくのが良いと思います。

