在虚拟块设备(循环设备)中挂载 EFI 分区时挂载目录的奇怪行为

在虚拟块设备(循环设备)中挂载 EFI 分区时挂载目录的奇怪行为

在我的WSL2Debian 发行版,我创建了一个名为的映像文件VirtDisk.img并将其设置为虚拟块设备:

dd if=/dev/zero of=VirtBlock.img bs=1G count=16                                       
16+0 records in
16+0 records out
17179869184 bytes (17 GB, 16 GiB) copied, 11.204 s, 1.5 GB/s

sudo losetup -f -P VirtDisk.img

然后将其分为如下三部分,并为它们创建一个文件系统,如标记所示[]

sudo fdisk /dev/loop0                                                                 

Command (m for help): p
Disk /dev/loop0: 16 GiB, 17179869184 bytes, 33554432 sectors
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: 0x30f503f9

Device       Boot   Start      End  Sectors  Size Id Type
/dev/loop0p1         2048  1050623  1048576  512M ef EFI (FAT-12/16/32)         [FAT32]
/dev/loop0p2      1050624  5244927  4194304    2G 82 Linux swap / Solaris       [swap]
/dev/loop0p3      5244928 33554431 28309504 13.5G 83 Linux                      [EXT4]

然后我将其安装/dev/loop0p1~/mnt目录,并用于chown更改安装目录的所有者。

sudo但尽管我使用了前缀,但它出现“不允许操作”错误。

sudo mount /dev/loop0p1 mnt

sudo chown colorglass mnt                                                              
chown: changing ownership of 'mnt': Operation not permitted

当我改为root执行相同的操作时,它仍然给出相同的结果。

我的目录的日期属性~/mnt变成了Jan 1 1970

ll
drwxr-xr-x 2 root       root       4.0K Jan  1  1970 mnt

我是否进行了错误的操作?

答案1

FAT32 文件系统(作为 EFI 系统分区的标准)无法存储文件所有权或 UNIX 风格的权限,因此在这种情况下错误消息意味着“您所要求的是不可能的”。

由于loop0p1已挂载到/mnt,因此您的尝试chown实际上是针对文件系统的根目录- 文件系统的loop0p1实际目录被它“覆盖”。当一个目录被用作挂载点时,它的实际权限基本上没有意义,挂载文件系统的根目录的属性将接管。出于同样的原因,日期属性被“更改”。/mntloop0p3

更改任何 FATxx 文件系统上的所有权/权限的唯一方法是使用挂载选项 - 您只能为所有目录设置一组权限,为挂载文件系统中的所有文件设置另一组权限。 FATxx 文件系统中的每个文件和目录都具有相同的所有者和组,但您可以使用挂载选项来指定它们的所有者和组。

相关内容