パーティショニング – grub2-install.”この GPT パーティションラベルには BIOS ブートパーティションが含まれていません”

boot grub lvm2 partitioning

これについてはかなり議論があるようですが、簡単な答えが見つかりません

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


タイトルとURLをコピーしました