すでにEFIシステムパーティションを持つWindows 7 GPTをインストールしました。
GPT形式の別のハードドライブにLinuxをインストールしようとしています。 EFIシステムパーティションなしでgrubを起動する方法が見つからなかったため、質問は次のとおりです。
grub2はWindowsと同じEFIシステムパーティションを使用できますか? grub2にこれを使用するように指示するにはどうすればよいですか?
私の設定を明確にするには:
gpt /dev/sda:
1 EFI System partition created by windows (100MB)
2 "Microsoft reserved partition" (200MB)
3 Windows root (rest of disk)
gpt /dev/sdb:
# After answering my own question: this partition is not needed
1 boot partition containing grub, kernels etc.(32MB)
2 crypto LVM partition (rest of disk)
grub2は既存のEFIパーティションを使用したいと思います/dev/sda1
。
PS:私のマザーボードはEFIをサポートしています。
答え1
一日中調査した後、私は自分の質問に答えることができます。はい、可能です。そのパーティションを/bootとして使用し、カーネル/initramfs/etcを保存することもできます。そこに。
必要:
- Grub >= 2.00 (1.98 および 1.99 は動作しません)
CONFIG_EFI_VARS
Grubは、EFI変数(モジュールとしてコンパイルまたはモジュールとしてコンパイルefivars
)をサポートするLinuxカーネルにインストールする必要があります。- EFIブートエントリを作成するには、次のものが必要です。
efibootmgr
設定:
まず、EFIパーティションを/ bootにマウントします。
mount /dev/sdX1 /boot
マウント項目を見ると、FAT(32) パーティションであることがわかります。以下で/boot
目次を確認してくださいefi
。
grubが呼び出されたときにカーネルにコンパイルされていない場合は、次のものをロードする必要がありefibootmgr
ます。evivars
modprobe efivars
これでgrubをインストールできます。
# Replace x86_64 with i386 for 32 bit installations
grub2-install --target=x86_64-efi
Grubは通常どおりファイルをインストールします/boot/grub2
。すべてがうまくいったら、フォルダまたは/boot/efi/grub2
フォルダ名を直接指定することもできます/boot/efi/<name_of_your_distro>
。--bootloader-id=insert_name_here
Grubはefibootmgr
自動的にEFIブートメニューからその名前でブートエントリを呼び出して生成します。 (私の場合は、EFIメニューに起動可能なデバイスとして表示されることを意味し、すべてのEFIボード条件に該当するかどうかはわかりません。)
追加の設定は通常のgrub2設定と変わらず、grub2-mkconfig
EFIに適したモジュールをgrub.cfg
。
チェーンローディングウィンドウ:
Windowsでデュアルブートを要求するときにチェーンをロードするためのgrub構成が含まれています。
EFIへのWindowsインストールのチェーンのロードは、MBRディスクにWindowsをインストールするのとは若干異なります。ntfs
またはモジュールは必要ありませpart_mbr
んfat
。part_gpt
さらに、ルートを設定する必要はなく、この情報はWindowsの自己起動マネージャに保存されます。代わりにsearch
コマンドを指定してください。必須パラメータは次の式で決定できます。
grub-probe --target=hints_string /boot/efi/EFI/Microsoft/Boot/bootmgfw.efi
これにより、次のEFIパーティションの場所を指定する検索パラメータが提供されます。
--hint-bios=hd0,gpt1 --hint-efi=hd0,gpt1 --hint-baremetal=ahci0,gpt1 1ce5-7f28
chainloader
読み取るセクタの数を知らせるのではなく、EFIパーティションでWindows EFIローダへのパスを設定する必要があります。これは、すべてのWindows EFIインストールと同じです。結果項目は次のようになります。
menuentry "Microsoft Windows x86_64 UEFI-GPT" {
insmod part_gpt
insmod fat
insmod search_fs_uuid
insmod chain
search --fs-uuid --no-floppy --set=root <insert ouput from grub-probe here>
chainloader /efi/Microsoft/Boot/bootmgfw.efi
}
源泉:以下はより多くのケースを扱い、EFIから起動したい場合は読む価値があります。