我在刀片服务器上安装了带有 XEN 的 Cent OS。安装 Cent OS 后,我将其卷组从卷组00到卷组01使用命令'名称'因为我需要访问我将要在此基础 cent os 上安装的 VM 的 Volgroup。此后,一切都运行正常,我实现了我的目标。但是这个周末我们实验室断电了,今天启动这些刀片服务器时,安装在它们上的 CentOS 没有启动。错误是“无法找到卷组00,无法定位 /dev/root'。因此系统一次又一次地重启。
从这个错误中我意识到在启动路径中它仍然是 VolGroup00,这就是导致问题的原因。因此在启动时通过编辑内核行我将 VolGroup00 更改为 VolGroup01。但这次它抛出了错误,提示“找到 Volgroup01,找不到 VolGroup00 并且找不到 /dev/root。”我不明白为什么它仍在搜索 VolGroup00。
一定有一些映射仍然指向 VolGroup00 作为 /dev/root 的位置。我认为它位于 /etc/fstab 中,理想情况下应该通过“vgrename”命令进行更改,但不知何故却没有。那么我能解决我的问题吗?如果可以,如何?
答案1
/boot/grub/grub.conf
您将需要更新 中的根文件系统设备以及 所有文件系统的路径/etc/fstab
。
你可能能够在加载时编辑 GRUB 条目以引导至单用户模式。当您获得引导加载程序菜单时,点击<TAB>
然后更正root=
条目,并 single
在末尾添加。
一旦进入 root shell,请将根文件系统重新挂载为读写:mount -o rw,remount /
并更正/etc/fstab
。如果/usr
是单独的文件系统,您也需要挂载它,才能访问任何编辑器。
答案2
尝试使用标准(非 xen)内核进行启动。
然后重新制作 initrd。xen 也需要知道根分区在哪里。
使用 xen 内核时我从未遇到过此问题。使用非 xen 内核时,James 提出的解决方案应该有效。
这在 xen 上不起作用的原因似乎是:加载的是 XEN-Hypervisor,而不是 Kernel。之后,Hypervisor 为 Dom0(因此 Dom0 是第一个 VM)加载 initrd 和内核,然后启动 initrd。
这实际上与普通靴子类似,但不完全相同。