如何查找 ExFAT 分区的文件系统/分区 UUID?

如何查找 ExFAT 分区的文件系统/分区 UUID?

都在标题里了。我的问题是,我的磁盘上有一个 ExFAT 分区,我想使用 UUID 挂载该分区,但我似乎找不到有关它的任何信息。

fdisk -l说:

[logandark@arch-base ~]$ sudo fdisk -l
Disk /dev/nvme0n1: 1.75 TiB, 1920383410176 bytes, 3750748848 sectors
Disk model: Aura Pro X2                             
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: gpt
Disk identifier: 97D5F803-8142-4F64-AF7D-0246B6A26DD8

Device              Start        End   Sectors   Size Type
/dev/nvme0n1p1         40     409639    409600   200M EFI System
/dev/nvme0n1p2     409640  879315887 878906248 419.1G Apple APFS
/dev/nvme0n1p3 3331319808 3750748159 419428352   200G Microsoft basic data
/dev/nvme0n1p4  879316992  931745791  52428800    25G Linux filesystem
/dev/nvme0n1p5  931745792  933842943   2097152     1G Microsoft basic data

Partition table entries are not in disk order.

我想自动安装/dev/nvme0n1p5在 my 中/etc/fstab,但我不想用作/dev/nvme0n1p5标识符。

因此,首先尝试查找该分区的 UUID:

[logandark@arch-base ~]$ sudo fdisk -l /dev/nvme0n1p5
Disk /dev/nvme0n1p5: 1 GiB, 1073741824 bytes, 2097152 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: 0xf4f4f4f4

这是我使用它来安装的尝试:

[logandark@arch-base ~]$ sudo nano /etc/fstab
[logandark@arch-base ~]$ sudo mount -a
mount: /mnt/transfer: can't find UUID=0xf4f4f4f4.
[logandark@arch-base ~]$ sudo nano /etc/fstab
[logandark@arch-base ~]$ sudo mount -a
mount: /mnt/transfer: can't find UUID=f4f4-f4f4.
[logandark@arch-base ~]$ sudo nano /etc/fstab
[logandark@arch-base ~]$ sudo mount -a
mount: /mnt/transfer: can't find UUID=4f4f-4f4f.
[logandark@arch-base ~]$ sudo nano /etc/fstab
[logandark@arch-base ~]$ sudo mount -a
mount: /mnt/transfer: can't find UUID=4F4F-4F4F.
[logandark@arch-base ~]$ sudo nano /etc/fstab
[logandark@arch-base ~]$ sudo mount -a
mount: /mnt/transfer: can't find UUID=F4F4-F4F4.

好吧,那是一个半身像。让我们尝试通过其他方式查找 UUID。

[logandark@arch-base ~]$ blkid
/dev/nvme0n1p1: LABEL_FATBOOT="EFI" LABEL="EFI" UUID="67E3-17ED" BLOCK_SIZE="512" TYPE="vfat" PARTLABEL="EFI System Partition" PARTUUID="6646a281-b597-4238-bdb2-7d66f89bc423"
/dev/nvme0n1p2: UUID="b5b8a23d-92b5-4707-b62f-bdbce5cd59f9" BLOCK_SIZE="4096" TYPE="apfs" PARTLABEL="Customer" PARTUUID="08b0857a-52c8-4480-9271-29dc39cee4a5"
/dev/nvme0n1p3: LABEL="BOOTCAMP" BLOCK_SIZE="512" UUID="01D5F4B01A92AFE0" TYPE="ntfs" PARTLABEL="BOOTCAMP" PARTUUID="234ffad0-1c6a-4001-8cf7-1f08b702c8e0"
/dev/nvme0n1p4: LABEL="Arch" UUID="c82b4a77-2ff5-4545-9882-f917a9e2cf4d" BLOCK_SIZE="4096" TYPE="ext4" PARTUUID="73602c6d-07dd-a24e-8875-85c752eb62d4"

没有 nvme0n1p5 的条目?有趣的...

[logandark@arch-base ~]$ ls -l /dev/disk/by-uuid/
total 0
lrwxrwxrwx 1 root root 15 Aug 26 22:45 01D5F4B01A92AFE0 -> ../../nvme0n1p3
lrwxrwxrwx 1 root root 15 Aug 26 22:45 67E3-17ED -> ../../nvme0n1p1
lrwxrwxrwx 1 root root 15 Aug 26 22:45 b5b8a23d-92b5-4707-b62f-bdbce5cd59f9 -> ../../nvme0n1p2
lrwxrwxrwx 1 root root 15 Aug 26 22:45 c82b4a77-2ff5-4545-9882-f917a9e2cf4d -> ../../nvme0n1p4

依然没有。

[logandark@arch-base ~]$ ls -l /dev/disk/by-partuuid/
total 0
lrwxrwxrwx 1 root root 15 Aug 26 22:45 08b0857a-52c8-4480-9271-29dc39cee4a5 -> ../../nvme0n1p2
lrwxrwxrwx 1 root root 15 Aug 26 22:45 234ffad0-1c6a-4001-8cf7-1f08b702c8e0 -> ../../nvme0n1p3
lrwxrwxrwx 1 root root 15 Aug 26 22:45 6646a281-b597-4238-bdb2-7d66f89bc423 -> ../../nvme0n1p1
lrwxrwxrwx 1 root root 15 Aug 26 22:45 73602c6d-07dd-a24e-8875-85c752eb62d4 -> ../../nvme0n1p4

显然,分区也可能没有 GPT GUID。叹...

我没主意了。如何找到该分区的 UUID?如果没有的话,我可以分配一个吗?我在 Google 和 DDG 上进行了搜索,但我也找不到任何方法来实际为分区分配 GPT GUID,所以我完全被难住了。 (主要是 SEO 点击诱饵,仅包含tune2fs 或 lsblk...)

编辑:我尝试使用 gdisk 分配随机 GUID,但没有成功。怎么没效果呢? ExFAT分区有什么特殊的吗?这是否与我使用 fdisk 而不是 gdisk 创建 ExFAT 分区有关?

答案1

FAT/vFAT/FAT32/exFAT 文件系统实际上没有 UUID。它有一个“卷序列号”,通常以十六进制数字表示为xxxx-xxxx。这可以用来代替真正的文件系统 UUID - 但显然内核/安装命令/系统中负责 exFAT 文件系统支持的其他部分尚不支持它。

(exFAT 规范由 Microsoft 于 2019 年 8 月 28 日公开发布,因此 Linux 中的“内核级”exFAT 支持以及相关工具此时还不到一年的时间。逆向工程的 FUSE-基于驱动程序较旧,可能更成熟,但基于内核的实现预计会赶上。)

但是 GPT 分区磁盘上的任何分区都应该有一个 PARTUUID,它是一个唯一的 UUID 样式标识符,不存储在文件系统本身中,而是存储在分区表中。它应该同样可用于指定要安装的文件系统。

运行lsblk -o +PARTUUID以查看分区 UUID。您应该能够在 中使用它/etc/fstab,只需将其指定为PARTUUID=...而不是UUID=...

答案2

听起来它没有 uuid,这很糟糕,但这里还有一个命令可以扔给它,只是为了看看

udisksctl info -b /path/to/device/partition

输出示例如下。我认为你应该运行这个,即使我怀疑你会得到一个 UUID,因为输出的一部分是设备符号链接的所有位置的列表。因此,您也许可以在那里挖掘并找到比 /dev/whatever 更永久的标识符。

/org/freedesktop/UDisks2/block_devices/mmcblk0p1:
  org.freedesktop.UDisks2.Block:
    Configuration:              []
    CryptoBackingDevice:        '/'
    Device:                     /dev/mmcblk0p1
    DeviceNumber:               45825
    Drive:                      '/org/freedesktop/UDisks2/drives/00000_0x61cc04da'
    HintAuto:                   true
    HintIconName:
    HintIgnore:                 false
    HintName:
    HintPartitionable:          true
    HintSymbolicIconName:
    HintSystem:                 false
    Id:                         by-uuid-B726-57E2
    IdLabel:                    system-boot
    IdType:                     vfat
    IdUUID:                     B726-57E2
    IdUsage:                    filesystem
    IdVersion:                  FAT32
    MDRaid:                     '/'
    MDRaidMember:               '/'
    PreferredDevice:            /dev/mmcblk0p1
    ReadOnly:                   false
    Size:                       268435456
    Symlinks:                   /dev/disk/by-id/mmc-00000_0x61cc04da-part1
                                /dev/disk/by-label/system-boot
                                /dev/disk/by-partuuid/ab86aefd-01
                                /dev/disk/by-path/pci-0000:03:00.0-platform-rtsx_pci_sdmmc.0-part1
                                /dev/disk/by-uuid/B726-57E2
    UserspaceMountOptions:
  org.freedesktop.UDisks2.Filesystem:
    MountPoints:
    Size:               0
  org.freedesktop.UDisks2.Partition:
    Flags:              128
    IsContained:        false
    IsContainer:        false
    Name:
    Number:             1
    Offset:             1048576
    Size:               268435456
    Table:              '/org/freedesktop/UDisks2/block_devices/mmcblk0'
    Type:               0x0c
    UUID:               ab86aefd-01
`

相关内容