troushoo

カーネルの問題でブートできない Linux のカーネルバージョンを変更する方法 : chroot

概要

カーネルの問題でブートできない Linux を、ブートできるようにするべくカーネルバージョンを元に戻す方法を紹介します。

内容

CentOS 7.2 で、カーネルバージョン「3.10.0-327.36.2.el7.x86_64」にてCentOS が起動しなくなったと仮定し、手順を紹介します。

大まかな手順は以下です。
1. 起動しない OS ディスクを、正常に起動できる同じディストリビューションのデーターディスクとして接続
2. カーネルバージョンを元に戻す
3. 起動しない OS ディスクを、正常に起動できる同じディストリビューションからデタッチ
4. 起動しなかった OS ディスクを用いて Linux を起動

以下、各々について詳細を見ていきます。

1. 起動しない OS ディスクを、正常に起動できる同じディストリビューションのデーターディスクとして接続
1.1. 起動しない OS ディスクを、正常に起動する同じディストリビューションのデーターディスクに接続します。

1.2. どのデバイスにディスクが接続されたかを調べます。

grep SCSI /var/log/messages

以下の結果では、/dev/sdc に接続されていることがわかります。


1.3. ディスクをマウントします。
mount –o nouuid /dev/sdc1 /rescue/


2. カーネルバージョンを元に戻す
2.1. chrootでルートディレクトリーを変更します。
chroot /rescue


2.2. 起動しない Linux でインストールされているカーネルのバージョンを確認します。
cd /boot/grub2
grep –i linux16 grub.cfg

以下のスクリーンショットの例では、「3.10.0-327.36.2.el7.x86_64」と「3.10.0-327.18.2.el7.x86_64」がインストールされていたことがわかります。


2.3. 起動しない Linux で使用されているカーネルバージョンを確認してみます。
grub2-editenv list

以下の例では、「3.10.0-327.36.2.el7.x86_64」が使用されていることがわかります。


2.3. ブートに使用するカーネルバージョンを変更するために使用する値を取得します。
grep -i menuentry grub.cfg

緑の枠の部分です。


2.4. カーネルのバージョンを以前のもの「3.10.0-327.18.2.el7.x86_64」に戻します。
grub2-set-default <2.3. で確認した値>


2.5. 問題なく変更されたかどうかを確認してみます。
grub2-editenv list

「3.10.0-327.18.2.el7.x86_64」になっていることがわかります。


3. 起動しない OS ディスクを、正常に起動できる同じディストリビューションからデタッチ
3.1. ルートディレクトリを元に戻し、環境を元に戻します。
exit

[補足] Microsoft のブログでは、明示的にアンマウントしているものもありましたが、試したところマウントされていない、というエラーとなりました。


3.2. 起動しない OS ディスクを、正常に起動できる同じディストリビューションからデタッチします。

4. 起動しなかった OS ディスクを用いて Linux を起動
4.1. 起動しなかった OS ディスクを用いて Linux を起動します。

4.2. カーネルのバージョンが以前のものになっていることを確認します。
uname -r


情報元
Linux Recovery: Fixing non-boot issues related to Kernel problems using chroot (英語)
Linux Recovery: Using CHROOT steps to recover VMs that are not accessible (英語)

関連記事
Linux で、何がファイルを変更したのかを調査する方法 - auditd -
  1. 2016/10/24(月) 00:03:09|
  2. Linux
  3. | トラックバック:0
  4. | コメント:0
<<.NET のデコンパイル、デバッグ、ソースの編集も可能なオープンソースのツール dnSpy | ホーム | Azure でフェイルオーバー クラスター を構築>>

コメント

コメントの投稿


管理者にだけ表示を許可する

トラックバック

トラックバック URL
http://troushoo.blog.fc2.com/tb.php/311-45caac81
この記事にトラックバックする(FC2ブログユーザー)

スポンサーリンク

最新記事

月別アーカイブ

カテゴリ

ツール (92)
ネットワーク (76)
Visual Studio (56)
SOS・Psscor2/Psscor4 (25)
WinDbg (25)
Linux (23)
Azure (17)
Tips (20)
英語 (1)
About Me (1)
未分類 (0)

全記事表示リンク

全ての記事を表示する

検索フォーム

RSSリンクの表示

リンク

このブログをリンクに追加する