$cd /boot
/boot ディレクトリに入ると、$ls -l
次のように表示されます:
.........
drwx------ 2 root root 4096 Jan 1 1970 efi
.........
ここでは、ディレクトリ内に表示されている他のすべてのファイルを非表示にします。
しかし$ls -l efi
、ルートユーザーの場合は次のように表示されます:
合計 0
を実行すると$df -h /boot/efi
、次のように表示されます:
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 511M 4.0K 511M 1% /boot/efi
を実行すると$df -h | grep sda1
、次のように表示されます。
/dev/sda1 511M 4.0K 511M 1% /boot/efi
を実行すると$fdisk -l /dev/sda
、次のように表示されます。
Disk /dev/sda: 119.25 GiB, 128035676160 bytes, 250069680 sectors
Disk model: GIM128
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x122b13d1
Device Boot Start End Sectors Size Id Type
/dev/sda1 * 2048 1050623 1048576 512M b W95 FAT32
/dev/sda2 1052670 250068991 249016322 118.8G 5 Extended
/dev/sda5 1052672 250068991 249016320 118.8G 83 Linux
sda1 がなぜ「W95 FAT32」タイプを使用し、efi が何に使用されるのか疑問に思います。Linux マシン (産業用コンピュータ) をベンダーから購入しましたが、ベンダーはシステムをデフォルト設定でインストールしただけだと言っていました。OS は Ubuntu 20.04.4 LTS です。
答え1
UEFI ベースのシステム (UEFI は 1980 年代の BIOS に代わる新しいファームウェア) では、UEFI モードのインストールに、ブートローダーがインストールされている小さな FAT32 形式のパーティション、またはデュアル ブートまたはマルチ ブートの場合は複数のパーティションが必要です。最後に追加の説明があります。
したがって、ここで表示される内容は、プリインストールされている OS に関係なく、過去 10 年間のどのコンピューターでも正常かつ予想されるものです。
BIOS と UEFI はファームウェアです。
前者は、1981 年に最初の PC が登場して以来、2008/9 年頃まで PC および互換機/クローンで使用されていました。その後、BIOS は、UEFI と呼ばれる、より新しく、より機能が豊富なファームウェアに置き換えられました。そして、2012 年の Windows 8 以降、Microsoft はほぼすべてのメーカーに、UEFI モードと GPT で Windows をプレインストールするように「強制」しました。
何をしているのかわかっていない限り、/boot/efi (これは EFI システム パーティションのマウント ポイントにすぎません) を「参照」する必要はありませんし、参照すべきでもありません。代わりに、実際に必要なのは、UEFI とは何か、どのように起動するか、特にデュアル ブートの場合はその要件を理解することです。
答え2
要約して質問を締めくくりたいと思います。回答とコメントを読んだ後、関連する用語をグーグルで検索したところ、この質問は次のように結論付けられると思います。https://en.wikipedia.org/wiki/EFI_システムパーティション、それは言う:
UEFI は、パーティションの最初のブロック (セクター) を互換性コード用に予約し、実質的にレガシー ブート セクターを作成することで、レガシー システムとの下位互換性を提供します。レガシー BIOS ベースのシステムでは、パーティションの最初のセクターがメモリにロードされ、実行がこのコードに転送されます。UEFI ファームウェアは、互換性サポート モジュール (CSM) を介してレガシー BIOS モードで起動する場合を除き、MBR 内のコードを実行しません。
UEFI 仕様では、MBR パーティション テーブルを完全にサポートする必要があります。1ただし、一部のUEFI実装では、ブートディスク上の特定の種類のパーティションテーブルを検出するとすぐにBIOSベースのCSMブートに切り替わり、MBRパーティションディスクに含まれるEFIシステムパーティションからのUEFIブートの実行を事実上防止します。[5]
次に、Linux マシンが GPT または MPR を使用しているかどうかを確認するために、 を実行すると$ sudo parted -l
、次のように表示されます。
Model: ATA GIM128 (scsi)
Disk /dev/sda: 128GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:
Number Start End Size Type File system Flags
1 1049kB 538MB 537MB primary fat32 boot
2 539MB 128GB 127GB extended
5 539MB 128GB 127GB logical ext4
パーティション テーブル フィールドには、msdos MBR パーティション テーブル (Linux および Windows で現在でも一般的に使用されているもの) を使用していることが示されています。
結論として、私のケースでは、ブート パーティション (プライマリ パーティション) は /boot/efi にマウントされていますが、実際には BIOS ベースのブート ローダーを使用しています。