適用対象: ✔️ Linux VM
この記事では、Azure Linux 仮想マシン (VM) の "ルートの切り替えを開始できませんでした" というエラーを解決する方法について説明します。 この問題は、Oracle 8 SP2 で次の GRUB パッケージ バージョンに更新する場合に発生する可能性があります。
- grub2-common-2.02-78.0.3.el8_1.1.noarch
- grub2-pc-modules-2.02-78.0.3.el8_1.1.noarch
- grub2-efi-x64-2.02-78.0.3.el8_1.1.x86_64
- grub2-tools-extra-2.02-78.0.3.el8_1.1.x86_64
- grub2-tools-2.02-78.0.3.el8_1.1.x86_64
- grub2-pc-2.02-78.0.3.el8_1.1.x86_64
- grub2-tools-minimal-2.02-78.0.3.el8_1.1.x86_64
この記事で Azure の問題に対処できない場合は、MSDN および Stack Overflow の Azure 関連フォーラムを参照してください。 これらのフォーラムまたは Twitter で @AzureSupportに問題を投稿。
Azure サポート ページでAzure サポート要求を送信するには、Get サポートを選択します。
ゲスト OS の問題を手動で修正する
Azure シリアル コンソールにアクセスできる場合は次のAzure シリアル コンソールの方法セクションの手順に進みます。
Azure シリアル コンソール セクションを使用できない場合は、 Offline メソッドに進みます。
Azure シリアル コンソールの方法
Azure シリアル コンソールを使用して VM を再起動し、Escape キーを押したまま GRUB メニューにアクセスします。
復旧カーネルのエントリを選択します。
grubenv
ファイルからkernelopts
値をコピーします。 Linux のgrubenv
ファイルのパスは、システムのディストリビューションと構成によって異なる場合があります。 これは一般的に/boot/efi/EFI/redhat/grubenv
または/boot/grub2/gubenv
にあります。例:
cat /boot/grub2/gubenv
/boot/loader/entries
から目的のブート エントリを編集します。例:
vi /boot/loader/entries/a358b364a6d3492898bedc8d1dea3e92-4.18.0-147.8.1.el8_1.x86_64.conf
コピーした
kernelopts
値を手動で追加し、ブート エントリ ファイルにearlyprintk=ttyS0
します。VM を再起動してください。 複数のカーネルがインストールされている場合は、GRUB メニューから変更されたエントリを選択する必要があります。
オフライン メソッド
Azure シリアル コンソールを使用して VM にアクセスできない場合は、VM が起動しないため、修復はオフライン モードで行う必要があります。
VM 修復コマンドの手順 1 から 3 を使用して、修復 VM を準備します。
SSH を使用して修復 VM に接続します。
修復 VM に接続したら、
lsblk
を使用してブートパーティションと efi パーティションを見つけます。一時的なマウント ポイントを作成します。 たとえば、
/repair
を使用します。mkdir /repair
一時マウント ポイントにブート パーティションをマウントします。 たとえば、
/dev/sdc1
を使用します。mount /dev/sdc1 /repair/
一時マウント ポイントの
efi
の下に efi パーティションをマウントします。 たとえば、/dev/sdc15
を使用します。mount /dev/sdc15 /repair/efi/
grubenv
ファイルからkernelopts
値をコピーします。 Linux のgrubenv
ファイルのパスは、システムのディストリビューションと構成によって異なる場合があります。 これは一般的に/boot/efi/EFI/redhat/grubenv
または/boot/grub2/gubenv
にあります。例:
cat /boot/efi/EFI/redhat/grubenv
/boot/loader/entries
から目的のブート エントリを編集します。例:
vi /boot/loader/entries/a358b364a6d3492898bedc8d1dea3e92-4.18.0-147.8.1.el8_1.x86_64.conf
コピーした
kernelopts
値を手動で追加し、ブート エントリ ファイルにearlyprintk=ttyS0
します。efi パーティションのマウントを解除します。 たとえば、
/repair/efi/
のようにします。umount /repair/efi
ブート パーティションのマウントを解除します。 たとえば、
/repair/
のようにします。umount /repair
VM 修復コマンドの手順 5. を使用して VM をリビルドします。VM を起動します。 複数のカーネルがインストールされている場合は、GRUB メニューから変更されたエントリを選択する必要があります。
お問い合わせはこちらから
質問がある場合やヘルプが必要な場合は、サポート要求を作成するか、Azure コミュニティ サポートにお問い合わせください。 Azure フィードバック コミュニティに製品フィードバックを送信することもできます。