ECS实例宕机并产生“VFS: Unable to mount root fs on unknown-block”日志,如何处理?

如果您的ECS实例在启动过程中循环宕机,且产生了VFS: Unable to mount root fs on unknown-block日志信息,则可以参考本文提供的方案解决问题。

问题现象

ECS实例在启动过程中出现循环宕机,无法正常进入系统,且产生类似于如下所示的调用栈:

[    1.573197] Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)
[    1.574179] CPU: 4 PID: 1 Comm: swapper/0 Not tainted 3.10.0-1160.6.1.el7.x86_64 #1
[    1.575045] Hardware name: Alibaba Cloud Alibaba Cloud ECS, BIOS 8f19b21 04/01/2014
[    1.575900] Call Trace:
[    1.576246]  [<ffffffff8f381400>] dump_stack+0x19/0x1b
[    1.576845]  [<ffffffff8f37a958>] panic+0xe8/0x21f
[    1.577433]  [<ffffffff8f98b794>] mount_block_root+0x291/0x2a0
[    1.578122]  [<ffffffff8f98b7f6>] mount_root+0x53/0x56
[    1.578719]  [<ffffffff8f98b935>] prepare_namespace+0x13c/0x174
[    1.579425]  [<ffffffff8f98b412>] kernel_init_freeable+0x222/0x249
[    1.580150]  [<ffffffff8f98ab28>] ? initcall_blacklist+0xb0/0xb0
[    1.580838]  [<ffffffff8f36fa90>] ? rest_init+0x80/0x80
[    1.581462]  [<ffffffff8f36fa9e>] kernel_init+0xe/0x100
[    1.582073]  [<ffffffff8f394df7>] ret_from_fork_nospec_begin+0x21/0x21
[    1.582814]  [<ffffffff8f36fa90>] ? rest_init+0x80/0x80

问题原因

ECS实例在启动过程中找不到根分区的文件系统,可能原因是内核升级被中断或出错,进而导致rootfs损坏。

解决方案

重要

在操作前,建议您为ECS实例创建快照备份数据,避免因误操作造成的数据丢失。创建快照的具体操作,请参见创建一个云盘快照

建议您为ECS实例更换系统盘,或者基于已创建的快照回滚云盘。具体操作,请参见更换操作系统(系统盘)使用快照回滚云盘