
実際にどのパーティションから起動するかを知る方法はありますか?
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
もなく、これが本当かどうかを確認したいと思います。boot
fdisk
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 +PARTUUID
GPTパーティションテーブルに含まれているパーティションの一意のUUIDを確認します。BootNNNN
出力行に表示されているUUIDを見つけると、efibootmgr -v
パーティションがわかります。
(MBR パーティションディスクには物理パーティション UUID がないため、パーティションの組み合わせが短くなります.ディスク署名物理パーティションUUIDの代わりにパーティション番号とパーティションIDを表示します。 )
これはDisklabel type
確かに重要な要素です。これは、GPTパーティショニングとUEFIスタイルのブートを使用し、sda
クラシックMBRパーティショニングとブートシーケンスを使用していることを示します。nvme0n1
そしてGPTパーティションテーブルできるMBRパーティションディスク出力のフラグフィールドとデフォルトで同じブートフラグを格納するBoot
GPTパーティションディスクでは、MBRスタイルのブートはまれなため、含まれません。デフォルトのUEFIスタイルのアプローチでは、これらのフラグを使用しません。今理解するのはシステムファームウェアの仕事だからです。fdisk -l
fdisk -l
ブートローダファイルの名前そしてPARTUUIDからパーティションをロードします。。
ただし、これらのレガシーフラグがGPTパーティションで有効になっている場合、i
最新のLinuxを使用するコマンド(=パーティションに関する情報の印刷)は、出力行のキーワードを介してそれを表示しますfdisk
。LegacyBIOSBootable
Attrs:
これらのフラグを実際に切り替えるには、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システムを主に使用する場合は私よりも幸運になるかもしれません。)
答え2
Linux(grub / systemd)はブートパーティションに関する情報を保持しません。
システムがEFIモードで起動すると、sdaはMBRパーティションディスクのように見えるため、/dev/nvme0n1p3
別のモードを使用します。/dev/sda1