web-dev-qa-db-ja.com

レガシーBIOSとUEFIの違い

なぜMBRGPTLegacy BIOSUEFIに関連付けられているのはなぜですか?

4

古い BIOS (基本入出力システム)とその最新の代替 ​​UEFI (Unified Extensible Firmware Interface)は、どちらもコンピューターの「ファームウェア」と見なすことができます。

これらはメインボードに直接保存され、コンピューターの電源を入れたときに実行される最初のソフトウェアです。彼らの主な仕事は、接続されているすべてのハードウェアを初期化し、実際のオペレーティングシステム(UbuntuやWindowsなど)のブートローダー(GRUBなど)をハードディスクからロードし、OSを起動することです。

ほとんどのUEFIシステムは、レガシーBIOSインターフェイスをエミュレートするCSM(互換性サポートモジュール)ブートもサポートしています。

レガシーBIOSブートは、ディスクの固定アドレス(マスターブートレコードの一部)からコードを単純かつ愚かに読み取り、実行しますが、UEFIブートはEFIシステムパーティションでEFIブートファイルを検索し、それらの1つを実行します。


古い MBR (マスターブートレコード)および新しい GPT (GUID Partition Table; GUID = Global Unique Identifier)はパーティションテーブル形式です。

ハードディスクは、これらの2つの形式のいずれかでパーティション分割されます。古いMBR形式では、ディスク全体で4つのプライマリパーティションしか使用できません(ただし、そのうちの1つを拡張パーティションとして使用し、多くの論理ボリュームを含めることができます)。GPTにはこの制限がなく、より大きなディスクもサポートします。

GPTパーティションディスクには、UEFIとレガシーBIOSブートモードの両方をサポートするために、ブートコードがEFIファイルをロードできるハイブリッドMBRも含まれる場合があります。


では、なぜBIOSとMBRが相互に関連付けられ、UEFIがGPTと関連付けられているのでしょうか?

さて、BIOS/MBRは今日の最新のUEFI/GPTの祖先である以外に、通常は一緒に使用されます。一部のオペレーティングシステム(Windowsなど)は、BIOSモードでのMBRディスクとUEFIモードでのGPTディスクの起動のみをサポートします。 Linuxシステム(例: GRUBは一般に、どちらの方法でも混合しても問題ありません。

12
Byte Commander

レガシー(CSM)ブートとUEFIブート

SuperUserには、2012年からのOPの質問に関する 高く評価された投稿 があります。

CSM(レガシー)およびUEFI(ユニバーサル拡張ファームウェアインターフェイス)は、BIOS(基本入出力システム)内で選択する相互排他的なブートオプションです。 BIOSは、レガシー(CSM)ブートよりもはるかに適用されます。

  • ディスクブート形式:レガシー(CSM)対UEFI
  • ディスクの起動順序:ハードディスク、SSD、USB、NIC(ネットワークインターフェイスカード)
  • ディスクの低レベル操作:RAID vs AHCI
  • USBポート:入力で起動する、システムがオフのときに電源が入るなど。
  • 複数のグラフィックカード:IntelまたはnVidiaの有効化/無効化
  • RTC(リアルタイムクロック)に保存されているシステムの日付と時刻
  • オプションのハードウェアPOST(Power On Self Test)チェック
  • コンピューターによって異なる他の多くのBIOSオプション

Byte and Raveryが既に素晴らしい回答を投稿しているので、要約します。

  • レガシー(CSM)とUEFIは、ストレージディスク(最近ではSSDの形をとることが多い)から起動するための異なる方法です。
  • CSMは、特定の形式の512バイトのMBR(マスターブートレコード)を使用してオペレーティングシステムを起動します。
  • UEFIは、大きなパーティション(通常は100 MB)内のファイルを使用してオペレーティングシステムを起動します。通常、MBRが存在する必要があります。
  • MBRとGPTは、ディスクパーティションのフォーマットに関する異なる仕様です。 MBRフォーマットのディスクでUEFIブートを実行できます。 GPT形式のディスクでMBRを起動できます(Windows以外の環境)。
  • MBR(ディスクの最初の512バイト)は通常、ユーザーの表示から隠されています。
  • 以下に示すように、EFIパーティションは簡単に表示できます。

MBRがディスクブート方法またはディスクパーティションフォーマットを参照できるという曖昧さを注意することが重要です。

UEFIは多くの場合GPTディスク形式に関連付けられていますが、MBRブートではGPTディスク形式を使用できることに注意することも重要です。

EFIパーティションを表示する

lsblkを使用すると、EFIパーティションとファイルを確認できます。

$ lsblk -o NAME,FSTYPE,LABEL,MOUNTPOINT,SIZE,MODEL
NAME        FSTYPE LABEL            MOUNTPOINT   SIZE MODEL
sda                                            931.5G HGST HTS721010A9
├─sda4      ntfs   WINRETOOLS                    450M 
├─sda2                                           128M 
├─sda5      ntfs   Image                        11.4G 
├─sda3      ntfs   HGST_Win10       /mnt/d       919G 
└─sda1      vfat   ESP                           500M 
nvme0n1                                          477G Samsung SSD 960 PRO 512GB           
├─nvme0n1p5 ext4   NVMe_Ubuntu_16.0 /           44.6G 
├─nvme0n1p3                                       16M 
├─nvme0n1p1 ntfs                                 450M 
├─nvme0n1p6 swap   Linux Swap       [SWAP]       7.9G 
├─nvme0n1p4 ntfs   NVMe_Win10       /mnt/c     414.9G 
├─nvme0n1p2 vfat                    /boot/efi     99M 
└─nvme0n1p7 ntfs   Shared_WSL+Linux /mnt/e         9G 

/boot/efiには多くのファイルがあり、lsコマンドを使用して確認できます。 99MBパーティション内のすべてのファイルのサイズを確認するには、次を使用します。

$ du -hs /boot/efi
35M /boot/efi

gdisk情報

この回答を調査しているときに、実行したgdiskコマンドへのリンクを見つけましたが、Windowsを再度起動すると後悔する可能性があります。これはここにあるので、Windowsデュアルブートの間違いであることが判明した場合は、これを繰り返さないでください。

Sudo gdisk -l /dev/sda
[Sudo] password for rick:          
GPT fdisk (gdisk) version 1.0.1

The protective MBR's 0xEE partition is oversized! Auto-repairing.

Partition table scan:
  MBR: protective
  BSD: not present
  APM: not present
  GPT: present

Found valid GPT with protective MBR; using GPT.
Disk /dev/sda: 1953525168 sectors, 931.5 GiB
Logical sector size: 512 bytes
Disk identifier (GUID): 8BEC7AEB-4576-42B0-8A8A-D40779A80126
Partition table holds up to 128 entries
First usable sector is 34, last usable sector is 1953525134
Partitions will be aligned on 2048-sector boundaries
Total free space is 3437 sectors (1.7 MiB)

Number  Start (sector)    End (sector)  Size       Code  Name
   1            2048         1026047   500.0 MiB   EF00  EFI system partition
   2         1026048         1288191   128.0 MiB   0C01  Microsoft reserved ...
   3         1288192      1928626175   919.0 GiB   0700  Basic data partition
   4      1928626176      1929547775   450.0 MiB   2700  
   5      1929547776      1953523711   11.4 GiB    2700  

Windows 10を再起動し、Linux gdiskがWindowsハードドライブD:(Linuxセットアップで/dev/sda)の修復に影響を与えたかどうかを確認します。まだ使用していない元のハードドライブなので心配しませんが、データがある場合は注意が必要です。再起動してテストした後、このセクションを更新します。

2

MBRは、古いファームウェア(BIOS)で使用されるディスクパーティションスキームです。開発当時は、ドライブは非常に小さかった。ドライブが大きくなると、MBR標準は「パッチ適用」されて対応しました。ただし、多くの制限があります。レガシーブートは、BIOSに組み込まれていないため、GPTパーティションを読み取ることができません。この制限はBIOSにのみ適用されます。ブートローダーに関する以下の注意を参照してください。

EFIの開発に伴い、大容量ドライブをより有効に活用する新しいパーティションスキーム(GPT)も開発しました。 EFIファームウェアは、MBRパーティションディスクを読み取って使用できますが、通常、工場インストールではより優れたGPTパーティションを使用します。

注意:

  • Win10などの一部のOSでは、EFIファームウェアで必要とされていなくても、EFIインストールにGPTパーティションが必要です。
  • EFI規格はGPTを必要としませんが、特定の実装はそうするかもしれません。一部のコンピューターは、MBRディスクが検出されると、自動的にレガシーサポートモードになります。
  • GRUBなどの一部のブートローダーは、GPTディスクにBIOSパーティション(MBR)を配置できます。 BIOSはこのパーティションを読み取り、ブートローダーをロードできます。ブートローダーがロードされると、ブートローダーはGPTパーティションを読み取ることができます。
0
ravery