安装 Arch Linux,出现“modprobe efivars”问题

安装 Arch Linux,出现“modprobe efivars”问题

我正在尝试在新的 Vaio Pro 上安装 Linux,这本身就是一次冒险。我正在尝试使用 UEFI 安装 Arch Linux。我正在遵循本教程(尽管我使用的是较新的 2013.11 Arch Linux 安装介质)。

问题是,当我尝试运行 modprobe -r efivars 或 modprobe efivars 时,它告诉我:

严重错误:未找到模块 efivars。

我在互联网上找不到任何解决方案。当我运行 modprobe efivarfs 时没有出现错误,但当我尝试安装 Grub 时,它仍然显示:此系统不支持 EFI 变量。

答案1

在 UEFI 系统上安装 Archlinux 的教程中存在一些小问题,但您可以通过以下方式解决这个特定的挂起问题:

您可能尝试在目标系统的 chroot 内部运行该 modprobe 命令。这样做不会有任何效果;您需要在主机系统的内核中加载该功能。事实上,根据我对 2013.11 安装介质的经验,您根本不需要加载该模块;它已经加载了。问题是sysfs它使用的目录无法从 chroot 内部访问,所以这就是您需要修复的问题。

  1. 让你的终端对 chroot 保持开放,但切换到新的控制台 ( Alt+ F2)

  2. 检查/sys/firmware/efi/efivars目录是否存在。如果不存在,那么modprobe efivars,但我想你会发现它存在。

  3. 将目录绑定到您的 choot 中(如果您不使用,请进行调整/mnt

    mount --bind /sys/firmware/efi/efivars /mnt/sys/firmware/efi/efivars
    
  4. 切换回第一个终端 ( Alt+ F1) 并再次尝试下一个命令。根据您在安装过程中的位置,您的下一步操作可能如下所示:(假设您已在/boot/efichroot 中安装了 FAT32 格式的 BIOS 分区)

    grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=grub --recheck
    grub-mkconfig -o /boot/grub/grub.cfg
    

如果由于某种原因您在步骤 #3 中遇到问题(例如您要挂载到的目录不存在),则说明您没有正确遵循步骤 #1。务必使用命令arch-chroot初始化目标系统文件空间,然后才使用另一个控制台运行绑定挂载。原因是脚本arch-chroot设置了其他几个绑定挂载,包括和的绑定挂载/proc/sys这些绑定挂载必须到位,然后您才能添加 efi-vars 缺少的绑定挂载。上面的说明让您打开第二个控制台来专门执行此操作,以便在添加此绑定挂载时不会丢失其他绑定挂载。

相关内容