Linuxのリカバリ:chrootを使用してブートできないカーネルの問題の解決方法
前回の記事では、Linux VMを適切に起動させないカーネル関連の問題を手動で修正する方法について説明しました。
また、 CHROOTを使用するための手順を使用できるオプションもあります。手動でファイルを編集する必要はなく、ツールを使用してこれらの同じ問題を自動的に修正します。
この記事に記載されている手順に進むと、システムが準備されていることを前提としています。つまり、一連の手順を完了し、最終的に実行したことを意味します。
chroot / rescue
簡単な例として、CentOS 7.2でカーネルをバージョンアップした後で、起動しないシナリオがあるとします。
3.10.0-327.36.1.el7.x86_64
次のコマンドを実行することで、インストール済みのカーネルをすばやく確認できます。
cd / rescue / boot / grub2 /
grep -i linux16 grub.cfg
出力は次のようになります。
linux16 / boot / vmlinuz-3.10.0-327.36.1.el7.x86_64 root = UUID = 3b5d406c-7fa6-458f-815c-9684bb9fe148 roコンソール= tty1コンソール= ttyS0,115200n8 earlyprintk = ttyS0,115200 rootdelay = 300 net.ifnames = 0 LANG = en_US.UTF-8
linux16 / boot / vmlinuz-3.10.0-327.18.2.el7.x86_64 root = UUID = 3b5d406c-7fa6-458f-815c-9684bb9fe148 roコンソール= tty1コンソール= ttyS0,115200n8 earlyprintk = ttyS0,115200 rootdelay = 300 net.ifnames = 0
つまり、現在の36.1と18.2がインストールされていることを意味します。
次のコマンドを実行すると、簡単に18.2にロールバックできます。
grep -i menuentry grub.cfg
出力は次のようになります。
menuentry ' CentOS Linux(3.10.0-327.36.1.el7.x86_64)7(コア) ' -class centos -class gnu-linux -class gnu -class os -unrestricted $ menuentry_id_option 'gnulinux-3.10.0-327.18.2 .el7.x86_64-advanced-3b5d406c-7fa6-458f-815c-9684bb9fe148 '{
menuentry ' CentOS Linux(3.10.0-327.18.2.el7.x86_64)7(コア) ' -class centos -class gnu-linux -class gnu -class os -unrestricted $ menuentry_id_option 'gnulinux-3.10.0-327.18.2 .el7.x86_64-advanced-3b5d406c-7fa6-458f-815c-9684bb9fe148 '{
これで、次のことを実行できます。 grub2-editenvリスト 次のように表示されます: saved_entry = CentOS Linux(3.10.0-327.36.1.el7.x86_64)7(コア)
grub2-set-default "CentOS Linux(3.10.0-327.18.2.el7.x86_64)7(コア)"
これはカーネルを18.2に戻します。この後、CHROOT環境を終了するための最終ステップを安全に行うことができます:
chroot環境を終了し、すべてをアンマウントする手順は次のとおりです。
出口 cd / umount / rescue / proc / umount / rescue / sys / umount /レスキュー/ dev / pts umount /レスキュー/ dev /
DebianとUbuntuのディストリビューションでは、アンマウント(実行)する必要があります:
umount / rescue / run / umount / rescue
最後に、ディスクを切り離して、PowerShellまたはAzure CLIのいずれかを使用して、記事を使用してVMを再構築することができます。
Azure PowerShell:VHDからVMを削除して再展開する方法 Azure CLI:VHDからVMを削除して再展開する方法