Linux下掌控磁盘分区的九大神器

本网站用的阿里云ECS,推荐大家用。自己搞个学习研究也不错

<

div id=”content”>在这篇文章中,我们来了解一些用来检查你的系统分区的一些命令,这些命令将检查每个磁盘的分区情况和其它细节,例如总空间容量,已用完的空间和文件系统等。

像fdisk,sfdisk和cfdisk命令这样的常规分区工具,不仅可以显示分区信息,还可以修改。

1. fdisk

Fdisk是检查磁盘上分区的最常用命令,fdisk命令可以显示分区和细节,如文件系统类型,但是它并不报告每个分区的字节大小。

  1. $ sudo fdisk l
  2. Disk/dev/sda:500.1 GB,500107862016 bytes
  3. 255 heads,63 sectors/track,60801 cylinders, total 976773168 sectors
  4. Units= sectors of 1*512=512 bytes
  5. Sector size (logical/physical):512 bytes /512 bytes
  6. I/O size (minimum/optimal):512 bytes /512 bytes
  7. Disk identifier:0x30093008
  8. DeviceBootStartEndBlocksIdSystem
  9. /dev/sda1 *6314680196973400953+7 HPFS/NTFS/exFAT
  10. /dev/sda2 146802031976771071414984520+ f W95 Ext‘d (LBA)
  11. /dev/sda5 146802033 351614654 102406311 7 HPFS/NTFS/exFAT
  12. /dev/sda6 351614718 556427339 102406311 83 Linux
  13. /dev/sda7 556429312 560427007 1998848 82 Linux swap / Solaris
  14. /dev/sda8 560429056 976771071 208171008 83 Linux
  15. Disk /dev/sdb: 4048 MB, 4048551936 bytes
  16. 54 heads, 9 sectors/track, 16270 cylinders, total 7907328 sectors
  17. Units = sectors of 1 * 512 = 512 bytes
  18. Sector size (logical/physical): 512 bytes / 512 bytes
  19. I/O size (minimum/optimal): 512 bytes / 512 bytes
  20. Disk identifier: 0x0001135d
  21. Device Boot Start End Blocks Id System
  22. /dev/sdb1 * 2048 7907327 3952640 b W95 FAT32

每个设备都单独显示其详细信息:容量大小,扇区数,设备ID及其包含的每个分区。

2. sfdisk

Sfdisk是另一种跟fdisk用途相似的实用工具,但具有更多的功能。它能够以MB为单位显示每个分区的大小。

  1. $ sudo sfdisk l uM
  2. Disk/dev/sda:60801 cylinders,255 heads,63 sectors/track
  3. Warning: extended partition does not start at a cylinder boundary.
  4. DOS andLinux will interpret the contents differently.
  5. Units= mebibytes of 1048576 bytes, blocks of 1024 bytes, counting from0
  6. DeviceBootStartEndMiB#blocks Id System
  7. /dev/sda1 *0+716807168173400953+7 HPFS/NTFS/exFAT
  8. /dev/sda2 71680+476938405259414984520+ f W95 Ext‘d (LBA)
  9. /dev/sda3 0 – 0 0 0 Empty
  10. /dev/sda4 0 – 0 0 0 Empty
  11. /dev/sda5 71680+ 171686- 100007- 102406311 7 HPFS/NTFS/exFAT
  12. /dev/sda6 171686+ 271693- 100007- 102406311 83 Linux
  13. /dev/sda7 271694 273645 1952 1998848 82 Linux swap / Solaris
  14. /dev/sda8 273647 476938 203292 208171008 83 Linux
  15. Disk /dev/sdb: 1020 cylinders, 125 heads, 62 sectors/track
  16. Warning: The partition table looks like it was made
  17. for C/H/S=*/54/9 (instead of 1020/125/62).
  18. For this listing I’ll assume that geometry.
  19. Units= mebibytes of 1048576 bytes, blocks of 1024 bytes, counting from0
  20. DeviceBootStartEndMiB#blocks Id System
  21. /dev/sdb1 *1386038603952640 b W95 FAT32
  22. start:(c,h,s) expected (4,11,6) found (0,32,33)
  23. end:(c,h,s) expected (1023,53,9) found (492,53,9)
  24. /dev/sdb2 0000Empty
  25. /dev/sdb3 0000Empty
  26. /dev/sdb4 0000Empty

3. cfdisk

Cfdisk是一个基于ncurses(提供字符终端处理库,包括面板和菜单)的带有交互式用户界面的Linux分区编辑器,它可以用来列出现有分区以及创建或修改这些分区。

下面是一个如何使用Cfdisk来列出分区的例子。

linux cfdisk disk partitions

Cfdisk一次只能列出一个分区,所以如果你需要看某一磁盘的细节,可以把该磁盘的设备名作为Cfdisk的参数。

  1. $ sudo cfdisk /dev/sdb

4. parted

Parted是另一个命令行实用程序,可以列出分区;如果需要的话,也可进行修改。

下面是一个例子,列出了详细的分区信息。

  1. $ sudo parted l
  2. Model: ATA ST3500418AS (scsi)
  3. Disk/dev/sda:500GB
  4. Sector size (logical/physical):512B/512B
  5. PartitionTable: msdos
  6. NumberStartEndSizeTypeFile system Flags
  7. 132.3kB75.2GB75.2GB primary ntfs boot
  8. 275.2GB500GB425GB extended lba
  9. 575.2GB180GB105GB logical ntfs
  10. 6180GB285GB105GB logical ext4
  11. 7285GB287GB2047MB logical linuxswap(v1)
  12. 8287GB500GB213GB logical ext4
  13. Model:SonyStorageMedia(scsi)
  14. Disk/dev/sdb:4049MB
  15. Sector size (logical/physical):512B/512B
  16. PartitionTable: msdos
  17. NumberStartEndSizeTypeFile system Flags
  18. 11049kB4049MB4048MB primary fat32 boot

5. df

Df是不是一个分区工具,但它打印出挂装文件系统的细节,Df可以列出甚至不是真实的磁盘分区的文件系统。

这里是个简单的例子:

  1. $ df h
  2. FilesystemSizeUsedAvailUse%Mounted on
  3. /dev/sda6 97G43G49G48%/
  4. none 4.0K04.0K0%/sys/fs/cgroup
  5. udev 3.9G8.0K3.9G1%/dev
  6. tmpfs 799M1.7M797M1%/run
  7. none 5.0M05.0M0%/run/lock
  8. none 3.9G12M3.9G1%/run/shm
  9. none 100M20K100M1%/run/user
  10. /dev/sda8 196G154G33G83%/media/13f35f59f0234d98b06f9dfaebefd6c1
  11. /dev/sda5 98G37G62G38%/media/4668484A68483B47

只有以 /dev 开始的文件系统才是实际的设备或分区。

可以使用grep命令来筛选出实际的硬盘分区或文件系统。

  1. $ df h | grep ^/dev
  2. /dev/sda6 97G43G49G48%/
  3. /dev/sda8 196G154G33G83%/media/13f35f59f0234d98b06f9dfaebefd6c1
  4. /dev/sda5 98G37G62G38%/media/4668484A68483B47

要只显示真正的磁盘分区与分区类型,可以这样使用Df:

  1. $ df h output=source,fstype,size,used,avail,pcent,target x tmpfs x devtmpfs
  2. FilesystemTypeSizeUsedAvailUse%Mounted on
  3. /dev/sda6 ext4 97G43G49G48%/
  4. /dev/sda8 ext4 196G154G33G83%/media/13f35f59f0234d98b06f9dfaebefd6c1
  5. /dev/sda5 fuseblk 98G37G62G38%/media/4668484A68483B47

请注意,Df只显示已挂载的文件系统或分区,并不是所有。

6. pydf

它是用Python写的Df的改进版本,以易读的方式打印出所有磁盘分区。

  1. $ pydf
  2. FilesystemSizeUsedAvailUse%Mounted on
  3. /dev/sda6 96G43G48G44.7[####…..]/
  4. /dev/sda8 195G153G32G78.4[#######..]/media/13f35f59f0234d98b06f9dfaebefd6c1
  5. /dev/sda5 98G36G61G37.1[###……]/media/4668484A68483B47

另外,pydf被限制为仅显示已挂载的文件系统。

7. lsblk

列出了所有的块存储设备,包括磁盘分区和光盘驱动器。细节包括所有分区/块总大小和挂载点。

它不会报告分区上的已使用和空闲磁盘空间。

  1. $ lsblk
  2. NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
  3. sda 8:00465.8G0 disk
  4. ├─sda1 8:1070G0 part
  5. ├─sda2 8:201K0 part
  6. ├─sda5 8:5097.7G0 part /media/4668484A68483B47
  7. ├─sda6 8:6097.7G0 part /
  8. ├─sda7 8:701.9G0 part [SWAP]
  9. └─sda8 8:80198.5G0 part /media/13f35f59f0234d98b06f9dfaebefd6c1
  10. sdb 8:1613.8G0 disk
  11. └─sdb1 8:1713.8G0 part
  12. sr0 11:011024M0 rom

如果没有挂载点,这就意味着文件系统未安装,而对于cd/dvd这意味着没有插入光盘。

lsblk能够显示每个设备的更多信息,如标签和型号,更多请查看信息手册。

8. blkid

显示块设备(分区和存储介质)属性,例如UUID和文件系统类型,不报告分区空间。

  1. $ sudo blkid
  2. /dev/sda1: UUID=“5E38BE8B38BE6227” TYPE=“ntfs”
  3. /dev/sda5: UUID=“4668484A68483B47” TYPE=“ntfs”
  4. /dev/sda6: UUID=“6fa5a72a-ba26-4588-a103-74bb6b33a763” TYPE=“ext4”
  5. /dev/sda7: UUID=“94443023-34a1-4428-8f65-2fb02e571dae” TYPE=“swap”
  6. /dev/sda8: UUID=“13f35f59-f023-4d98-b06f-9dfaebefd6c1” TYPE=“ext4”
  7. /dev/sdb1: UUID=“08D1-8024” TYPE=“vfat”

9. hwinfo

hwinfo是一个通用的硬件信息的工具,可以用来打印出磁盘和分区表,但是输出不再像上面的命令那样打印每个分区的详细信息。

  1. $ hwinfo block short
  2. disk:
  3. /dev/sda ST3500418AS
  4. /dev/sdb SonyStorageMedia
  5. partition:
  6. /dev/sda1 Partition
  7. /dev/sda2 Partition
  8. /dev/sda5 Partition
  9. /dev/sda6 Partition
  10. /dev/sda7 Partition
  11. /dev/sda8 Partition
  12. /dev/sdb1 Partition
  13. cdrom:
  14. /dev/sr0 SONY DVD RW DRU190A

总结

parted的输出可以得到简洁而完整的不同分区的概述、其上的文件系统以及总空间。pydf和df它们一样,只是被限制为只显示已挂载文件系统。

fdisk和sfdisk显示完整大量的信息,需要花些时间来解释。cfdisk是一个交互式分区工具,每次显示一个单一的设备。

来尝试下这些命令吧,别忘了在下面评论哟!

(题图来源:http://freegraphicdownload.com/)


via: http://www.binarytides.com/linux-command-check-disk-partitions/

译者:tenght 校对:Caroline

本文由 LCTT 原创翻译,Linux中国 荣誼/div>

未经允许不得转载:演道网 » Linux下掌控磁盘分区的九大神器

赞 (0)
分享到:更多 ()

评论 0

评论前必须登录!

登陆 注册