コンピュータの起動プロセスについて読んでいて、コンピュータが からブートローダのコードをロードすることを知りました。そこで、次のようMBR
にして自分のコンピュータを見てみたいと思いました。MBR
sudo dd if=/dev/sda of=mbr bs=512 count=1
Vimで開いて実行し、:%!xxd
ファイルの16進表示を取得しました。このファイルは次のようになります。
インターネットで見つけた情報によると、このレコードの最初の 446 バイトはローダーのコードであるはずです。しかし、私の場合はゼロだけです。ブートローダーがこのようになるとは思いませんが、私のコンピューターはまったく問題なくロードします。なぜそうなるのでしょうか。なぜMBR
(パーティション テーブルを除く) ゼロだけなのに、コンピューターはロードするのでしょうか。GRUB
ブートローダーとして持っています。
答え1
おそらく古いテキストを読んだのでしょう。今日のコンピューターは MBR 経由では起動しません。より正確に言うと、移行期間中であり、一部のコンピューターは MBR を使用し、一部のコンピューターは使用しません。
原因の 1 つは、MBR では 2 TiB を超えるドライブのパーティション分割が許可されないことです。
はい、通常 MBR が配置されている場所に dd を実行しましたが、そこにはコードがなく、パーティション テーブルにはドライブ全体にわたる 1 つのエントリのみが含まれています。これはいわゆる保護 MBR であり、ディスクには GUID パーティション テーブル (GPT) レイアウト (つまり、他のパーティション システムを使用) があり、コンピューターはおそらく UEFI 経由で起動します。おそらく、FAT32 ファイル システムの小さなパーティションがあり、これは EFI システム パーティション (ESP) と呼ばれ、EFI/BOOT/bootx64.efi ファイルが含まれています。このファイルはブート ローダー (grub、または grub をすぐに実行するスタブ ローダー) であり、ファームウェアによって実行されます。または、任意の EFI 実行可能ファイルをブートするようにファームウェアをセットアップすることもできますが、それでも ESP に存在する必要があります。
ロードされたシステムに空でない /sys/firmare/efi ディレクトリがある場合、Linux で UEFI が起動したことを確認できます。