我有一个完全更新的 Arch Linux 系统,运行良好。昨晚,我尝试按照 Arch wiki 上的说明设置 autofs,但重新启动后没有启动菜单,只有 GRUB 错误消息显示“Error 15”。
(1)在Windows中使用Ext2explore,我可以看到以下分区结构:
(2) 在 ArchLinux live CD 中使用 fdisk,我可以看到:
(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
我尝试了第一个答案中提供的解决方案,但失败并显示以下输出: 另请注意,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.lst
mount /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