Centos 7 VM 无法启动、内核崩溃、Google Compute Engine

Centos 7 VM 无法启动、内核崩溃、Google Compute Engine

两周前,我在 Google Compute Engine 上运行了两年的 Centos 7 VM 突然崩溃,串行控制台日志显示:

[    1.668426] List of all partitions:
[    1.669174] No filesystem could mount root, tried: 
[    1.669979] Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)
[    1.671773] CPU: 0 PID: 1 Comm: swapper/0 Not tainted 3.10.0-957.27.2.el7.x86_64 #1
[    1.673630] Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011
[    1.675841] Call Trace:
[    1.676467]  [<ffffffffadb64147>] dump_stack+0x19/0x1b
[    1.677456]  [<ffffffffadb5d850>] panic+0xe8/0x21f
[    1.678455]  [<ffffffffae186761>] mount_block_root+0x291/0x2a0
[    1.679508]  [<ffffffffae1867c3>] mount_root+0x53/0x56
[    1.680619]  [<ffffffffae186902>] prepare_namespace+0x13c/0x174
[    1.681535]  [<ffffffffae1863df>] kernel_init_freeable+0x1f8/0x21f
[    1.684161]  [<ffffffffae185b1f>] ? initcall_blacklist+0xb0/0xb0
[    1.685266]  [<ffffffffadb52220>] ? rest_init+0x80/0x80
[    1.686058]  [<ffffffffadb5222e>] kernel_init+0xe/0x100
[    1.686884]  [<ffffffffadb76c37>] ret_from_fork_nospec_begin+0x21/0x21
[    1.688183]  [<ffffffffadb52220>] ? rest_init+0x80/0x80
[    1.690932] Kernel Offset: 0x2c400000 from 0xffffffff81000000 (relocation range: 0xffffffff80000000-0xffffffffbfffffff)

我可以在另一个实例中安装磁盘并读取数据。它只占用了 70%。在更大的实例中启动磁盘会产生相同的结果。

有什么建议吗?谢谢。

答案1

我遇到了同样的问题。我使用的是 Centos 7。

我发现我最新安装的内核崩溃了,导致了这个问题。

我设法使用旧内核登录它。

列出内核:

#rpm -q kernel

要删除最新内核:

#yum remove <kernel-3.10.0-1062.4.3.el7.x86_64>(替换为你的最新内核)

重新启动机器,再次安装新内核,一切正常。

========

据我所知,在我们的案例中,当我们进行最新的 yum 更新时,我们在中途丢失了网络连接,这导致了问题。

答案2

当您的 /boot 分区已满或者您缺少该内核的 initramfs 时,可能会出现此问题。

选项 1 从 Ubuntu 高级选项下的 GRUB 菜单中选择另一个内核并运行

sudo update-initramfs -u -k version

这将生成版本的 initrd(将版本替换为内核版本字符串,例如 4.15.0-36-generic),然后

sudo update-grub

选项 #2 从 Ubuntu 高级选项下的 GRUB 菜单中选择另一个内核,并删除旧的 Linux 内核

sudo apt-get autoremove

相关内容