私は現在Archを使用しており、Gentooは別のパーティションにあります。grub-mkconfig -o /boot/grub/grub.cfg
(Arch から) は次を返します。
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-linux-zen
Found initrd image: /boot/intel-ucode.img /boot/initramfs-linux-zen.img
Found fallback initrd image(s) in /boot: initramfs-linux-zen-fallback.img
Found Windows Boot Manager on /dev/nvme0n1p1@/efi/Microsoft/Boot/bootmgfw.efi
Found Gentoo/Linux on /dev/nvme0n1p9
done
ただし、起動メニューにはGentooのエントリはありませんが、Windowsにはエントリがあります。 Gentooエントリもありません/boot/grub/grub.cfg
。ここで何か抜けましたか?
ありがとうございます! !
答え1
を実行するときは、Gentooパーティションが実際にマウントされていることを確認する必要がありますgrub-mkconfig
。次のツールの結果はこれを決定するのに役立ちます。
lsblk
mount
df
詳しく調べる必要がある場合は、別のターミナルウィンドウでrootとしてos-proberを実行している間に、1つのターミナルウィンドウでログを追跡してください。
ウィンドウ1:sudo journalctl -fn0
ウィンドウ2:sudo os-prober
このgrub-mkconfig
コマンドは、os-proberユーティリティを使用して別のオペレーティングシステムを見つけて、os-proberをArchのログに記録し、パーティションが実際にマウントされているためにgentooが見つからない理由を正確に特定するために必要なすべての情報を提供します。
答え2
Gentooパーティションがインストールされているドライブ以外のドライブにアーチをインストールすると、grub-install /dev/sdX(Xはドライブ文字)だけがGentooを見つけることができません。
読むこれ;デフォルトでは、複数のドライブをグラブマウントする必要があります。
答え3
に基づいてhttp://codepad.org/zFCNfwoKコメントに記載されている結果は...
os-prober
Gentooは開いていることが確認されましたが、/dev/nvme0n1p9
次のステップはですlinux-boot-prober
。にあるテストスクリプトを実行します/usr/lib/linux-boot-probes
。
ファイルシステムの種類がGRUBで読み取れると仮定すると、Gentooカーネルとinitramfsがファイルシステムのルートまたはサブディレクトリに/usr/lib/linux-boot-probes/mounted/90fallback
ある場合はそれを検出できるはずです。ただし、Gentooはいくつかの可能な方法でUEFIにインストールすることができ、その一部はカーネル+ initramfsをEFIシステムパーティションに配置します。boot
/dev/nvme0n1p9
/dev/nvme0n1p1
少なくとも私のDebian 10では、os-prober
より多くのUEFIインストールケースに対処するためにアップデートが必要になると思います。
実行してくださいefibootmgr -v
。 Gentooは独自にNVRAMブートエントリを作成しますか? Gentooカーネル(またはカーネルのEFIスタブに依存せずにカーネルを使用している場合はブートローダ)の場所を見つけるために使用できます。
os-prober
(1つのアイデア:誰かが登録されているすべてのNVRAMブートローダを段階的に実行し、それを使用して指すブートファイルがLinuxカーネルに似ていることを確認するUEFIシステムで実行されるスクリプトを書くことができますfile
。別のブートローダの代わりにカーネルのEFIスタブを使用する必要があります。