クラウド VM (Azure) で Grub を変更する方法

クラウド VM (Azure) で Grub を変更する方法

これを行う際にいくつかの問題が発生したため、do-release-upgradegrubの起動が終了しました。

オンラインでこの問題を解決する方法の手順を見つけることができないので、以下の私の意見で答えてみましょう。

答え1

まずインストールしてくださいVM - 修理拡張青のため。別のクラウドプロバイダを使用している場合は、これらの手順を手動で実行する必要があります(OSディスクをセカンダリ仮想マシンに接続する)。

az extension add -n vm-repair

次に、「破損した」OSディスクをデータディスクにマウントして、リカバリ仮想マシンを作成します(仮想マシンが停止していることを確認してください)。

az vm repair create -g MyResourceGroup -n myVM \ 
  --repair-username USERNAME --repair-password PASSWORD \
  --verbose --associate-public-ip --distro ubuntu20

myVM は、更新を適用する仮想マシンの名前です。ディストリビューションが同じ grub バージョンをサポートしている場合は、正確に一致する必要はありません。

リカバリ仮想マシンを作成したら、そのパブリックIPを見つけます(またはシリアルコンソールを介して接続)。

ssh -o 'UserKnownHostsFile /dev/null' USERNAME@PUBLIC-IP

接続後:

sudo -s
mkdir /p2

# mount the disk to repair, see `lsblk`
# (on Azure this is usually sdc1)
mount /dev/sdc1 /p2

# now mount the efi to boot
mount /dev/sdc15 /p2/boot/efi

# prep for chroot
for i in /dev /dev/pts /proc /sys /run; do mount -B $i /p2$i; done

# chroot into the mounted disk
chroot /p2

# install grub
grub-install /dev/sdc --boot-directory=/boot

終わったら

az vm repair restore -g MyResourceGroup -n MyVM --verbose

これで、元の仮想マシンを再起動できます。

関連情報