これについてはかなり議論があるようですが、簡単な答えが見つかりません
grub2をインストールしようとするとこんなエラーが出ます
# grub2-install /dev/sda
Installing for i386-pc platform.
grub2-install: warning: this GPT partition label contains no BIOS Boot Partition; embedding won't be possible.
grub2-install: warning: Embedding is not possible. GRUB can only be installed in this setup by using blocklists. However, blocklists are UNRELIABLE and their use is discouraged..
grub2-install: error: will not proceed with blocklists.
dev/sdaのレイアウトはこんな感じです
Disk /dev/sda: 111.8 GiB, 120034123776 bytes, 234441648 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: 7ECE06D0-9F0C-44FF-BCFB-142283172CCA
Device Start End Sectors Size Type
/dev/sda1 2048 411647 409600 200M Linux filesystem (/boot)
/dev/sda2 411648 4605951 4194304 2G Linux swap
/dev/sda3 4605952 46548991 41943040 20G Linux filesystem (/)
/dev/sda4 46548992 234441614 187892623 89.6G Linux LVM (/var)
この問題を回避する簡単な方法はありますか?BIOSブートパーティション」としてディスクの先頭に小さなパーティションを作る必要があることは理解しています。論理ボリュームとして/dev/sda4にスワップを移動して、/dev/sda2を/bootとして使うのも一つの方法だと思います
あるいは、grub-legacy に戻って心配しなくてもいいかもしれません (これだけの問題が発生するなら、grub2 にアップグレードするメリットは本当にあるのでしょうか?)
Thoughts?
48 Robert S 2015-04-18
まず、BIOS/CSM/LEGACYモードのブートか、EFI/UEFIモードのブートかを決める必要があります。前者は 1980 年代から PC が起動してきた方法ですが、これは醜くてハックしたシステムで、いつの間にかドードーの道を歩むことになるでしょう。Windows は BIOS モードでの起動を MBR パーティションテーブルに結びつけていますが、これはあなたが使っていません (使っているかもしれませんが、GPT を必要とするほどのディスクの大きさではありません)。Linux、FreeBSD、そして他のほとんどの最新OSはより柔軟で、GPTからのBIOSモード起動をサポートしています。しかし、時々ファームウェアが引き起こす複雑な問題があります
EFI/UEFI モードでの起動はハックというほどではありませんが、EFI の実装は品質に大きな差があり、ウェブ上の EFI に関する専門知識やサポートの全体的なレベルは BIOS よりも低いです。Windows は GPT の使用を EFI モードでの起動に結びつけているので、もしあなたのコンピュータに Windows をインストールすることを期待しているのであれば、間違いなく EFI が良いでしょう。古いコンピュータはBIOSのみです。EFI は 2011 年半ばに市場に出回り始めたので、コンピュータがそれより古い場合は EFI を使用できないかもしれません
BIOS モードで起動する場合、ディスク上に BIOS ブートパーティション を作成する必要があります。ディスクの先頭にはこのパーティションのための十分なスペースがありますが、このパーティションを動作させるためには、セクタアライメントの値を1に設定する必要があります (通常の2048から)。parted
でできるかどうかはわかりませんが、gdisk
でできます。(ディスクの先頭にあるスペースは、BIOSブートパーティションの推奨サイズ1MiBをわずかに下回っていることに注意してください。おそらくうまくいくでしょうが、将来的には失敗する可能性があります。)あるいは、BIOSブートパーティションのためにパーティションを1-2MiB縮小することもできます。このパーティションはディスクの最初のパーティションである必要はありません
EFI/UEFI モードで起動する場合、EFI System Partition (ESP).を作成しなければなりません。このパーティションは FAT フォーマットでなければならず、BIOS ブートパーティションよりもかなり大きくなければなりません。私は550MiBのサイズをお勧めしますが、その10分の1のサイズでもピンチの時は大丈夫です
GRUBをインストールするには、まず正しいGRUBパッケージがインストールされていることを確認する必要があります。すべてのディストリビューションでの命名はわかりませんが、UbuntuではBIOS/CSM/レガシーモードならgrub-pc
、EFI/UEFIモードならgrub-efi-amd64
になります。EFIモードでのインストールでは、GRUBをインストールするために使用しているもの(ライブCD/USB、おそらく)をEFIモードで起動する必要があります。これを行うには、お使いのコンピュータに内蔵されているブートマネージャを使用する必要があるかもしれません
29 Rod Smith 2015-04-18
旧式のBIOSブートモードでGPTパーティションを使いたい場合は、grub-install
でgrubをインストールしたいデバイスに数メガバイト(16MiBで良いし、将来の証明にもなる)のBIOSパーティションを作成する必要があります
例えば fdisk
を使用して、ディスクのどこかに “BIOS boot” タイプのパーティションを作成します。出力例
# fdisk -l /dev/sda
Disk /dev/sda: 931.5 GiB, 1000204886016 bytes, 1953525168 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: 57E16A16-36B4-4445-A216-031EF6501415
Device Start End Sectors Size Type
/dev/sda1 2048 4196351 4194304 2G Linux RAID
/dev/sda2 4196352 35653631 31457280 15G Linux RAID
/dev/sda3 35653632 37750783 2097152 1G Linux swap
/dev/sda4 37750784 37816319 65536 32M BIOS boot
/dev/sda5 37816320 1953525134 1915708815 913.5G Linux LVM
13 Flow 2017-01-22
ブートパーティションは、それが動作するためには、fat32をフォーマットしなければなりません
mkfs.vfat -F32 /dev/sdXY
あなたのためにそれを修正する必要があります
また、ブートフラグはパートでオンになっている必要があります
set 1 boot on
4 Kevin Huntly 2015-04-19