在 Scientific Linux 6.3 上恢复损坏的 grub 加载程序

在 Scientific Linux 6.3 上恢复损坏的 grub 加载程序

Grub 命令行的屏幕截图

所以……有一个笔记本离我很远,一个月左右我只能坐在它面前。所以我正在寻找一个解决方案——“远程”。

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。他们可以使用制表符完成来查找相关文件的名称。

  1. 加载内核:

    grub> kernel /vmlin<TAB>

  2. 加载initrd:

    grub> initrd /initrd-<TAB>

    显然,请确保两个选定文件的版本匹配。

  3. 启动:

    grub> boot

本指南获取屏幕截图和更多详细信息,包括一些诊断菜单问题的提示。

一旦你启动并运行它们,你就需要找出哪里出了问题。不过我不会在这里讨论这个,因为有很多事情可能已经发生的情况,以及解决该情况的相应方法。你必须做一些侦探工作才能找到答案。

例如:有人可能不小心删除了/boot.您的menu.cfg可能已损坏。在update-grub或 的例行运行期间,内核更新可能会搞乱菜单grub-mkconfig。权限可能已被错误地更改。您的设备menu.cfg可能已被更改为指向错误的root设备。您的磁盘可能有问题(在这种情况下您会遇到更大的问题)。等等。

相关内容