本文共 3962 字,大约阅读时间需要 13 分钟。
轉載自
There are multiple ways to get this information. Most of them require you to parse the output of another command.
Run # fdisk /dev/sdX -l
to get a basic idea of the filesystem structure. The output is something like this:
Disk /dev/sda: 320.1 GB, 320072933376 bytes, 625142448 sectorsUnits = sectors of 1 * 512 = 512 bytesSector size (logical/physical): 512 bytes / 512 bytesI/O size (minimum/optimal): 512 bytes / 512 bytesDisk 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
But this will only tell you the partition type.
You could also use # blkid
to get the following output:
/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"
Also, for a well formatted output, you could run # parted /dev/sdX -l
for the following output:
Model: ATA WDC WD3200BEVT-7 (scsi)Disk /dev/sda: 320GBSector size (logical/physical): 512B/512BPartition Table: msdosDisk 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
. This is another command that does not require super user privileges to execute. However, this will report for every mount point
Filesystem Type 1K-blocks Used Available Use% Mounted onrootfs rootfs 225815276 99381340 114963128 47% /dev devtmpfs 1538396 0 1538396 0% /devrun tmpfs 1541260 416 1540844 1% /run/dev/sda2 ext4 225815276 99381340 114963128 47% /tmpfs tmpfs 1541260 360 1540900 1% /dev/shmtmpfs tmpfs 1541260 0 1541260 0% /sys/fs/cgrouptmpfs tmpfs 1541260 900 1540360 1% /tmp/dev/sda1 ext2 139985 30386 102372 23% /boot/dev/sda4 fuseblk 82006340 79676036 2330304 98% /mnt
Another command that can come handy is # file -sL /dev/sdXY
. This has one downside in that it does not work with the full block device. Requires the exact device to be passed. The output is quite neat though:
/dev/sda1: Linux rev 1.0 ext2 filesystem data (mounted or unclean), UUID=aa84c5a8-6408-4952-b577-578f2a67af86, volume name "boot"
All of these will always be output to stdout. You can parse them in a script if required.
(eval $(blkid $DEV | awk ' { print $3 } '); echo $TYPE)
will do, thanks! (The outer parantheses are only necessary if TYPE
is already used elsewhere and shall not be changed) –
df -T
will claim tmpfs
for any loopdevice it seems, and fdisk -l
doesn't appear to list a type when applied to a partition itself, while parted
ignores the device for me and file -s
yields the wrong format for a luks encrypted device. But blkid
works perfectly, even for a loop device or the image file itself –
That behavior is expected out of df -T
and fdisk -l
. However, I don't understand how parted
ignores the complete block device. –
That may be due to the linux I tried to run this on (it's a custom distro on a Buffalo LinkStation NAS device) Btw, even better solution: –
@TobiasKienzler Instead of eval, you could use . <(blkid -pi /dev/sdXN)
–
@F.Hauri Good point, I didn't know about <(...)
back then though. And of course the blkid -i value -s TYPE $DEV
is even better... –
#lsblk -f
would also help at least it returns every mounted or unmount block devices. –
None of these work with NFS mountpoints. –
转载地址:http://dzpgi.baihongyu.com/