在这篇文章中,我们来了解一些用来检查你的系统分区的一些命令,这些命令将检查每个磁盘的分区情况和其它细节,例如总空间容量,已用完的空间和文件系统等。
像fdisk,sfdisk和cfdisk命令这样的常规分区工具,不仅可以显示分区信息,还可以修改。
1. fdisk
Fdisk是检查磁盘上分区的最常用命令,fdisk命令可以显示分区和细节,如文件系统类型,但是它并不报告每个分区的字节大小。
$ sudo fdisk-l
Disk/dev/sda:500.1GB,500107862016bytes
255heads,63sectors/track,60801cylinders,total976773168sectors
Units=sectors of1*512=512bytes
Sectorsize(logical/physical):512bytes/512bytes
I/O size(minimum/optimal):512bytes/512bytes
Diskidentifier:0x30093008
DeviceBootStartEndBlocksIdSystem
/dev/sda1*6314680196973400953+7HPFS/NTFS/exFAT
/dev/sda2146802031976771071414984520+f W95Ext'd (LBA)
/dev/sda5 146802033 351614654 102406311 7 HPFS/NTFS/exFAT
/dev/sda6 351614718 556427339 102406311 83 Linux
/dev/sda7 556429312 560427007 1998848 82 Linux swap / Solaris
/dev/sda8 560429056 976771071 208171008 83 Linux
Disk /dev/sdb: 4048 MB, 4048551936 bytes
54 heads, 9 sectors/track, 16270 cylinders, total 7907328 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: 0x0001135d
Device Boot Start End Blocks Id System
/dev/sdb1 * 2048 7907327 3952640 b W95 FAT32
每个设备都单独显示其详细信息:容量大小,扇区数,设备ID及其包含的每个分区。
2. sfdisk
Sfdisk是另一种跟fdisk用途相似的实用工具,但具有更多的功能。它能够以MB为单位显示每个分区的大小。
$ sudo sfdisk-l-uM
Disk/dev/sda:60801cylinders,255heads,63sectors/track
Warning:extended partition doesnotstart at a cylinder boundary.
DOSandLinuxwill interpret the contents differently.
Units=mebibytes of1048576bytes,blocks of1024bytes,countingfrom0
DeviceBootStartEndMiB#blocks Id System
/dev/sda1*0+71680-71681-73400953+7HPFS/NTFS/exFAT
/dev/sda271680+476938405259-414984520+f W95Ext'd (LBA)
/dev/sda3 0 - 0 0 0 Empty
/dev/sda4 0 - 0 0 0 Empty
/dev/sda5 71680+ 171686- 100007- 102406311 7 HPFS/NTFS/exFAT
/dev/sda6 171686+ 271693- 100007- 102406311 83 Linux
/dev/sda7 271694 273645 1952 1998848 82 Linux swap / Solaris
/dev/sda8 273647 476938 203292 208171008 83 Linux
Disk /dev/sdb: 1020 cylinders, 125 heads, 62 sectors/track
Warning: The partition table looks like it was made
for C/H/S=*/54/9 (instead of 1020/125/62).
For this listing I'll assume that geometry.
Units=mebibytes of1048576bytes,blocks of1024bytes,countingfrom0
DeviceBootStartEndMiB#blocks Id System
/dev/sdb1*1386038603952640b W95 FAT32
start:(c,h,s)expected(4,11,6)found(0,32,33)
end:(c,h,s)expected(1023,53,9)found(492,53,9)
/dev/sdb20-000Empty
/dev/sdb30-000Empty
/dev/sdb40-000Empty
3. cfdisk
Cfdisk是一个基于ncurses(提供字符终端处理库,包括面板和菜单)的带有交互式用户界面的Linux分区编辑器,它可以用来列出现有分区以及创建或修改这些分区。
下面是一个如何使用Cfdisk来列出分区的例子。
Cfdisk一次只能列出一个分区,所以如果你需要看某一磁盘的细节,可以把该磁盘的设备名作为Cfdisk的参数。
$ sudo cfdisk/dev/sdb
4. parted
Parted是另一个命令行实用程序,可以列出分区;如果需要的话,也可进行修改。
下面是一个例子,列出了详细的分区信息。
$ sudo parted-l
Model:ATA ST3500418AS(scsi)
Disk/dev/sda:500GB
Sectorsize(logical/physical):512B/512B
PartitionTable:msdos
NumberStartEndSizeTypeFilesystemFlags
132.3kB75.2GB75.2GBprimary ntfs boot
275.2GB500GB425GBextended lba
575.2GB180GB105GBlogical ntfs
6180GB285GB105GBlogical ext4
7285GB287GB2047MBlogical linux-swap(v1)
8287GB500GB213GBlogical ext4
Model:SonyStorageMedia(scsi)
Disk/dev/sdb:4049MB
Sectorsize(logical/physical):512B/512B
PartitionTable:msdos
NumberStartEndSizeTypeFilesystemFlags
11049kB4049MB4048MBprimary fat32 boot
5. df
Df是不是一个分区工具,但它打印出挂装文件系统的细节,Df可以列出甚至不是真实的磁盘分区的文件系统。
这里是个简单的例子:
$ df-h
FilesystemSizeUsedAvailUse%Mountedon
/dev/sda697G43G49G48%/
none4.0K04.0K0%/sys/fs/cgroup
udev3.9G8.0K3.9G1%/dev
tmpfs799M1.7M797M1%/run
none5.0M05.0M0%/run/lock
none3.9G12M3.9G1%/run/shm
none100M20K100M1%/run/user
/dev/sda8196G154G33G83%/media/13f35f59-f023-4d98-b06f-9dfaebefd6c1
/dev/sda598G37G62G38%/media/4668484A68483B47
只有以 /dev 开始的文件系统才是实际的设备或分区。
可以使用grep命令来筛选出实际的硬盘分区或文件系统。
$ df-h|grep^/dev
/dev/sda697G43G49G48%/
/dev/sda8196G154G33G83%/media/13f35f59-f023-4d98-b06f-9dfaebefd6c1
/dev/sda598G37G62G38%/media/4668484A68483B47
要只显示真正的磁盘分区与分区类型,可以这样使用Df:
$ df-h--output=source,fstype,size,used,avail,pcent,target-x tmpfs-x devtmpfs
FilesystemTypeSizeUsedAvailUse%Mountedon
/dev/sda6 ext497G43G49G48%/
/dev/sda8 ext4196G154G33G83%/media/13f35f59-f023-4d98-b06f-9dfaebefd6c1
/dev/sda5 fuseblk98G37G62G38%/media/4668484A68483B47
请注意,Df只显示已挂载的文件系统或分区,并不是所有。
6. pydf
它是用Python写的Df的改进版本,以易读的方式打印出所有磁盘分区。
$ pydf
FilesystemSizeUsedAvailUse%Mountedon
/dev/sda696G43G48G44.7[####.....]/
/dev/sda8195G153G32G78.4[#######..]/media/13f35f59-f023-4d98-b06f-9dfaebefd6c1
/dev/sda598G36G61G37.1[###......]/media/4668484A68483B47
另外,pydf被限制为仅显示已挂载的文件系统。
7. lsblk
列出了所有的块存储设备,包括磁盘分区和光盘驱动器。细节包括所有分区/块总大小和挂载点。
它不会报告分区上的已使用和空闲磁盘空间。
$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda8:00465.8G0disk
├─sda18:1070G0part
├─sda28:201K0part
├─sda58:5097.7G0part/media/4668484A68483B47
├─sda68:6097.7G0part/
├─sda78:701.9G0part[SWAP]
└─sda88:80198.5G0part/media/13f35f59-f023-4d98-b06f-9dfaebefd6c1
sdb8:1613.8G0disk
└─sdb18:1713.8G0part
sr011:011024M0rom
如果没有挂载点,这就意味着文件系统未安装,而对于cd/dvd这意味着没有插入光盘。
lsblk能够显示每个设备的更多信息,如标签和型号,更多请查看信息手册。
8. blkid
显示块设备(分区和存储介质)属性,例如UUID和文件系统类型,不报告分区空间。
$ sudo blkid
/dev/sda1:UUID="5E38BE8B38BE6227"TYPE="ntfs"
/dev/sda5:UUID="4668484A68483B47"TYPE="ntfs"
/dev/sda6:UUID="6fa5a72a-ba26-4588-a103-74bb6b33a763"TYPE="ext4"
/dev/sda7:UUID="94443023-34a1-4428-8f65-2fb02e571dae"TYPE="swap"
/dev/sda8:UUID="13f35f59-f023-4d98-b06f-9dfaebefd6c1"TYPE="ext4"
/dev/sdb1:UUID="08D1-8024"TYPE="vfat"
9. hwinfo
hwinfo是一个通用的硬件信息的工具,可以用来打印出磁盘和分区表,但是输出不再像上面的命令那样打印每个分区的详细信息。
$ hwinfo--block--short
disk:
/dev/sda ST3500418AS
/dev/sdbSonyStorageMedia
partition:
/dev/sda1Partition
/dev/sda2Partition
/dev/sda5Partition
/dev/sda6Partition
/dev/sda7Partition
/dev/sda8Partition
/dev/sdb1Partition
cdrom:
/dev/sr0 SONY DVD RW DRU-190A
总结
parted的输出可以得到简洁而完整的不同分区的概述、其上的文件系统以及总空间。pydf和df它们一样,只是被限制为只显示已挂载文件系统。
fdisk和sfdisk显示完整大量的信息,需要花些时间来解释。cfdisk是一个交互式分区工具,每次显示一个单一的设备。
来尝试下这些命令吧,别忘了在下面评论哟!
(题图来源:http://freegraphicdownload.com/)
本文由 LCTT 原创翻译,Linux中国 荣誉推出