都在标题里了。我的问题是,我的磁盘上有一个 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
`