在我执行并让其更新 menu.lst 后无法启动aptitude full-upgrade
(首先做了差异并且看起来不错)。
这是我目前在 BusyBox shell 中所做的事情:
mkdir /tmp/xvda1
mount /dev/xvda1 /tmp/xvda1
chroot /dev/xvda1
nano /boot/grub/menu.lst
该文件如下所示:
title Ubuntu 12.04.1 LTS, kernel 3.2.0-31-virtual
root(hd0,0)
kernel /boot/vmlinuz-3.2.0-31-virtual root=UUID=/dev/xvda1 ro quiet splash
initrd /boot/initrd.img-3.2.0-31-virtual
title Ubuntu 12.04.1 LTS, kernel 3.2.0-31-virtual (recovery mode)
root(hd0,0)
kernel /boot/vmlinuz-3.2.0-31-virtual root=UUID=/dev/xvda1 ro single
initrd /boot/initrd.img-3.2.0-31-virtual
titleUbuntu 12.04.1 LTS, kernel 3.2.0-24-virtual
root(hd0,0)
kernel/boot/vmlinuz-3.2.0-24-virtual root=UUID=/dev/xvda1 ro quiet splash
initrd/boot/initrd.img-3.2.0-24-virtual
titleUbuntu 12.04.1 LTS, kernel 3.2.0-24-virtual (recovery mode)
root(hd0,0)
kernel/boot/vmlinuz-3.2.0-24-virtual root=UUID=/dev/xvda1 ro single
initrd/boot/initrd.img-3.2.0-24-virtual
titleUbuntu 12.04.1 LTS, kernel 3.2.0-24-generic
root(hd0,0)
kernel/boot/vmlinuz-3.2.0-24-generic root=UUID=/dev/xvda1 ro quiet splash
initrd/boot/initrd.img-3.2.0-24-generic
titleUbuntu 12.04.1 LTS, kernel 3.2.0-24-generic (recovery mode)
root(hd0,0)
kernel/boot/vmlinuz-3.2.0-24-generic root=UUID=/dev/xvda1 ro single
initrd/boot/initrd.img-3.2.0-24-generic
titleChainload into GRUB 2
root(hd0,0)
kernel/boot/grub/core.img
titleUbuntu 12.04.1 LTS, memtest86+
root(hd0,0)
kernel/boot/memtest86+.bin
据我所知,升级添加了该UUID=
字符串。我应该删除它们吗?或者,我该如何让我的系统重新上线?谢谢。
更新:看来我甚至无法编辑该文件。
[ Error writing /boot/grub/menu.lst: Read-only file system ]
更新 2:
我现在已经从图像重建了服务器。现在检查差异,这似乎是市长的事情:
-kernel /boot/vmlinuz-3.2.0-24-virtual root=/dev/xvda1 console=hvc0 ro quiet splash
+kernel /boot/vmlinuz-3.2.0-31-virtual root=UUID=/dev/xvda1 ro quiet splash
所以如果我能保存的话menu.lst
,我想我就能解决它了。
我剩下的问题是:我怎么才能写信给menu.lst
?
答案1
我刚刚遇到了同样的问题 - 在重新启动之前编辑您的/boot/grub/menu.lst
- 删除UUID=
并添加console=hvc0
。
据我所知,console=hvc0
Xen 可以重定向和捕获控制台输出。此外,UUID 可用于识别根分区,但使用的语法不正确。
来源这里。