可能的重复:
从脚本中查找分区的文件系统
如何通过终端显示文件系统类型?
我正在寻找一个命令,该命令可以生成文件系统类型,以便mount
使用/检测它,而无需实际安装它。它也应该适用于例如 LUKS 加密设备(其中file -s
生成“LUKS 加密文件”而不是“crypto_LUKS”)。当然有比解析fsck -N /dev/whatever
的输出更方便的方法(根据相应的存在,可能会使用 stderr fsck.TYPE
)?
答案1
有多种方法可以获取此信息。其中大多数要求您解析另一个命令的输出。
运行
# fdisk /dev/sdX -l
以了解文件系统结构的基本概念。输出是这样的:Disk /dev/sda: 320.1 GB, 320072933376 bytes, 625142448 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 Disk identifier: 0x9f7685a8 Device Boot Start End Blocks Id System /dev/sda1 63 289169 144553+ 83 Linux /dev/sda2 289170 459121634 229416232+ 83 Linux /dev/sda3 459121635 461129759 1004062+ 82 Linux swap / Solaris /dev/sda4 * 461129760 625142447 82006344 7 HPFS/NTFS/exFAT
但这只会告诉您分区类型。
您还可以使用
# blkid
获取以下输出:/dev/sda1: LABEL="boot" UUID="aa84c5a8-6408-4952-b577-578f2a67af86" TYPE="ext2" /dev/sda2: LABEL="root" UUID="a430e0ef-fd35-432f-8b9a-75a49b89ad8a" TYPE="ext4" /dev/sda3: LABEL="swap" UUID="e388806a-dc27-4f4e-a136-3d1ff4e53962" TYPE="swap" /dev/sda4: UUID="088E027A8E026114" TYPE="ntfs"
此外,对于格式良好的输出,您可以运行
# parted /dev/sdX -l
以下输出:Model: ATA WDC WD3200BEVT-7 (scsi) Disk /dev/sda: 320GB Sector size (logical/physical): 512B/512B Partition Table: msdos Disk Flags: Number Start End Size Type File system Flags 1 32.3kB 148MB 148MB primary ext2 2 148MB 235GB 235GB primary ext4 3 235GB 236GB 1028MB primary linux-swap(v1) 4 236GB 320GB 84.0GB primary ntfs boot
$ df -T
。这是另一个不需要超级用户权限即可执行的命令。但是,这将为每个安装点报告Filesystem Type 1K-blocks Used Available Use% Mounted on rootfs rootfs 225815276 99381340 114963128 47% / dev devtmpfs 1538396 0 1538396 0% /dev run tmpfs 1541260 416 1540844 1% /run /dev/sda2 ext4 225815276 99381340 114963128 47% / tmpfs tmpfs 1541260 360 1540900 1% /dev/shm tmpfs tmpfs 1541260 0 1541260 0% /sys/fs/cgroup tmpfs tmpfs 1541260 900 1540360 1% /tmp /dev/sda1 ext2 139985 30386 102372 23% /boot /dev/sda4 fuseblk 82006340 79676036 2330304 98% /mnt
另一个可以派上用场的命令是# file -sL /dev/sdXY
.这有一个缺点,因为它不能与完整的块设备一起使用。需要传递确切的设备。输出非常简洁:
/dev/sda1: Linux rev 1.0 ext2 filesystem data (mounted or unclean), UUID=aa84c5a8-6408-4952-b577-578f2a67af86, volume name "boot"
所有这些都将始终输出到标准输出。如果需要,您可以在脚本中解析它们。