我在 Rackspace 上托管了一个云服务器,他们使用 Xen Server 虚拟机管理程序。我当时运行的是 Ubuntu 12.04,尝试手动进行版本升级时,却遇到了麻烦。
虚拟机管理程序显然无法适应对 GRUB 所做的更改(我认为;可能还有更多),因此无法重新启动;它卡在启动的 initramfs 阶段:
我和一位技术人员谈了很久。我们不太确定该怎么做;配置一台新服务器、获取该内核/ GRUB 配置并将其放在当前服务器上是否有意义?或者尝试回滚更改/降级?
如果您有任何建议,我们将不胜感激。
答案1
不是 xen 的东西。操作位是 /dev/disk-by-uuid/dev/xvda1 不存在。
- 通过标准方式访问 grub.conf(例如启动救援或挂载分区/文件/等等)
- 看看是否
root=UUID=/dev/xvda1
出现类似的东西并将它们更改为root=/dev/xvda1
检查 /etc/fstab 是否也符合要求,例如:
/dev/xvda1 / ext3 默认值,错误=remount-ro 0 1
并不是:
UUID=/dev/xvda1 / ext3 defaults,errors=remount-ro 0 1
就应该这样。
提示:除非您正在交谈的“技术人员”已经尝试过此操作,否则他/她将力不从心。这在 Google 首页,并且与启动相关的是 Rackspace ;-) 干杯,alf
编辑
看到您的(grub2)配置后,我会尝试用以下内容替换它:
timeout=5
menuentry 'Ubuntu, with Linux 3.2.0-24-generic' {
#not sure about the following line
root=xvda,1
linux /boot/vmlinuz-3.2.0-24-generic root=/dev/xvda1 ro console=hvc0
initrd /boot/initrd.img-3.2.0-24-generic
}
然后,我会着手找到一种使其永久存在的方法,因为下次升级时 grub-mkconfig 将再次破坏你的配置。 这里您会发现另一种可能也有效的策略,更不用说应该听取的建议了。
答案2
因此,这里没有人能够特别正确地分析这个问题,但 Rackspace 的高级 Linux 管理员在解决这个问题上发挥了重要作用。
我用 Alien Life Form 给我的替换了我的 GRUB2 配置,但将根行更改为:
set root=(hd0)
然后,在我的 中menu.lst
,我删除了该by-uuid
行,以便它可以找到我的驱动器。
从此,它正常启动了。
谢谢你们!