「GRUB」-BIOSシステム@ 20210221でのGRUBブート

この記事は2つの部分に分かれています。

	* BIOS + MBR + GRUB 
	* BIOS + GPT + GRUB

これらの2つのモードには違いがあり、2つの方法を以下のレイヤーごとに説明します。UEFIはGPTパーティションテーブルしか使用できないため、通常、GPTとUEFIは一緒に使用されます。GPTはUEFIの一部ですが、この記事ではGPT + BIOS方式について説明し、現在UEFI関連のコンテンツは含まれていません。

#スタートアップの原則の簡単な説明

GRUBはいくつかのミラーファイルで構成されており、その中で最も重要なものは次のとおりです。

	#boot.img、この画像はGRUBの最初の部分です。サイズ制限のため、ファイルシステムを理解しません。その唯一の機能は、ローカルディスクからcore.imgファイルをロードすることです。BIOSに読み取らせるために、このイメージはMBRまたはパーティションのブートセクターに書き込まれます。
	#core.imgには、/ boot / grubディレクトリにアクセスし、実行時にファイルシステムから他のすべてをロードするのに十分なモジュールが含まれています(メニュー処理、ターゲットオペレーティングシステムをロードする機能など)。このイメージは、MBRパーティションテーブルとGPTパーティションテーブルのどちらを使用するかに応じて、ディスクのさまざまな領域にインストールできます。

したがって、ガイダンスの観点から、これら2つのモードの主な違いは依然としてcore.imgの位置にあります。

#BIOS + MBR + GRUB

core.imgイメージをインストールする場所は2つあります。

#MBRの後の「ギャップ」内:「ギャップ」は、MBRと最初のパーティションの間の領域です。MBRは512バイトであり、最初のパーティションは通常1MiB(2048セクター)のオフセットで整列されるため、core.img用に十分なスペースが残されています。

#ファイルシステムでは、この場合、core.imgを含むブロックリストをパーティションの最初のセクターに格納できます。これらのブロックはファイルシステムによって移動される可能性があることに注意してください。したがって、ここにcore.imgイメージを配置することはお勧めしません。

#BIOS + GPT + GRUB

「BIOSブートパーティション」と呼ばれるGPTディスク上のGRUB用にパーティション全体を予約できます。次に、GRUBは、他のソフトウェアによって上書きされたり、ブロックを移動する可能性のあるファイルシステムに含まれたりすることなく、パーティションに埋め込むことができます。

BIOSブートパーティションのサイズは少なくとも31KiBである必要があります。セクターサイズが512バイトのGPTディスクでは、最初に使用できるセクターは通常34です。理由:

	LBA 0:保護MBR。
	LBA 1:GPTヘッダー。
	LBA 2-33:パーティションエントリアレイ。

また、最初のパーティションは通常、1MiB(2048セクター)のオフセットで整列されます。これにより、「BIOSブートパーティション」として使用できるMBRディスクと同様のギャップが残ります。ただし、ディスク上の別のオフセットに「BIOSブートパーティション」を作成することもできます。

「BIOSブートパーティション」もされ、正しいパーティションタイプ、持っている必要があります、に設定EF02のGDiskを、または設定bios_grubのフラグをして別れましたこれは、次のエラーの理由でもあります。

#grub-install / dev / sddi386 
-pcプラットフォーム用にインストールします。
grub-install:警告:このGPTパーティションラベルにはBIOSブートパーティションが含まれていません。埋め込みはできません。
grub-install:エラー:埋め込みはできませんが、これはRAIDおよびLVMのインストールに必要です。

core.imgイメージを保存するために特別に「BIOSブートパーティション」を作成する必要があります。

#BIOSブートパーティションを作成する

以下はpartedの操作です:

#!/ bin / sh 

#假設定我们的硬盘是/ dev / sdd 

#parted / dev / sdd 
GNU Parted 3.2 
/ dev / sddの使用GNUParted
へようこそ!コマンドのリストを表示するには、「help」と入力します。
(分割)印刷
モデル:Samsung SSD 860 QVO 2TB(scsi)
ディスク/ dev / sdd:2000GB
セクターサイズ(論理/物理):512B / 512B
パーティションテーブル:gpt
ディスクフラグ:

番号開始終了サイズファイルシステム名フラグ
 1 1049kB 1075MB 1074MB ext4Linuxファイルシステムbios_grub2 
 1075MB 538GB 537GB Linux LVM lvm 

(parted)set 1 bios_grub on 
(parted)q
情報:/ etc / fstabを更新する必要がある場合があります。

#キーコマンドは「set1 bios_grub on」です。ここで、パラメータ「1」はパーティション番号です。
#さらに、「BISOブートパーティション」はそれほど大きくする必要はありません。最初はわからなかったので、こんなにたくさん割り当てました。また、1MiBで十分です。

「BIOSブートパーティション」は、core.imgイメージを格納するために使用される別個のパーティションです。フォーマットしたり、他の目的に使用したりすることはできません。

#GRUBブートをインストールします

次のタスクは、GRUBブートをインストールすることです。

#!/ bin / sh 

grub install / dev / sda 

update-grub

#検証

システムのブート情報を表示するために使用されるシェルスクリプト「ブート情報スクリプト」があります。このコマンドを実行した後、彼が出力の場所boot.imgのcore.imgミラー。

関連記事

「GRUB」-
「Grub」のインストール-手動ブート

参照

GrubがGPTパーティションを使用してDebian / Ubuntuにインストールできない
BIOSシステムの
GRUBgpt / bios grub2の起動の問題、診断、およびツール
GPTからの起動GPTの
レガシーBIOSの問題

おすすめ

転載: blog.csdn.net/u013670453/article/details/113923695