![在 Scientific Linux 6.3 上恢复损坏的 grub 加载程序](https://linux22.com/image/25886/%E5%9C%A8%20Scientific%20Linux%206.3%20%E4%B8%8A%E6%81%A2%E5%A4%8D%E6%8D%9F%E5%9D%8F%E7%9A%84%20grub%20%E5%8A%A0%E8%BD%BD%E7%A8%8B%E5%BA%8F.png)
所以……有一个笔记本离我很远,一个月左右我只能坐在它面前。所以我正在寻找一个解决方案——“远程”。
Scientific Linux 6.3安装在上面,并且运行良好。有一天,使用它的人给我发了一张照片。
问: 如何修复 GRUB 菜单?这样他们就可以再次使用笔记本了?
PS:除了基本安装之外,该计算机上还配置了自动更新,这是我实现它的方法:
yum remove -y PackageKit* yum-autoupdate yum-updateonboot; read; vi /etc/yum-update
cat yum-update
#!/bin/bash
# run an update in at least every 172800 seconds [in at least every 48h]
# wait for random time: 0-2700 sec [0-45min]
/bin/sleep $[ ($RANDOM % 2701 ) ]
if [ `stat --format=%Y $0` -le $(( `date +%s` - 172800 )) ]; then
# sync time - http://www.pool.ntp.org/zone/hu
/usr/sbin/ntpdate time.kfki.hu 0.hu.pool.ntp.org; /sbin/hwclock --systohc
# do updates
/usr/bin/yum -q -y update
/usr/bin/yum clean all
# update last modification time + create log entry
/bin/touch $0
/bin/echo "/etc/yum-update OK" | /usr/bin/logger
fi
chmod +x /etc/yum-update; crontab -e
52 * * * * bash /etc/yum-update
PPS:他们尝试在机器启动时按向上/向下键(希望选择另一个内核),但没有帮助。
答案1
听起来您已经以某种方式损坏或丢失了您的/boot/grub/menu.lst
或/boot/grub/grub.cfg
.好消息是您的内核可能仍然存在,并且可能仍然可以启动(除非您的整个文件系统已损坏或发生其他情况)。
GRUB shell 实际上是相当实用。您可以使用它来诊断和修复损坏的配置,但如果您不在场,这将非常困难。更好的选择可能是进入工作内核,然后远程登录(例如通过 ssh)来检查情况。
假设您可以让您的同事运行一些命令,您应该能够将他们引导到 Linux。他们可以使用制表符完成来查找相关文件的名称。
加载内核:
grub> kernel /vmlin<TAB>
加载initrd:
grub> initrd /initrd-<TAB>
显然,请确保两个选定文件的版本匹配。
启动:
grub> boot
看本指南获取屏幕截图和更多详细信息,包括一些诊断菜单问题的提示。
一旦你启动并运行它们,你就需要找出哪里出了问题。不过我不会在这里讨论这个,因为有很多事情可能已经发生的情况,以及解决该情况的相应方法。你必须做一些侦探工作才能找到答案。
例如:有人可能不小心删除了/boot
.您的menu.cfg
可能已损坏。在update-grub
或 的例行运行期间,内核更新可能会搞乱菜单grub-mkconfig
。权限可能已被错误地更改。您的设备menu.cfg
可能已被更改为指向错误的root
设备。您的磁盘可能有问题(在这种情况下您会遇到更大的问题)。等等。