我希望能够运行一个命令来打印格式化分区的 FAT 版本/子类型到底是什么(FAT12/FAT16/FAT32/VFAT/exFAT)
有些人建议遵循命令
# stat -f -c %T /boot/efi
msdos
或者
# df -T | grep boot
/dev/sda2 vfat 262144 67916 194228 26% /boot/efi
这是stat
exFAT 的打印内容
# stat -f -c %T /media/a1ex/7B57-DCAA/
fuseblk
这些输出看起来很混乱,不是吗?
答案1
这是问题的真实答案。
该file -s
命令确实提供了有关 FAT 类型的信息:
$ sudo file -s /dev/nvme0n1p2
/dev/nvme0n1p2: DOS/MBR boot sector, code offset 0x58+2, OEM-ID "MSDOS5.0", sectors/cluster 2, reserved sectors 6654, Media descriptor 0xf8, sectors/track 63, heads 255, hidden sectors 1085440, sectors 204800 (volumes > 32 MB), FAT (32 bit), sectors/FAT 769, reserved 0x1, serial number 0xbe4b6aa0, unlabeled
相关部分=>FAT (32 bit)
答案2
vfat
只是根据分区表和fstab来表示它是FAT分区。会告诉你与或fdisk -l
相同的事情。df -T
mount
我不会使用stat
,我会使用file /dev/sda2
orparted /dev/sda -l
来获得更好的想法。
旁注:fuseblk
用于自动安装的媒体。/boot/efi
和/media/...
您展示的示例之间有明显的区别。
答案3
这个命令会做到这一点:
lsblk -o FSTYPE
更有用的标志组合可能是:
lsblk -o FSTYPE,MOUNTPOINT,TYPE,NAME
FSTYPE MOUNTPOINT TYPE NAME
disk sda
ntfs part ├─sda1
ntfs part └─sda2
[SWAP] disk zram0
disk nvme0n1
ext4 /boot part ├─nvme0n1p1
crypto_LUKS part └─nvme0n1p2
btrfs /home crypt └─luks-69980091-6c68-42a0-adf9-4d7e07c7239f