どのパーティションからブートするのか、どうすればわかりますか?

どのパーティションからブートするのか、どうすればわかりますか?

実際にどのパーティションから起動するかを知る方法はありますか?

fdisk -l私のNVMEには、確かに存在しない「ブート」列が表示されます。これは単なるレガシー情報ですか?

Device     Boot     Start       End   Sectors   Size Id Type
/dev/sda1  *         2048   1126399   1124352   549M  b W95 FAT32
/dev/sda2         1126400 975688107 974561708 464.7G  7 HPFS/NTFS/exFAT
/dev/sda3       975689728 976769023   1079296   527M 27 Hidden NTFS WinRE

...

Device              Start        End    Sectors   Size Type
/dev/nvme0n1p1     616448 2458216447 2457600000   1.1T Linux filesystem
/dev/nvme0n1p2 2458216448 3907024031 1448807584 690.8G Linux filesystem
/dev/nvme0n1p3       2048     616447     614400   300M EFI System

Partition table entries are not in disk order.

/boot/efiがマウントされていることを考慮すると、私のnvmeドライブを使用していると90%確信しています。何の兆候lsblkもなく、これが本当かどうかを確認したいと思います。bootfdisk

NAME        MAJ:MIN RM   SIZE RO TYPE MOUNTPOINTS
sda           8:0    0 465.8G  0 disk
├─sda1        8:1    0   549M  0 part
├─sda2        8:2    0 464.7G  0 part
└─sda3        8:3    0   527M  0 part
sdb           8:16   0   1.8T  0 disk
├─sdb1        8:17   0    99M  0 part
├─sdb2        8:18   0    16M  0 part
└─sdb3        8:19   0   1.8T  0 part
nvme0n1     259:0    0   1.8T  0 disk
├─nvme0n1p1 259:1    0   1.1T  0 part
├─nvme0n1p2 259:2    0 690.8G  0 part /
└─nvme0n1p3 259:3    0   300M  0 part /boot/efi

私もDisklabel type/dev/sdaがdosで、/dev/nvme0n1がgptであることを知っていました(考える場合)。

ベストアンサー1

システムは明らかにUEFIスタイルで起動するので、タイトルの質問に対する答えは次のとおりです。

ルートとして実行して、そのefibootmgr -v行(通常は出力の最初の行)で4桁のIDを確認し、その行から起動するBootCurrent:パーティションBootNNNNのPARTUUIDを見つけます。使用されている実際のブートマネージャ/ローダのファイル名が含まれています。

次に、lsblk -o +PARTUUIDGPTパーティションテーブルに含まれているパーティションの一意のUUIDを確認します。BootNNNN出力行に表示されているUUIDを見つけると、efibootmgr -vパーティションがわかります。

(MBR パーティションディスクには物理パーティション UUID がないため、パーティションの組み合わせが短くなります.ディスク署名物理パーティションUUIDの代わりにパーティション番号とパーティションIDを表示します。 )


これはDisklabel type確かに重要な要素です。これは、GPTパーティショニングとUEFIスタイルのブートを使用し、sdaクラシックMBRパーティショニングとブートシーケンスを使用していることを示します。nvme0n1

そしてGPTパーティションテーブルできるMBRパーティションディスク出力のフラグフィールドとデフォルトで同じブートフラグを格納するBootGPTパーティションディスクでは、MBRスタイルのブートはまれなため、含まれません。デフォルトのUEFIスタイルのアプローチでは、これらのフラグを使用しません。今理解するのはシステムファームウェアの仕事だからです。fdisk -lfdisk -lブートローダファイルの名前そしてPARTUUIDからパーティションをロードします。

ただし、これらのレガシーフラグがGPTパーティションで有効になっている場合、i最新のLinuxを使用するコマンド(=パーティションに関する情報の印刷)は、出力行のキーワードを介してそれを表示しますfdiskLegacyBIOSBootableAttrs:

これらのフラグを実際に切り替えるには、GPT対応Linux用の専門家固有の追加コマンドを使用する必要がありますfdisk。まずxフラグAを切り替えます。

UEFIパーティションフラグを含むパーティションテーブルのみを一覧表示したい場合、fdisk -x /dev/nvme0n1出力は従来の出力よりはるかに広いですfdisk -l


古典的なMBR / BIOSスタイルを使用して起動する場合、タイトルの質問に対する答えは「本当にそうではありません」です。BIOSスタイルのファームウェアには、システムの起動に実際に使用するデバイスをオペレーティングシステムに通知するユビキタス標準的な方法はありません。これは、既存のBIOSスタイルのブートを使用しているシステム上のすべてのオペレーティングシステムとオペレーティングシステムのインストーラで長い間持続してきた問題です。

もしディレクトリ/sys/firmware/eddが存在します。可能BIOSでディスクが表示される順序を識別することによって起動ディスクを識別するための情報が含まれています。通常、現在のブートディスクはBIOSディスクリストの最初のハードディスクの場所(「ディスク0x80」とも呼ばれます)に移動され、ほとんどのBIOSベースのブートローダはこの事実に依存しています。

したがって/sys/firmware/edd/int13_dev80、ブートローダがあり、ブートローダがまだディスクのBIOS int13 IDを切り替えていない場合(ディスクID交換を必要とするカスタムデュアル/マルチブート設定がある場合はGRUBがこれを行うことができます)、その中の情報は実際のBIOS int13 IDを識別するのに役立ちます。 BIOS int13 ファームウェアが使用する ID。

残念ながら、この情報を提供するために必要なBIOS拡張は必要なだけ広く利用できず、存在しても必ずしも完全に正しく実装されているわけではありません。利用可能なEDD情報がない多くのシステム、一部のEDD情報が不完全なシステム、およびEDD情報のクエリによってブートが中断されるシステムもありました。

(明らかにEDD情報インターフェースはDellによって設計されているので、Dellシステムを主に使用する場合は私よりも幸運になるかもしれません。)

おすすめ記事