我错误地从文件系统中删除了 /boot 文件夹,重新启动后,我现在得到的是:
error: file '/boot/grub/i368-pc/linux.mod' not found.
grub rescue>
答案1
哎呀!
该怎么做:
启动实时发行版。这可以是您的 Ubuntu 安装光盘或其他光盘,例如诺皮克斯。
找到安装根文件系统的驱动器/分区。为此,您可以打开终端并运行
sudo parted -l
或sudo fdisk -l
。如果你看不出来,那么编辑 你的问题并添加输出。假设您在上一步中找到的根分区是
/dev/sdxy
(x
应该是另一个字母并且y
应该是数字),然后在终端中运行以下命令:mkdir mnt sudo mount /dev/sdxy mnt sudo mount --bind /dev /mnt/dev sudo mount --bind /proc /mnt/proc sudo mount --bind /sys /mnt/sys sudo chroot mnt
您现在将处于一个
chroot
环境中,这意味着在这里运行命令相当于在已安装的系统上运行它们。您要做的第一件事是将 GRUB2 重新安装到设备上,以便将正确的文件复制到该/boot
文件夹中。为此,请在根分区所在的驱动器上运行以下命令(即删除/dev/sdxy
数字 (y
)):grub-install /dev/sdx
现在,您想要找出已安装的哪些软件包在引导目录中有文件并重新安装它们。这将替换已删除的内核映像等。查找包的命令是:
dpkg -S /boot
并重新安装它们:
apt-get --reinstall install ...
其中
...
被替换为第一个命令中的包名称。不要包含逗号,只需用空格分隔包名称。此步骤可能需要访问互联网(除非包已在缓存中),因此如果出现问题,请确保已连接。
由于您将删除内核并重新安装它们,因此这应该会自动触发 GRUB2 更新。但万一他们没有,你可以运行:
update-grub
重新启动,现在应该修复了。我上次执行类似
update-grub
操作时遇到的一个问题是chroot
,由于os-prober
.如果这是一个问题,只需sudo update-grub
在修复后的系统中再次运行即可。