我在2012年中期的macbook air模型上使用gummiboot。只有Linux上的Linux。似乎无法使用uuid和绝对设备名称启动到我的拱门。总是落入rootfs提示符。
切换到refind也无济于事。 我在哪里可以开始寻找有关它是否识别硬盘的更多信息?
答案 0 :(得分:2)
以下是对情况的完整解释:
我有一个Macbook Air 11“2012年中期只有 Arch Linux。我不想要OSX。我不想安装任何其他发行版(Fedora等)。
我有一个带有GNOME的Arch Bang安装程序。我的linux将使用Gummiboot加载。我做了一个pacman -Syu
,并带来了3.13.7-1的arch内核。我重新启动以获得“等待10秒的根设备...”消息,这将导致rootfs提示。看看this article on arch forums我知道gummiboot和最新的3.13.7内核之间存在一些问题,建议切换到refind bootloader。
我做了,但我仍然落到rootfs提示符。 然后我决定完全绕过bootloaders并使用efibootmgr直接告诉uefi固件"hey look this is my linux installation, load it"。所以bootloader不再是一个嫌疑人。
现在,我最初是通过live cd这样chrooting:
(来自live cd终端)......
mount /dev/sda2 /mnt
mount /dev/sda1 /mnt/boot/efi
mount -o bind /proc /mnt/proc
mount -o bind /sys /mnt/sys
mount -o bind /dev /mnt/dev
mount -o bind /dev/pts /dev/pts
modprobe efivarfs
chroot /mnt
(然后从chroot里面)......
pacman -Syy linux
mkinitcpio -p linux
exit
(在live cd终端内)......
umount /mnt/sys/firmware/efi/efivars /mnt/sys /mnt/dev /mnt/dev/pts /mnt/proc /mnt/boot/efi /mnt
但是仍然我收到了rootfs提示符。 Solution was to chroot like this:
mount /dev/sda3 /mnt
chroot /mnt /bin/bash
mount -t proc proc /proc
mount -t sysfs sys /sys
mount -t devtmpfs udev /dev
mkinitcpio -p linux
exit
umount /mnt/proc /mnt/dev /mnt/sys /mnt
reboot
我不确定与此相比有什么不同,但确实有效。我希望我没有重新安装我的操作系统。我应该坚持我的信念,你可以比重新安装更频繁地进行救援。
答案 1 :(得分:1)
当grub-mkconfig检测到错误的硬盘驱动器时,会发生这种情况,因此它会向内核传递错误的参数。
要修复它,请使用mount /dev/sdaX /newroot
从救援shell安装根分区,将X替换为安装时根文件系统的分区号,然后按Ctrl-D。这应该启动启动顺序。
然后,您可以手动编辑/boot/grub/grub.cfg
并找到显示linux (hd0,gptX)/boot/vmlinuz-linux root=/dev/sdaX
的行,并替换root = ???使用正确的根设备(最有可能是/ dev / sda2给出Macbook和GPT信息)。