
初めてArch Linuxをインストールしました。UEFIブートプロセスをセットアップしようとしましたが、どこかで失敗したようです。起動時にオプションのあるブートメニューが表示されますが、それを選択すると、ブートするカーネルが見つからないというArch Linux
メッセージが表示されます。/vmlinuz-linux:Not Found
https://wiki.archlinux.org/index.php/インストールガイドしかし、どこかで失敗したに違いありません。
これをどうすれば修正できますか?
パーティションレイアウト:
/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... パーティション) にはまったく存在してはなりません。これらは、ディレクトリ (arch.conf のバージョン) ではなく、最上位の efi パーティションに存在する必要があります。これは混乱を招きます。なぜなら、たとえば "linux" 命令は、これらを "/" で見つけるように指示しますが、これは efi パーティションの最上位レベルを参照しており、os パーティションを参照しているわけではないからです。efi パーティションを、os 内の空の /boot ディレクトリにマウントすると、(41d... パーティションをルートとしている場合) /boot ディレクトリにあるように表示されます。
あるいは、Arch の異なるフレーバーごとに異なるカーネルがある場合は、uname -r でカーネル バージョンを検索し、これが 4.19.66-1-lts だった場合は mkdir /boot/4.19.66-1-lts を実行し、その 2 つのファイルを /boot から /boot/4.19.66-1-lts に移動し、arch.conf を次のように変更します。たとえば、linux /4.19.66-1-lts/vmlinuz-linux
私もこれを実行しましたが、まだ別のカーネルを導入していません。