我最近在别人的一个旧机器上安装了 Arch,但遇到了一个问题:我正在启动到 GRUB shell,当我使用 和 手动加载内核时linux /boot/vmlinuz-linux
,initrd /boot/initramfs-linux.img
收到一条消息,内容如下:
error: no suitable video mode found
Booting in blind mode
看来内核已经加载,但用户空间却没有显示。几分钟内,我无法以任何方式使用键盘,但之后我唯一能做的就是按 Ctrl-Alt-Del 重新启动。
我不知道这是否是显卡驱动程序问题,因为我不太了解 GRUB 有哪些模式。如果需要,显卡是 ATI/AMD Radeon 6470M HD“Seymour”。这个问题从未在我运行 Arch 的任何电脑上发生过;有人知道如何解决这个问题吗?
答案1
我用我的笔记本电脑经历了这一切。
Grub 确实要求您初始化显示器,并且在支持显示器切换的内核中具有 UEFI 支持。
完成此操作后,您应该能够看到整个启动过程(在启动期间的某个时刻,显示器被初始化,您应该能够看到输出。)
我不使用 grub2 创建的混乱文件,而是自己编写的,我会与大家分享。它被设置为双启动 Linux 和 Windows,但必须针对您的安装进行修改(驱动器和分区),因此不能完全复制和粘贴。我也不想使用 initramfs,因此您必须将其添加到 Linux 条目中。
timeout=10
default=0
# Declare where the Grub modules are located
set prefix=(hd3,gpt3)/grub
# Load EFI video drivers. This device is EFI so keep the
# video mode while booting the linux kernel.
insmod efi_gop
insmod font
if loadfont ${prefix}/fonts/unicode.pf2
then
insmod gfxterm
set gfxmode=auto
set gfxpayload=keep
terminal_output gfxterm
fi
# Declare boot entries below this line
menuentry 'Linux' {
root=hd3,gpt3
linux /vmlinuz root=PARTUUID=038f0d56-22ed-e346-b243-a86b4abf8410 quiet rootfstype=ext4 net.ifnames=0 biosdevname=0
}
menuentry 'Windows 7' {
root=hd2,gpt2
chainloader (hd2,gpt2)/EFI/MICROSOFT/BOOT/bootmgfw.efi
}
您的 /boot/grub/fonts/unicode.pf2 文件确实存在,这一点很重要!您还需要告诉 grub 模块位于何处。
答案2
在我的 Manjaro 机器中,grub 在加载视频模块之前就启动了它。结果,视频模块损坏,没有显示任何输出。这个问题可能不会出现在高端 BIOS、UEFI、CSM 上。通过在videoinfo
或echo "loading grub"
中添加/boot/grub/grub.cfg
或强制 grub 花一些时间/etc/grub.d/00_header
,足以让正确的视频模块在渲染之前加载/usr/share/grub/themes/manjaro/theme.txt
答案3
只是为了向像我这样的初学者澄清 danomac 的答案(我暂时无法发表评论)。这最终对我有用,请随意纠正冗余。
从输出中获取 UUID ls
(例如ls (hd0,gpt2)
)。如果显示UUID
,则需要输入UUID
而不是PARTUUID
。在上述脚本之后,我添加了
set root=(hd0,gpt2)
linux (hd0,gpt2)/boot/vmlinuz-5.10.188-antix.1-amd64-smp root=UUID=775a8e68-.......
initrd (hd0,gpt2)/boot/initrd.img-5.10.188-antix.1-amd64-smp
boot
我没有添加initramfs
到 Linux 菜单项。我很确定vmlinuz
在最后一次成功的尝试中我没有在菜单项中添加完整路径和/或版本名称,但我无法检查它...