KVM」カテゴリーアーカイブ

CentOS7でbootできなくなったときの対処

自宅の環境ではKVM上でいくつかの仮想サーバが動いている。
仮想サーバのOSはCentOS7.8で、yum-cronを動かして放置していた。
先日、久しぶりにOS再起動をしたところ、OSが起動できなくなってしまった。
起動時のログを見ていると、以下のログが出ていた。

[    1.013801] List of all partitions:
[    1.015108] No filesystem could mount root, tried: 
[    1.016734] Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)
[    1.019481] CPU: 0 PID: 1 Comm: swapper/0 Not tainted 3.10.0-1127.18.2.el7.x86_64 #1
[    1.022194] Hardware name: Red Hat KVM, BIOS 0.5.1 01/01/2011
[    1.023881] Call Trace:
[    1.025034]  [<ffffffffb577ffa5>] dump_stack+0x19/0x1b
[    1.026803]  [<ffffffffb5779541>] panic+0xe8/0x21f
[    1.028402]  [<ffffffffb5d8b794>] mount_block_root+0x291/0x2a0
[    1.030085]  [<ffffffffb5d8b7f6>] mount_root+0x53/0x56
[    1.031749]  [<ffffffffb5d8b935>] prepare_namespace+0x13c/0x174
[    1.034253]  [<ffffffffb5d8b412>] kernel_init_freeable+0x222/0x249
[    1.036027]  [<ffffffffb5d8ab28>] ? initcall_blacklist+0xb0/0xb0
[    1.037817]  [<ffffffffb576e6b0>] ? rest_init+0x80/0x80
[    1.039407]  [<ffffffffb576e6be>] kernel_init+0xe/0x100
[    1.040978]  [<ffffffffb5792d37>] ret_from_fork_nospec_begin+0x21/0x21
[    1.042843]  [<ffffffffb576e6b0>] ? rest_init+0x80/0x80
[    1.044603] Kernel Offset: 0x34000000 from 0xffffffff81000000 (relocation range: 0xffffffff80000000-0xffffffffbfffffff)

rootのファイルシステムがマウントできず、カーネルパニックを起こしているらしい。
調べてみた結果、yumとかで新しいカーネルバージョンにアップデートされると、
上記のエラーメッセージが出て、できなくなることがあるらしい。
対処としては、OS起動時にカーネルバージョン選択画面が出てくるので、
古いカーネルバージョンを指定して起動してあげれば起動できるようにはなるらしい。

さて、それはわかったが、KVMだとそれをどうやればいいんだろうということだ。
GUI環境がまったくなく、起動時にカーネルバージョンを指定することができない。
KVMのコマンドでカーネルバージョンの指定をする方法等調べてみたが、
その方法は見つけることができなかった。

直接bootの設定ファイルを書き換えて対処できないかと思考錯誤してみて、対処できたので、その方法をまとめる。

続きを読む

KVMでよく使うコマンド

KVMでよく使うコマンドのメモ。

KVMはKernel-based Virtual Machineの略で、Linuxでよく使われる仮想化基盤です。
Linuxカーネルに組み込まれています。VPSもKVMで動いているのが多いです。
私はプライベートではこちらに非常にお世話になっており、
大体のマシンはKVMで動かしています。(このブログもKVMで動かしています)
続きを読む