Debian GRUB2のFreeBSDの問題

Debian GRUB2のFreeBSDの問題

FreeBSDの初心者はここにあります。

私は240GB SSDにWindows 10、Debian Linux、最近FreeBSDをインストールし、ファイル保存専用の1TB HDDを使用しています。利用可能な手順に注意を払ったので、FreeBSDのインストールは非常に順調に進みましたが、GRUBを認識するのが難しいため、システムから起動できませんでした。

編集しました。/etc/grub.d/40_customGRUBを更新する前に、次のコードを追加しました。

menuentry "FreeBSD" {
    insmod ufs2
    set root=(hd0,gpt3)
    kfreebsd /boot/loader
}

一つ作るグラップアップデート、端末は私に以下を出力します。

Generating grub configuration file ...
Found background image: /usr/share/images/desktop-base/desktop-grub.png
Imagem Linux encontrada: /boot/vmlinuz-4.19.0-6-amd64
Imagem initrd encontrada: /boot/initrd.img-4.19.0-6-amd64
Imagem Linux encontrada: /boot/vmlinuz-4.19.0-5-amd64
Imagem initrd encontrada: /boot/initrd.img-4.19.0-5-amd64
Encontrado unknown Linux distribution em /dev/sda6
Encontrado Windows Boot Manager em /dev/sdb1@/efi/Microsoft/Boot/bootmgfw.efi
Adding boot menu entry for EFI firmware configuration
concluído

出力fdisk -l次のように:

Disco /dev/sda: 223,6 GiB, 240065183744 bytes, 468877312 setores
Modelo de disco: SanDisk SSD PLUS
Unidades: setor de 1 * 512 = 512 bytes
Tamanho de setor (lógico/físico): 512 bytes / 512 bytes
Tamanho E/S (mínimo/ótimo): 512 bytes / 512 bytes
Tipo de rótulo do disco: gpt
Identificador do disco: 51AF3127-339F-4F6D-A1D0-4A7E66BCEBDE

Dispositivo    Início       Fim   Setores Tamanho Tipo
/dev/sda1          34     32767     32734     16M Microsoft reservado
/dev/sda2       32768 305035263 305002496  145,4G Microsoft dados básico
/dev/sda3   305035264 305036287      1024    512K FreeBSD inicialização
/dev/sda4   367949824 368158719    208896    102M Sistema EFI
/dev/sda5   368158720 468875263 100716544     48G Linux sistema de arquivos
/dev/sda6   305036288 367949823  62913536     30G FreeBSD UFS

設定してみましたルート=(hd0,gptX)3と6に移動して「gpt」を削除し、多くのことをしましたが、何も機能しませんでした。私の出力はまだ同じです。

error: disk 'hd0,gpt3' not found.

GRUBがどのようにこれらのパーティションを認識しないのかわかりません。たぶん私が間違って設定したかもしれません。 Windows 10とDebianは問題なく正常に起動します。

ベストアンサー1

(hd0)GRUBラベルが何を指しているのか/dev/sda?存在する場合は、/boot/grub/device.map最小限sdaとそれがあるように見えるため、他のタグの順序を定義できますsdb

ちょっと待ってください...システムがデフォルトのUEFIスタイルで起動しても、BIOSスタイルのFreeBSD起動パーティションを作成したようです。これらのパーティションのブートコードは従来の16ビットコードであり、UEFIには最新の64ビットコードが必要なため、この方法は機能しない可能性があります。

従う必要があるガイドラインは、GPTパーティションがある場合でもシステムがレガシーBIOSモードで起動することを前提としています。デフォルトのUEFI Windowsブートローダ/dev/sdb1と「EFIファームウェアを設定するための起動メニュー項目の追加」は、システムが現在この方法で動作するように設定されていないことを示します。

代わりに、FreeBSD の GRUB 構成を使用して、次のことができます。

menuentry "FreeBSD" {
    insmod ufs2
    search --file --set root --no-floppy /boot/loader.efi
    chainloader /boot/loader.efi
}

Googleが検索する内容を正しく理解したら(最新のFreeBSDを使用していない)、デバイスでBSDローダーコードのUEFIバージョンを見つけて/dev/sda6そこから直接ロードする必要があります。(hdN)GRUBが割り当てられているかに関係なくです。どのラベルにsda

UEFIの「標準」方法は、/EFI/FreeBSDEFIシステムパーティションにディレクトリを作成し(明らかに/dev/sda4)FreeBSDを/boot/loader.efiここにコピーすることです。ただし、GRUBにはUFS2を直接読み取るモジュールがあるため、上記のコードも正しく機能します。

/dev/sda4Debian が通常と同じように現在インストールしている場合は、/boot/efi標準の UEFI スタイル FreeBSD ブートディレクトリを に作成する必要があります/boot/efi/EFI/FreeBSD

UEFIはすべてのブートローダをESPパーティションの通常のファイルとして簡単に処理できるため、独立したFreeBSDブートパーティションはまったく必要ありません。完全なFreeBSDブートコードをこのloader.efiファイルに含めることができます。

おすすめ記事