错误:在 ubuntu 13.10 中找不到文件“/grub/i386-pc/normal.mod”

paw*_*wan 6 grubrescue system-installation

我已经安装了 ubuntu 13.10,但重新启动后我收到消息:

GRUB loading:
Welcome to GRUB!

error: file '/grub/i386-pc/normal.mod' not found
Entering rescue mode...
grub rescue>
Run Code Online (Sandbox Code Playgroud)

我有以下分区设置:

/dev/sdb5:  /boot  ext4   500MB
/dev/sdb6:  swap            4GB
/dev/sdb7:  /      ext4    60GB
/dev/sdb1:         ntfs   900GB
Run Code Online (Sandbox Code Playgroud)

我已经尝试过“错误:文件 '/grub/i386-pc/normal.mod' 未找到”和“安装 ubuntu 12.04 后修复 grub2 ”的解决方案,但没有成功。

我为此使用了 1TB 外置硬盘,不想弄乱 /dev/sdaXY 上的窗口。我有配备 Intel i5 处理器、4 GB RAM 的 acer travel mate。我正在使用名为“ubuntu-13.10-desktop-amd64.iso”的 64 位 ubuntu 的 iso 映像.. 请帮助我,我尝试了各种解决方案,但在过去 3 天内没有修复它。

小智 6

我刚刚在我的系统上尝试安装 Mint 16 和 Ubuntu 13.10 时遇到了类似的问题(Windows 7 双启动,替换现有的 Mint 15 安装)。两次安装都导致此消息,重新安装/重新配置 Grub 并没有修复它。

它接缝 - 至少在我的情况下 - 安装程序认为我想使用 EFI(安全启动),但事实并非如此。我在 UEFI BIOS 中明确禁用了它,但是当我检查 /boot/grub 时,它只包含一个“x86_64-efi”文件夹,缺少所需的“i386-pc”文件夹(BIOS/非 EFI 设置需要)。

以下解决方案对我有用(使用 Ubuntu 13.10):

启动 Live DVD/USB,打开 shell 并执行:

sudo -s
#where sda1 is my root partition
mount /dev/sda1 /mnt
mount -t proc none /mnt/proc
mount -t sysfs none /mnt/sys
mount -o bind /dev /mnt/dev 
mount -o bind /tmp/ /mnt/tmp
# chroot into your ubuntu installation
chroot /mnt
# remove all those grub efi packages
apt-get remove --purge grub-efi-amd64 grub-efi-amd64-bin
# and re-install grub with the bios (non-efi) packages only
apt-get --reinstall install grub-common grub-pc os-prober
# if there is an error repeat the setup via:
grub-install --recheck /dev/sda
Run Code Online (Sandbox Code Playgroud)

补充说明:

  • 如果你有一个单独的引导分区,你也需要在重新配置 grub 之前挂载它。
  • 可能需要在引导加载程序的第一个分区之前留出一些空闲(未分区)空间(可以在 Live 系统中使用 GParted 完成)。
  • 如果 apt-get 无法访问(找到)远程存档主机,请尝试手动设置 DNS 服务器(在家中通常是路由器的)IP,例如:“echo nameserver 192.168.0.1 >> /etc/resolv.conf”
  • 请注意,GPT(非 MBR 分区表)的设置可能会有所不同+当使用需要 EFI 的系统进行双引导时,这肯定不起作用。


小智 2

此链接中的解决方案适用于 Ubuntu 13.10,请再试一次,但在您的情况下,命令应如下所示。

sudo mount /dev/sdb5 /mnt
sudo grub-install /dev/sdb --root-directory=/mnt
Run Code Online (Sandbox Code Playgroud)