これについてはかなりの議論があるようですが、私は簡単な答えを見つけることができません。
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ブートパーティション」として小さなパーティションを作成する必要があることを理解しています。 1つの選択肢は、スワップを論理ボリュームとして/ dev/sda4に移動し、/ dev/sda2を/ bootとして使用することです。
別の方法として、grub-legacyに戻ってそれについて心配することはできません(本当にgrub2にアップグレードすることにこれほどの問題がある場合の利点はありますか?)。 ).
考えですか?
まずBIOS/CSM /レガシーモードのブートを使用するのか、EFI/UEFIモードのブートを使用するのかを決定する必要があります。前者は1980年代からPCが起動してきた方法ですが、やがてドードーの道を行くのは醜くハッキングなシステムです。 Windowsは、BIOSモードの起動を、使用していないMBRパーティションテーブルに結び付けます(ただし、可能です。ディスクは、GPTを必要とするほど十分に大きいとは限りません)。 Linux、FreeBSD、および他のほとんどの最近のOSはより柔軟で、GPTからのBIOSモード起動をサポートします。しかし、ファームウェアが原因で複雑になることもあります。もちろん、後でデュアルブート設定でWindowsをインストールする場合は、変更を加える必要があります。
EFI/UEFIモードの起動はあまり手間がかかりません。しかしEFIの実装は品質が大きく異なり、Web上での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システムパーティション(ESP)を作成する必要があります。 このパーティションはFATフォーマットでなければなりません。 BIOSブートパーティションよりかなり大きいので、それを作成するために何かのサイズを変更する必要があります。私は550MiBのサイズをお勧めしますが、その10分の1はピンチでうまくいくかもしれませんが。
GRUBをインストールするには、最初に正しいGRUBパッケージをインストールしたことを確認する必要があります。私はすべてのディストリビューションで命名するのはよくわかりませんが、Ubuntuでは、BIOS/CSM /レガシーモードの場合はgrub-pc
、EFI/UEFIモードの場合はgrub-efi-AMD64
になります。 EFIモードのインストールでは、GRUB(おそらくライブCD/USB)をEFIモードでインストールするために使用しているものは何でも起動する必要があります。これを行うには、通常はファンクションキーを介してアクセスする、コンピュータの内蔵ブートマネージャを使用する必要がありますが、詳細はコンピュータによって異なります。
古いスタイルのBIOS起動モードでGPTパーティションを使用したい場合は、grub-install
を付けてgrubをインストールしたいデバイス上に数メガバイト(16MiBでも大丈夫で将来的には有効)のBIOSパーティションを作成する必要があります。
使用、例えばディスクのどこかに "BIOSブート"タイプのパーティションを作成するためのfdisk
。出力例
# 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
ブートパーティションは、動作させるためにfat32でフォーマットする必要があります。
mkfs.vfat -F32 /dev/sdXY
あなたのためにそれを修正する必要があります
また、起動フラグをオンにする必要があります。
set 1 boot on