安装了 Arch Linux 但无法启动

std*_*err 6 boot arch-linux uefi systemd-boot

我第一次安装了 Arch Linux,我试图设置我的 UEFI 启动过程,但一定是在某个地方失败了,在启动时我确实看到了带有该Arch Linux选项的启动菜单,但是当我选择它时,我收到一条消息,/vmlinuz-linux:Not Found即它可以' t 找到要引导的内核。我已按照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)
Run Code Online (Sandbox Code Playgroud)

/etc/fstab

#/dev/sda4  
UUID=41d8483f-0d29-4234-bf1e-3c55346b5667  /  ext4    rw,realtime,data=unordered 0 1
Run Code Online (Sandbox Code Playgroud)

esp 被设置在 /boot/

编辑 1
哦,是的,我可以随时从我的 USB 拇指驱动器启动以进行故障排除...,

edit2
我明白了,我的/boot/loder/entries/arch.conf样子:

title          Arch Linux
linux          /vmlinuz-linux
initrd         /initramfs-linux.img
options        root=PARTUUID=41d8483f-0d29-4234-bf1e-3c55346b5667 rw
Run Code Online (Sandbox Code Playgroud)

但是我/的目录中根本没有文件。这可能是问题吗?

GAD*_*D3R 6

从可启动的 USB Arch-linux 启动,挂载所有分区并chroot进入系统。

正如 jasonwryan所说

您需要将 ESP 安装到 /boot

首先创建efi文件夹:

mkdir /boot/efi
Run Code Online (Sandbox Code Playgroud)

挂载esp分区

mount /dev/sda1 /boot/efi
Run Code Online (Sandbox Code Playgroud)

验证您的/etc/fstabesp需要将挂载点添加到fstab.

创建一个新的子目录 /boot/efi/EFI/arch/

mkdir -p /boot/efi/EFI/arch/
Run Code Online (Sandbox Code Playgroud)

移动/boot/vmlinuz-linuxinitramfs-linux.imginitramfs-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
Run Code Online (Sandbox Code Playgroud)

运行mkinitcpio -p linux然后更新 GRUB:

grub-mkconfig -o /boot/grub/grub.cfg
Run Code Online (Sandbox Code Playgroud)

`