当我$cd /boot
进入 /boot 目录然后时$ls -l
,它显示:
.........
drwx------ 2 root root 4096 Jan 1 1970 efi
.........
这里我只是隐藏了目录中显示的所有其他文件。
但当我$ls -l efi
以root用户身份时,它显示:
共 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 机器(工业计算机),他们告诉我他们只是按照默认设置安装了系统。操作系统是 Ubuntu 20.04.4 LTS。
答案1
任何基于 UEFI 的系统(UEFI 是取代 1980 年代 BIOS 的新固件)对于任何 UEFI 模式安装都需要一个小型 FAT32 格式的分区,用于安装引导加载程序,如果是双重或多重引导,则需要多个分区。最后有附加说明。
因此,无论预装的操作系统是什么,您在过去十年的任何计算机上看到的情况都是正常且预期的。
BIOS 和 UEFI 是固件。
前者自 1981 年第一台 PC 问世以来一直用于 PC 和兼容机/克隆机,直到 2008/9 年左右。然后 BIOS 被一种更新且功能更丰富的固件(称为 UEFI)取代。然后从 2012 年和 Windows 8 开始,微软几乎“强迫”所有制造商以 UEFI 模式和 GPT 预安装 Windows。
除非您知道自己在做什么,否则您不需要也不应该“浏览”/boot/efi(顺便说一下,这只是 EFI 系统分区的挂载点)。相反,您真正需要做的是了解 UEFI 是什么、它如何启动以及它的要求,尤其是在双启动时。
答案2
让我来总结一下这个问题。在阅读了答案和评论后,我谷歌了相关术语,认为这个问题可以总结如下。在https://en.wikipedia.org/wiki/EFI_system_partition, 它说:
UEFI 通过将分区的第一个块(扇区)保留为兼容代码来提供与旧系统的向后兼容性,从而有效地创建旧式引导扇区。在基于旧式 BIOS 的系统中,分区的第一个扇区会加载到内存中,并将执行转移到此代码。UEFI 固件不会执行 MBR 中的代码,除非通过兼容性支持模块 (CSM) 以旧式 BIOS 模式启动。
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 的启动加载程序。