
アクセスできるペンドライブまたはディスクがあります。
/dev/sda
パーティションの位置は次のとおりです。
/dev/sda1
/dev/sda2
/dev/sda...
ディスク自体と各パーティションについて知りたいです。
- クラシックブート可能(BIOSブートモード/pre-UEFI)(MBRを使用しているようです)
- UEFIブートは可能ですか?(当時はMBRを使用していないと思います)
- 上記の該当事項はありません
- 上記の両方
fdiskがあることがわかっていますが、GPTをサポートしていないため、GPTディスクと一緒に使用することはできません。そして parted は「ブート」フラグだけを表示するだけで、BIOS ブート可能か UEFI ブート可能かはわかりません。
すべての最新のBIOSは起動可能なデバイスを一覧表示し、UEFIであるかどうかも表示できるため、これはそれほど難しくないことがわかります。
答え1
最初の512バイトブロック(ブロック#0)の最後の2バイトが0x55と0xaaの場合、ディスクは起動可能なBIOSスタイルです。これが真であれば、BIOSファームウェアはブロックに有効なマスターブートレコード(MBR)が含まれていると見なし、それを実行しようとします。最初の446バイト程度には、16ビット8086互換モードのx86プロセッサの実行コードを含める必要があります。
# dd if=/dev/sda bs=512 count=1 2>/dev/null | od -t x1z -A x | tail -2
0001f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 55 aa >..............U.<
000200
それ以上はMBRコードの機能によって異なります。ほとんどの標準のMicrosoft MBRはアクティブとしてマークされているデフォルトのパーティションを見つけ、そのパーティションの最初のブロックをロードして実行します。ただし、GRUBなどの他のブートローダはパーティションフラグを完全に無視し、必要に応じてまったく異なる操作を実行できます。
UEFIファームウェアで認識されるファイルシステムが含まれている場合、リムーバブルメディアは起動可能なUEFIスタイルです(仕様はもともとFAT32の特定のバージョンを指定していましたが、FAT12とFAT16を含むように拡張されました。さらに、ファームウェアの実装も自由に追加できます)。他のファイルシステムタイプがサポートされています)、ファイルシステムにEFI
名前付きディレクトリ(大文字と小文字を区別しない)があり、そのディレクトリに名前付きサブディレクトリがあり、boot
そのサブディレクトリにシステム固有の名前がアーキテクチャであるブートローダファイル(*.efi
)があります。つまり、Windowsスタイルの絶対パスでわかるように、特定のファイルシステムのルートから始まります。
\EFI\boot\bootx64.efi
64ビットx86システムの場合\EFI\boot\bootia32.efi
32ビットx86システム(一部のミニノートパソコンと古いx86 Mac)で動作します。\EFI\boot\bootia64.efi
Intel Itaniumシステム(主にWindows、HP-UX、またはOpenVMSの一部のバージョンを実行しているサーバー)の場合\EFI\boot\bootarm.efi
UEFIファームウェアを含む32ビットARMプロセッサ用\EFI\boot\bootaa64.efi
UEFIファームウェアを含む64ビットARMプロセッサ用\EFI\boot\bootriscvNN.efi
UEFI ファームウェアを含む 32 ビット、64 ビット、128 ビットの RISC-V プロセッサで使用可能 (NN
それぞれ 32、64、または 128 の場合があります)- ...新しいプロセッサアーキテクチャにUEFIファームウェアを実装すると、このリストが拡張される可能性があります。
C12A7328-F81F-11D2-BA4B-00A0C93EC93B
ディスクにGPTパーティションテーブルがある場合、UEFIブートローダを含むパーティションには、それを識別するパーティションタイプGUIDが必要です。EFIシステムパーティション、縮小ESPです。 UEFIファームウェアを持つすべてのシステムはGPTパーティションをサポートする必要があります。
ディスクにMBRパーティションテーブルがある場合、UEFIブートローダを含むパーティションの0xef
MBRパーティションタイプコードは...ですが、これは厳しい要件ではありません。
インストールされているオペレーティングシステムのブートローダパス名は、他のUEFIファームウェア設定を保存するために使用されるのと同じ不揮発性メモリに保存されるため、リムーバブルディスクには別のパスに追加のUEFIブートローダを含めることができます。これは、ESPパーティションのディレクトリのベンダー固有のサブディレクトリに配置する必要があります\EFI
。efibootmgr -v
UEFIブートローダのパス名と関連ブート設定を表示するには、Linuxでrootとして使用します。
非リムーバブルディスクは、上記のリムーバブルメディアに指定された固定パスの1つにUEFIブートローダファイルを含めることもできます。これを呼び出します。代替ブートローダパス不揮発性メモリ設定は、失われた場合に使用できます。 Windowsはデフォルトでこのようなコピーを保存しますbootmgfw.efi
。 Linuxディストリビューションのインストーラは通常、特に要求しない限りこれを行いません。
ESPは通常(常にそうではない)/boot/efi/
Linuxにインストールされているため、RHELのSecure Boot shimブートローダはで見つけることができ、/boot/efi/EFI/redhat/shimx64.efi
実際のGRUBはで見つけることができます/boot/efi/EFI/redhat/grubx64.efi
。 1つ目efi
はマウントポイントディレクトリの名前、2つ目はEFI
UEFI仕様に必要なサブディレクトリの名前です。
GPT仕様によると、GPTパーティションテーブルはディスクブロック#1から始まり、ブロック#0は予約されています。保護MBR:パーティションタイプがに設定されているディスク全体(または約2TiBの絶対最大MBRサイズのうち小さい方)を占めるパーティションを説明するパーティションエントリが1つだけ必要な仮想MBRパーティションテーブル0xee
。
これはGPTをサポートしていないシステムに、「はい、このディスクはフォーマットされ、パーティション化されて使用されています。いいえ。あなたが知っているパーティションタイプではありません」と伝えます。しないでください。ユーザーにワンクリックで簡単に書式設定する方法を提供します。 」
もちろん、これによりディスクの構築が可能になります。ハイブリッド GPT/MBR パーティション:GPTをサポートしていないシステムの場合は有効なMBR(ブートコードを含めることができます)を提供し、GPTをサポートするシステムの場合は有効なGPTパーティションテーブルを提供します。ここでESPパーティションには、さまざまなシステムアーキテクチャ用のUEFIブートローダが含まれています。
答え2
~から始動修理、走った情報スクリプトの起動自動回復は行われません。、ドライブ(および他のドライブ)の起動構造に関する情報を取得する必要があります。
ブート構造がUbuntuのブート構造と大きく異なると、ブート情報スクリプトが失敗する可能性があります。次に、FATファイルシステムにESP(EFIシステムパーティション)があること、および「bios_grub」フラグを持つ非常に小さなパーティションがあることを確認する必要があります。バラよりこのリンク詳細については。状況は、起動可能なドライブとオペレーティングシステムによって複製されたハイブリッドisoファイルの間で大きく異なる場合があります。
したがって、UEFIモードとBIOSモード(エイリアスCSMレガシー起動)の両方で起動できるコンピュータでテストするのが最善です。