特定のシステムにブートパーティションが必要かどうかはどうすればわかりますか?

特定のシステムにブートパーティションが必要かどうかはどうすればわかりますか?

私は歴史的になぜ別のブートパーティションがあったのかについての一般的な話を知っています。

/bootパーティションの実際の目的は何ですか?

新しいコンピュータでは 誰もいじめないでください。しかし、UEFIではなくBIOS(USBでも起動できません)を使用して20年前のシステムにLinuxをインストールしています。これはマルチブートマシンではなく、LVM、ディスク暗号化、RAIDのない複雑なシステムではありません。

私のことをどうやって知ることができますか?特定コンピュータです。特定ハードディスク、ブートパーティションが必要ですか?

メモ:

  • 重要な場合 - インストールするディストリビューションはアンチX Linux19.3 i386。パーティションを編集できるようにgpartedを呼び出します。
  • ブートローダは、当然、AFAICTがgrub2のマイディストリビューションからインストールされています。

答え1

システムが1994年以前のバージョンの場合、BIOSは504MiB(528.4MB)に制限されている1024/16/63より大きいクラスタ/ヘッド/セクタ構造のディスクを処理できない可能性があります。その理由は、2つの制限のセットの不快な相互作用によるものです。

  • 従来の拡張されていないBIOS INT 13h機能で許容される最大ディスク構造は1024/255/63です。
  • IDE(PATA)ハードウェアで許容される最大幾何学サイズは65536/16/63です。
  • これまでの単純な実装では、各値から最小の制限を選択して1024/16/63の制限が発生しました。

1994年7月、これらの制限を解決するために、新しいBIOS機能である「拡張ディスクドライブサービス」(EDD)が開発されました。 BIOS表現とIDEハードウェアインタフェース間のヘッダセクションとジオメトリクラスタの間でビット(「ジオメトリ変換」と呼ばれる)を移動して、これらの制限を解決します。

一部のBIOSバージョンでは、ディスク構造4096/16/16または「翻訳済み」フォーマット1024/64/63にエラーがあります。

クラシックC / H / Sディスクアドレッシングの最大制限は、16383/16/63(または翻訳時に1024/255/63)のディスク構造に達します。これらのディスクアドレッシングを処理するBIOS機能のデータ入力形式はありません。これより大きいディスクを処理するのに十分なビットがありません。この制限は、ディスクサイズが7.87GiB(8.45GB)または正確に16,450,560個のディスクブロックの場合に達します。

IDE(PATA)仕様にはこの問題を解決する機能が含まれていますが、元々はオプション機能として指定されており、すべてのBIOSでそれを実装するわけではありません。これを論理ブロックアドレッシング、減らしてLBAと呼びます。ディスクサイズが大きくなり、1996年頃にリリースされたほとんどのディスクはLBAをサポートしました。

しかし、別のBIOSのバグが見つかりました。一部のBIOSには、ディスクブロック番号を表示するために26ビット以上が必要な場合、LBAの実装に失敗するバグがありました。これは1999年8月以前にリリースされた特定のBIOSバージョンに影響し、ディスクサイズの制限は32GiB(33.8GB)です。

1994年に発表されたLBA仕様は、ディスクブロック番号に28ビットしか割り当てられていないため、ディスクサイズ制限が128GiBディスクサイズとして追加されました。 2003年に発表されたATA-6仕様は、現在最新のSATAディスクに使用されているLBAディスクアクセス機能の48ビットバージョンを指定しました。ディスクサイズが128PiBに大きくなるまで機能します。


これらの制限は通常、BIOSで意図的に誤ったディスク構造を指定し、ディスクが問題のある制限より小さいことを知らせ、偽の構造/bootに正確に収まるパーティションを作成することによって解決できます。

場合によっては(LBAサポートの導入後)、/bootパーティションが適切なサイズ制限内であれば十分です。

ブートローダはBIOSルーチンを使用してこのパーティションからLinuxカーネル(およびオプションのinitrdファイル)をロードし、カーネルが起動するとドライバがディスクアクセスに代わってBIOSを完全にバイパスし、オペレーティングシステムが動作している間に制限を変更します。できます。走ることは問題ではありません。ランニング。この時点で、カーネルは通常、実際のディスク構造を自動的に検出します。

では、これはどういう意味ですか?

  • システムのBIOSが2004年以前にリリースされた場合は、/bootディスクの最初の128GiBに完全に収まるパーティションを作成する必要があります。そうしないと、BIOSがオペレーティングシステムを起動できない可能性があります。 (これは通常、デュアルブートやその他のマルチOS設定の問題です。)
  • システムのBIOSが2000年以前にリリースされた場合は、/bootLBA実装エラーを防ぐためにディスクの最初の32GiB内に別々のパーティションを作成できます。
  • システムが1996年以前のバージョンで、BIOS設定のどこにも「LBA」が記載されていない場合は、偽のディスク構造を指定し、パーティションがすべて偽構造内にあることを確認する必要があります。/bootもう一度7.87GiB以内に配置する必要があります。ディスク。
  • これより古いもの:「博物館に属しています」 :-) しかし、必ずしなければならない場合は、上記の制限事項をご覧ください。

システムのBIOSリリース日が特定の仕様の更新日の直後に該当する場合、更新された仕様がある場合とない場合があります。各仕様の更新がリリースされた後、新しい実装が普及するのに時間がかかります。

答え2

要約:ブートパーティションは必要ありません。

1990年代の古いコンピュータでも起動パーティションは必要ありません。

...「しかし、BIOSの制限のためにこれが必要だと何年も入ってきましたが、どうすればこれが可能ですか?」と尋ねることもできます。

その理由は、最新のLinuxディストリビューション(antiX 19.3など)がgrub2ブートローダをインストールするためです。 grub2インストールには、ブートローダが制限なくパーティションにアクセスするために使用できるドライバを含めることができ、HDDにアクセスするためのBIOS機能は必要ありません。

しかし注意すべき点があります。これらのドライバは実際のインストールが必要であり、必ずしも自動的にインストールされるわけではありません。

...しかし、grub2ドライバのためのスペースを残す必要があります

まず、grub2にはこれらのドライバを保存するためのスペースが必要です。幸いなことに、最初のパーティションがMBRのすぐ後ろにない場合、ディスクの先頭にあるgrub2インストールは、パーティション化されていないこのスペースにドライバを保存します(少量のスペースのみが必要で、おそらく20KiBのみが必要です)。大丈夫、行ってもいい。

したがって、作成した最初のパーティションが1MiBにソートされていることを確認する必要があります(すべてのパーティションにこのソートがある可能性があります)。

antiXインストーラの特定の場合gpartedユーティリティはパーティションを定義/作成するために使用されます。 gpartedのデフォルト値は1MiBソートで、パーティションを作成するときに次の選択肢を提供します。

ここに画像の説明を入力してください。

したがって、この設定を変更しないでください。

...適切なドライバがインストールされていることを確認してください。

Linuxディストリビューションインストーラ、特にantiXインストーラは、デフォルトで独自のドライバではなくBIOS / UEFI機能を使用するgrub2に設定されています。 grub2が出荷されたことを確認する必要がありますgrub-install --disk-module=native。このタスクに関する別の質問があります。

Linuxのインストール中にgrub2に必要なドライバがあるかどうかを確認するには?


洞察力のある回答を提供し、この回答をまとめるのに役立つ@cas、@isaac、および@telcoMに感謝します。

答え3

システムに必要かどうか/boot 目次インストールすることを選択したディストリビューションによって完全に定義されます。

ディレクトリ(/boot)が別々のパーティションにあるかどうかはオプション(必須ではありません)ですが、状況によっては役に立ちます。

選択したディストリビューション()はAntiXDebian派生ディストリビューションです。 Debian は/bootパーティショニングを使用できますが、いいえ必要です。 Debianには、さまざまなブートローダ(lilo、grubなど)を使用できる機能もあります。

ブートローダは、起動時にセクタをロードするBIOS機能の影響を受ける部分です。ただし、GRUB2は、MBR以降約80個のセクタ(〜20k)を使用できる限り、これらの制限を完全にバイパスできます。一般的にそうです。特に1Mソートパーティションの場合はそうです。

つまり、/boot約200 MB(十分なスペース)の最初のパーティションでパーティションを作成し、起動可能にして(DOS要件)、MBRにgrubをインストールします。このパーティションにgrubをインストールすることもできますが、それほど複雑ではありません。

あなたはする必要がありますいいえ複数のDOSディスクの制限について、Grub2はすべての設定を完全に解決できます(MBRとサブセクタにアクセスできます)。

読んでください詳細は grub ドキュメントにあります。

GRUBをインストールする方法は2つあります。 MBRと最初のパーティションの間の領域に埋め込むことができます(「ブートトラック」、「MBR間隔」、または「組み込み領域」などのさまざまな名前があり、通常は少なくとも31KiBです)。 )

しかもcore.imggrub ドキュメントの説明

GRUBのコアイメージです。

grub-mkimageプログラムは、カーネルイメージと任意のモジュールのリストから動的に構築されます。

たとえば、ファイルシステムに応じて、ext4、zfsなどを読み取るモジュールが使用されます。他の条件では、より多くのモジュールがロードされます。

通常、これには/boot/grubにアクセスし、実行時にファイルシステムの他のすべての項目(メニュー処理、ターゲットオペレーティングシステムのロード機能など)をロードするのに十分なモジュールが含まれています。

簡単に言えば、GRUBの内部の仕組みです。

モジュラー設計では、コアイメージをインストールする必要があるディスク領域が通常32KBほど小さいため、コアイメージを小さく保つことができます。

GRUB 実行に必要な条件の 1 つです。


試してみる意思がある場合:

  1. ディスクの最初のパーティション(または空き容量)として、DOS制限よりも大きいスペースを残してください。書式は必要なく、このテストでは使用されません。
  2. /テストオペレーティングシステムをインストールするために、50GBディスクの前面にパーティション(用)を作成します。 GRUBをより難しくするには/boot
  3. Grubが理解できるファイルシステムでこのパーティションをフォーマットしてくださいext4
  4. 必要に応じて追加のパーティションを作成します(空き領域の後)。
  5. プライマリディスク(sda1またはsdaXではなくsda)にGRUBをインストールする必要があります。
  6. インストールを終了して再起動してください。効果的ですか?

機能している場合、GRUBは既存のBIOSを管理できることを示しています。

関連情報