我有两台服务器 - guacamole 和 chorizo,需要使用 Openstack 云进行设置。我在一台服务器上安装了 ubuntu 服务器,然后使用 linux“dd”对磁盘进行映像以构建另一台服务器,并重命名服务器主机名。从那时起,我已多次重启服务器,没有问题。两个驱动器上的文件系统都是 LVM。
最近我不得不交换两台服务器的主机名。我将 chorizo 重命名为 guacamole,反之亦然。新的 guacamole 运行良好,我认为新的 chorizo 运行良好。我多次重启两台服务器,都没有问题。
最近在 chorizo 上安装了 Openstack 控制器网络 (neutron),并重新启动了服务器。它在 initramfs 提示符处停止,并显示
Gave up waiting for root device. Common problesm:
- Boot args (cat /proc/cmdline)
- Check root delay
- Check root = (did system wait for right device)
- missing modules (cat proc/modules; ls/dev)
ALERT! /dev/mapper/guacamole--vg-root does not exist. Dropping to a shell.
文件 /proc/cmdline 有
BOOT_IMAGE=/... root=/dev/mapper/guacamole--vg-root ro
但 /dev/mapper 包含文件
/dev/mapper/chorizo--vg-root
/dev/mapper/chorizo--vg-swap_1 (or something)
我尝试将根文件系统挂载在 /root 下:
挂载 /path/to/root/dev /root
退出 initramfs shell:
出口
这并没有启动文件系统
我尝试编辑 /proc/cmdline 以放入正确的 BOOT_IMAGE(即 chorizo 而不是 guacamole),但 initramfs 没有编辑器。因此我使用了
initramfs> sed -i 's/guacamole/chorizo/g' /proc/cmdline
但文件系统是只读的。所以我将 chorizo 的磁盘插入 guacamole 并进一步启动。我可以以某种单用户模式启动,这将允许我输入 root 密码并以 root 身份登录。
我尝试使用 vim 从那里编辑 /proc/cmdline 文件,但整个文件系统是只读的。
我从 guacamole 的原始磁盘启动,将 Chorizo 的磁盘插入另一个热插拔端口,这样我就可以挂载两个磁盘。从那里我可以
root@guacamole:~# sudo lshw -C disk
*-disk:1
description: SCSI Disk
physical id: 0.1.0
bus info: scsi@0:0.1.0
logical name: /dev/sdb
size: 1863GiB (2TB)
capabilities: partitioned partitioned:dos
configuration: sectorsize=512 signature=000cfebc
我做了一个
lvm vgchange -ay
并使用
挂载 ext3 /dev/whatever /chorizo
没用。我按照说明进行安装 http://www.linuxwave.info/2007/11/mounting-lvm-disk-using-ubuntu-livecd.html Guacamole 不会安装该磁盘,因为它认为该磁盘与已安装的磁盘重复。
我记得以前在 OSX 上也发生过类似的事情。更改主机名会堵塞 grub 引导加载程序。我尝试从 Ubuntu 安装盘启动并重新安装 grub 引导加载程序,但在救援菜单系统中找不到此选项。
任何的建议都受欢迎。