歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> Linux下掌控磁盤分區的九大神器

Linux下掌控磁盤分區的九大神器

日期:2017/2/28 14:30:05   编辑:Linux教程

在這篇文章中,我們來了解一些用來檢查你的系統分區的一些命令,這些命令將檢查每個磁盤的分區情況和其它細節,例如總空間容量,已用完的空間和文件系統等。

像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+71680-71681-73400953+7 HPFS/NTFS/exFAT
  8. /dev/sda2 71680+476938405259-414984520+ 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 0-000Empty
  25. /dev/sdb3 0-000Empty
  26. /dev/sdb4 0-000Empty

3. cfdisk

Cfdisk是一個基於ncurses(提供字符終端處理庫,包括面板和菜單)的帶有交互式用戶界面的Linux分區編輯器,它可以用來列出現有分區以及創建或修改這些分區。

下面是一個如何使用Cfdisk來列出分區的例子。

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 linux-swap(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/13f35f59-f023-4d98-b06f-9dfaebefd6c1
  11. /dev/sda5 98G37G62G38%/media/4668484A68483B47

只有以 /dev 開始的文件系統才是實際的設備或分區。

可以使用grep命令來篩選出實際的硬盤分區或文件系統。

  1. $ df -h | grep ^/dev
  2. /dev/sda6 97G43G49G48%/
  3. /dev/sda8 196G154G33G83%/media/13f35f59-f023-4d98-b06f-9dfaebefd6c1
  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/13f35f59-f023-4d98-b06f-9dfaebefd6c1
  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/13f35f59-f023-4d98-b06f-9dfaebefd6c1
  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/13f35f59-f023-4d98-b06f-9dfaebefd6c1
  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 DRU-190A

總結

parted的輸出可以得到簡潔而完整的不同分區的概述、其上的文件系統以及總空間。pydf和df它們一樣,只是被限制為只顯示已掛載文件系統。

fdisk和sfdisk顯示完整大量的信息,需要花些時間來解釋。cfdisk是一個交互式分區工具,每次顯示一個單一的設備。

來嘗試下這些命令吧,別忘了在下面評論喲!

(題圖來源:http://freegraphicdownload.com/)


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

譯者:tenght 校對:Caroline

本文由 LCTT 原創翻譯,Linux中國 榮譽推出

Copyright © Linux教程網 All Rights Reserved