我第一次安装 Arch Linux,我尝试设置我的 UEFI 启动过程,但一定在某个地方失败了,启动时我确实看到带有该Arch Linux
选项的启动菜单,但当我选择它时,我收到一条消息,/vmlinuz-linux:Not Found
即它可以'找不到要启动的内核。我已按照以下说明进行操作https://wiki.archlinux.org/index.php/Installation_guide但一定是某个地方搞砸了。
我怎样才能解决这个问题?
分区布局:
/dev/sda1 EFI System (512M)
/dev/sda2 Linux fs (244M)
/dev/sda3 Linux fs (1M)
/dev/sda4 Linux fs (465G)
/etc/fstab
:
#/dev/sda4
UUID=41d8483f-0d29-4234-bf1e-3c55346b5667 / ext4 rw,realtime,data=unordered 0 1
esp
被设置于/boot/
编辑1
哦,是的,我可以随时从我的 USB 拇指驱动器启动以进行故障排除......,
编辑2
我明白了,我的/boot/loder/entries/arch.conf
样子是:
title Arch Linux
linux /vmlinuz-linux
initrd /initramfs-linux.img
options root=PARTUUID=41d8483f-0d29-4234-bf1e-3c55346b5667 rw
/
但我的目录中根本没有文件。这可能是问题所在吗?
答案1
从可启动 USB Arch-linux 启动,挂载所有分区并chroot
进入系统。
正如所言杰森·瑞安:
您需要将 ESP 安装到
/boot
首先创建efi
文件夹:
mkdir /boot/efi
挂载esp
分区
mount /dev/sda1 /boot/efi
验证您需要添加的安装/etc/fstab
点。esp
fstab
创建一个新的子目录/boot/efi/EFI/arch/
mkdir -p /boot/efi/EFI/arch/
移动/boot/vmlinuz-linux
,initramfs-linux.img
并且initramfs-linux-fallback.img
:
cp /boot/vmlinuz-linux /boot/efi/EFI/arch/vmlinuz-linux.efi
cp /boot/initramfs-linux.img /boot/initramfs-linux-fallback.img /boot/efi/EFI/arch
运行mkinitcpio -p linux
然后更新 GRUB:
grub-mkconfig -o /boot/grub/grub.cfg
`
答案2
GAD3R 答案可能适用于 grub,但不适用于您正在使用的 systemd-boot。问题似乎很简单,您的 UUID 是 41d8...但您的选项指定了 PARTUUID,这将是一个不同的 ID。
简单的更正是在 arch.conf 中将选项更改为 root=UUID=41d... 等
该方法简单且效果良好。
文件或目录没有问题。引用的 linux 和 initrd 文件根本不应该位于您的“/”即 41d... 分区中。它们应该位于顶层的 efi 分区中,而不是位于目录中(包含您的 arch.conf 版本)。这很令人困惑,因为例如“linux”指令指示它们在“/”中找到,但这指的是efi分区的顶层,而不是os分区。将您的 efi 分区安装到操作系统中原本为空的 /boot 目录后,您应该会在 /boot 目录中看到它们(当以 41d... 分区为根时)。
或者,如果您的不同风格的 Arch 可能有不同的内核,请使用 uname -r 查找内核版本,然后如果这是 4.19.66-1-lts,则 mkdir /boot/4.19.66-1-lts 然后移动这两个文件从 /boot 到 /boot/4.19.66-1-lts ,并将您的特定 arch.conf 更改为读取例如 linux /4.19.66-1-lts/vmlinuz-linux
我已经用我的做到了这一点,但还没有到位不同的内核。