我今天在 Ubuntu 10.04 Server (LTS) 系统上安装了一些补丁。重启新补丁的服务器后,启动过程现在出现一条unknown command 'recordfail'
消息。
如果我按下某个键,机器就会重新启动并卡在同一个位置。我尝试删除recordfail
grub 中的行(按 E 键编辑 grub 条目),但随后出现错误unaligned pointer
。
有人知道这是怎么回事吗?或者如何修复它?我启动了一个 Live 系统,并将有问题的系统安装到 /mnt/slash 上,尝试aptitude reinstall grub-common grub-pc
从 chroot 重新安装 grub 包 (),但没有成功。还尝试了grub-install /dev/sda
,说它完成了,没有错误,但仍然无法启动。谷歌搜索显示了一些不同语言的搜索结果,只有一个解决方案,那就是完全重新安装整个系统(哎呀!)。一定有更好的方法。
更新:重新配置 grub-pc 后 https://i.stack.imgur.com/kxe4a.png
更新2:最后,我从一个正常工作的系统创建了一个 /boot/grub 的 tarball,然后将其解压到损坏的系统上。然后,我启动了一个实时系统,创建了损坏系统的 chroot,并从 chroot 运行了 grub-setup/update-grub。我仍然收到 recordfail 错误消息,但至少现在系统可以启动了。
答案1
- 编辑 /etc/defaut/grub 并删除 GRUB_HIDDEN_TIMEOUT
- 从实时媒体启动,并从 chroot 运行 grub-setup /dev/vda -v 以及 update-grub
答案2
删除 recordfail(可能在较新的 Grub 上不受支持)后,您可能会启动到新内核,这会导致硬件出现问题。我记得我在 Ubuntu 10.04 LTS 中遇到过类似的问题。我最终使用超级Grub磁盘。
一旦您使用 SuperGrubDisk 或 liveCD 启动,您可能就可以修改 grub 配置,以便它启动到您的旧内核。
请注意,您必须运行 Ubuntu 10.04.4 LTS,因为任何其他 10.04 版本不再受支持。
答案3
尝试这个:
- 使用 Ubuntu Live CD 启动并选择救援模式
- 在救援模式中,选择将您的真实根分区挂载到 /
- 挂载启动分区(即
#mount /dev/sda1 /boot
) - 运行
#dpkg-reconfigure grub-pc
并确保#update-grub
- 重启