我不得不重新安装 Windows。不幸的是,这意味着 grub 无法正常工作。从 Live CD 启动,打开终端并输入:
sudo update-grub
但收到了回复
sudo: can't stat /etc/sudoers: Input/output error
sudo: no valid sudoers sources found, quitting
尝试过不带它sudo
,它告诉我必须以 root 身份执行此操作。
答案1
LiveCD 肯定出了什么问题。正如 @psusi 所建议的,你应该检查一下磁盘。如果有错误,你可能需要先更换它,然后再将其用于其他用途。刻录之前检查一下 ISO 是个好主意。
最初,我以为 sudo 是不需要的,因为没有密码,但我发现事实并非如此。像 gparted 这样的程序通常会提示输入密码,但它们将从菜单无需提示;但命令行程序仍然需要 sudo,尽管它们不会提示输入密码。
但您应该知道,update-grub
无论如何,这都不是解决此问题的正确方法;它只会/boot/grub/grub.cfg
在 GRUB MBR 代码读取的分区(在本例中为 CD,甚至无法写入)中生成菜单配置文件 ()。在您的情况下,GRUB 代码不在 MBR 中,因此不会运行;因此,它永远不会读取菜单配置文件。
您需要使用来grub-install
解决您的问题,这有点复杂,并且需要安装磁盘。使用启动修复盘 。本磁盘将自动修复此问题。
为了真正将 GRUB 放在 MBR 上,您需要运行grub-install
,指定要使用的目录grub.cfg
(默认为/boot/grub/grub.cfg
),并指定 MBR 代码的磁盘,例如sudo grub-install --root-directory = /media/sda2 /dev/sda
;假设 /dev/sda2 安装在 /media 上。重点是必须安装分区才能安装grub.cfg
。
语法grub-install
基本上是:
sudo grub-install < grub.cfg 的挂载位置 > < GRUB 本身的磁盘 MBR 名称 >
因此,在我的示例中,它假定 /dev/sda2 安装在 /media/sda2 上,并将 grub.cfg 放在 /media/sda2/boot/grub 中。
答案2
您的 CD 似乎已损坏。您可以运行启动菜单中的磁盘检查确认。