arch Linux 启动进入 grub 命令行

arch Linux 启动进入 grub 命令行

我正在尝试以 UEFI 模式在虚拟机上安装 Arch Linux。我已按照初学者指南安装基本系统、生成 fstab 等,我的系统现在启动到 grub 命令提示符。

我使用 GPT 分区表创建了两个分区。

/dev/sda1 - 500Mb fat32 UEFI 系统分区; /dev/sda2 - 7.5Gb ext4 安装为/; /etc/fstab 使用命令生成genfstab -U -p /mnt >> /mnt/etc/fstab 并包含:

# /dev/sda2
UUID=ce8f33a9-4bb8-42b8-b082-c2ada96cc2bb    /      ext4    rw,relatime,data-ordered    0 1
# /dev/sda1
UUID=3D70-B6C5                               /boot  vfat    rw,relatime,fmask=0022,dmask=0022,codepage=437,iocharset=iso8859-1,shortname=mixed,error=remount-ro    0 2

grub 安装命令:

\# grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=arch_grub --recheck
\# mkdir /boot/EFI/boot
\# cp /boot/EFI/arch_grub/grubx64.efi /boot/EFI/boot/bootx64.efi

(没有mkdircp它根本不会启动)

生成的 grub 配置grub-mkconfig -o /boot/grub/grub.cfg及其内容很难在此处获取和发布;如果有必要,我会尝试。

重新启动后系统启动到grub>命令提示符,但没有任何帮助。

与这个问题不同的是:UEFI 安装 (14.04) 启动至 GRUB 命令提示符,无 GUI就我而言,命令configfile (hd1,1)/boot/grub/grub.cfg除了清除屏幕之外不会执行任何操作。

我可以通过安装 CD 环境“引导”到已​​安装的系统chroot,但除此之外别无他法。

我该如何修复它?

答案1

当我尝试使用gummiboot而不是grub时,我发现了一个案例。 Gummiboot 报告错误:找不到内核映像。看起来我挂载了 /boot 并配置了 fstab我安装了基本系统pacstrap -i。因此,放置在 /boot 目录中的内核映像在挂载后会丢失,从而导致系统无法启动。我想知道他们怎么了?它们是否仍在硬盘驱动器上,但只是被安装的分区所覆盖?

无论如何,我只是仔细按照 Arch wiki 上的说明重新安装了所有内容,现在它可以工作了。

答案2

您是否导出了 esp 变量以供 grub-install 命令使用?如果没有,grub 就不知道 efi 目录位于哪里。

# export esp=/boot/efi
# grub-install --target=x86_64-efi --efi-directory=$esp .....

Archlinux 支持 EFISTUB,无需引导加载程序。看EFISTUB了解更多信息。

如果您想尝试仅 EFI 的引导加载程序,Gummiboot 是一个不错的选择。 本指南有一个不错的安装 Gummiboot 的演练。

答案3

我刚刚做了同样的事情,我将 UEFI 卷安装在旧的 Linux 映像上并初始化

umount -f -l /boot
mkdir /tmp/boot.bak
mv /boot/* /tmp/boot.bak
mount -a # assuming /etc/fstab is configured
mv /tmp/boot.bak/* /boot

相关内容