GRUB 错误 15,没有启动菜单,也没有 /boot

GRUB 错误 15,没有启动菜单,也没有 /boot

我有一个完全更新的 Arch Linux 系统,运行良好。昨晚,我尝试按照 Arch wiki 上的说明设置 autofs,但重新启动后没有启动菜单,只有 GRUB 错误消息显示“Error 15”。

(1)在Windows中使用Ext2explore,我可以看到以下分区结构: 从 Windows 分区

(2) 在 ArchLinux live CD 中使用 fdisk,我可以看到: Arch live cd 的分区

(3) 我尝试执行“fdisk /dev/sda/”,然后执行命令 x、f、w 来纠正错误,但 fdisk 说我的分区“排序已经正确”

(4) 在 GRUB shell 中使用 root 和 setup 命令也以失败告终(它告诉我找不到 GRUB 文件、/boot/grub/ 等)。具体来说,我尝试了“root(hd0,1)”,然后“setup(hd0)”,(还有hd0,0,hd0,2等),都失败了。

我的系统还有恢复的希望吗?感谢您的帮助。

PS这里是我的menu.lst,可以在Ext2explore中看到:

# Config file for GRUB - The GNU GRand Unified Bootloader
# /boot/grub/menu.lst

# DEVICE NAME CONVERSIONS 
#
#  Linux           Grub
# -------------------------
#  /dev/fd0        (fd0)
#  /dev/sda        (hd0)
#  /dev/sdb2       (hd1,1)
#  /dev/sda3       (hd0,2)
#

#  FRAMEBUFFER RESOLUTION SETTINGS
#     +-------------------------------------------------+
#          | 640x480    800x600    1024x768   1280x1024
#      ----+--------------------------------------------
#      256 | 0x301=769  0x303=771  0x305=773   0x307=775
#      32K | 0x310=784  0x313=787  0x316=790   0x319=793
#      64K | 0x311=785  0x314=788  0x317=791   0x31A=794
#      16M | 0x312=786  0x315=789  0x318=792   0x31B=795
#     +-------------------------------------------------+
#  for more details and different resolutions see
#  http://wiki.archlinux.org/index.php/GRUB#Framebuffer_Resolution 

# general configuration:
timeout   5
default   0
color green black

# boot sections follow
# each is implicitly numbered from 0 in the order of appearance below
#
# TIP: If you want a 1024x768 framebuffer, add "vga=773" to your kernel line.
#
#-*

# (0) Arch Linux
title  Arch Linux
root   (hd0,0)
kernel /vmlinuz26 root=/dev/disk/by-uuid/f4c13c68-54e4-4631-8a5a-d1649d5c3b02 ro vga=771
initrd /kernel26.img

# (1) Arch Linux
title  Arch Linux Fallback
root   (hd0,0)
kernel /vmlinuz26 root=/dev/disk/by-uuid/f4c13c68-54e4-4631-8a5a-d1649d5c3b02 ro
initrd /kernel26-fallback.img

# (2) Windows
#title Windows
#rootnoverify (hd0,0)
#makeactive
#chainloader +1

我尝试了第一个答案中提供的解决方案,但失败并显示以下输出: chroot后无法安装Grub 另请注意,menu.lst 不存在,即使它在我检查 Ext2explore 中的分区时出现。

另外,以下是 /etc/fstab 的内容: 系统表

答案1

再次从 ArchLinux live CD 启动,并在命令提示符下以 root 身份运行以下命令。

mkdir /mnt/root
mount /dev/sda3 /mnt/root
mount /dev/sda1 /mnt/root/boot
cp -a /dev/sd* /mnt/root/dev/
chroot /mnt/root
mount /proc
cat /proc/mounts > /etc/mtab
grub-install --recheck --no-floppy /dev/sda
umount /proc
exit
umount /mnt/root/boot
umount /mnt/root
reboot

根据您尝试设置 autofs 所做的操作,您可能需要 在系统中 chroot 时检查文件是否有效(在上述之后/etc/fstab)。/boot/grub/menu.lstmount /proc

还有一种(更短的)方法可以做到这一点。不确定 archlinux live cd 是否可以,但可能是。

mkdir /mnt/root
mount /dev/sda3 /mnt/root
mount /dev/sda1 /mnt/root/boot
grub-install --root-directory=/mnt/root --recheck --no-floppy /dev/sda
umount /mnt/root/boot
umount /mnt/root
reboot

相关内容