Linux下掌控磁碟分割槽的九大神器

贊 回覆發表於2014-07-13

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

像fdisk,sfdisk和cfdisk命令這樣的常規分割槽工具,不僅可以顯示分割槽資訊,還可以修改。

1. fdisk

Fdisk是檢查磁碟上分割槽的最常用命令,fdisk命令可以顯示分割槽和細節,如檔案系統型別,但是它並不報告每個分割槽的位元組大小。

$ sudo fdisk -l

Disk /dev/sda: 500.1 GB, 500107862016 bytes
255 heads, 63 sectors/track, 60801 cylinders, total 976773168 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: 0x30093008

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *          63   146801969    73400953+   7  HPFS/NTFS/exFAT
/dev/sda2       146802031   976771071   414984520+   f  W95 Ext'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: 60801 cylinders, 255 heads, 63 sectors/track
Warning: extended partition does not start at a cylinder boundary.
DOS and Linux will interpret the contents differently.
Units = mebibytes of 1048576 bytes, blocks of 1024 bytes, counting from 0

   Device Boot Start   End    MiB    #blocks   Id  System
/dev/sda1   *     0+ 71680- 71681-  73400953+   7  HPFS/NTFS/exFAT
/dev/sda2     71680+ 476938  405259- 414984520+   f  W95 Ext'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 of 1048576 bytes, blocks of 1024 bytes, counting from 0

   Device Boot Start   End    MiB    #blocks   Id  System
/dev/sdb1   *     1   3860   3860    3952640    b  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/sdb2         0      -      0          0    0  Empty
/dev/sdb3         0      -      0          0    0  Empty
/dev/sdb4         0      -      0          0    0  Empty

3. cfdisk

Cfdisk是一個基於ncurses(提供字元終端處理庫,包括皮膚和選單)的帶有互動式使用者介面的Linux分割槽編輯器,它可以用來列出現有分割槽以及建立或修改這些分割槽。

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

linux cfdisk disk partitions

Cfdisk一次只能列出一個分割槽,所以如果你需要看某一磁碟的細節,可以把該磁碟的裝置名作為Cfdisk的引數。

$ sudo cfdisk /dev/sdb

4. parted

Parted是另一個命令列實用程式,可以列出分割槽;如果需要的話,也可進行修改。

下面是一個例子,列出了詳細的分割槽資訊。

$ sudo parted -l
Model: ATA ST3500418AS (scsi)
Disk /dev/sda: 500GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos

Number  Start   End     Size    Type      File system     Flags
 1      32.3kB  75.2GB  75.2GB  primary   ntfs            boot
 2      75.2GB  500GB   425GB   extended                  lba
 5      75.2GB  180GB   105GB   logical   ntfs
 6      180GB   285GB   105GB   logical   ext4
 7      285GB   287GB   2047MB  logical   linux-swap(v1)
 8      287GB   500GB   213GB   logical   ext4


Model: Sony Storage Media (scsi)
Disk /dev/sdb: 4049MB
Sector size (logical/physical): 512B/512B
Partition Table: msdos

Number  Start   End     Size    Type     File system  Flags
 1      1049kB  4049MB  4048MB  primary  fat32        boot

5. df

Df是不是一個分割槽工具,但它列印出掛裝檔案系統的細節,Df可以列出甚至不是真實的磁碟分割槽的檔案系統。

這裡是個簡單的例子:

$ df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda6        97G   43G   49G  48% /
none            4.0K     0  4.0K   0% /sys/fs/cgroup
udev            3.9G  8.0K  3.9G   1% /dev
tmpfs           799M  1.7M  797M   1% /run
none            5.0M     0  5.0M   0% /run/lock
none            3.9G   12M  3.9G   1% /run/shm
none            100M   20K  100M   1% /run/user
/dev/sda8       196G  154G   33G  83% /media/13f35f59-f023-4d98-b06f-9dfaebefd6c1
/dev/sda5        98G   37G   62G  38% /media/4668484A68483B47

只有以 /dev 開始的檔案系統才是實際的裝置或分割槽。

可以使用grep命令來篩選出實際的硬碟分割槽或檔案系統。

$ df -h | grep ^/dev
/dev/sda6        97G   43G   49G  48% /
/dev/sda8       196G  154G   33G  83% /media/13f35f59-f023-4d98-b06f-9dfaebefd6c1
/dev/sda5        98G   37G   62G  38% /media/4668484A68483B47

要只顯示真正的磁碟分割槽與分割槽型別,可以這樣使用Df:

$ df -h --output=source,fstype,size,used,avail,pcent,target -x tmpfs -x devtmpfs
Filesystem     Type     Size  Used Avail Use% Mounted on
/dev/sda6      ext4      97G   43G   49G  48% /
/dev/sda8      ext4     196G  154G   33G  83% /media/13f35f59-f023-4d98-b06f-9dfaebefd6c1
/dev/sda5      fuseblk   98G   37G   62G  38% /media/4668484A68483B47

請注意,Df只顯示已掛載的檔案系統或分割槽,並不是所有。

6. pydf

它是用Python寫的Df的改進版本,以易讀的方式列印出所有磁碟分割槽。

$ pydf
Filesystem Size Used Avail Use%             Mounted on                                 
/dev/sda6   96G  43G   48G 44.7 [####.....] /                                          
/dev/sda8  195G 153G   32G 78.4 [#######..] /media/13f35f59-f023-4d98-b06f-9dfaebefd6c1
/dev/sda5   98G  36G   61G 37.1 [###......] /media/4668484A68483B47

另外,pydf被限制為僅顯示已掛載的檔案系統。

7. lsblk

列出了所有的塊儲存裝置,包括磁碟分割槽和光碟驅動器。細節包括所有分割槽/塊總大小和掛載點。

它不會報告分割槽上的已使用和空閒磁碟空間。

$ lsblk
NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda      8:0    0 465.8G  0 disk 
├─sda1   8:1    0    70G  0 part 
├─sda2   8:2    0     1K  0 part 
├─sda5   8:5    0  97.7G  0 part /media/4668484A68483B47
├─sda6   8:6    0  97.7G  0 part /
├─sda7   8:7    0   1.9G  0 part [SWAP]
└─sda8   8:8    0 198.5G  0 part /media/13f35f59-f023-4d98-b06f-9dfaebefd6c1
sdb      8:16   1   3.8G  0 disk 
└─sdb1   8:17   1   3.8G  0 part 
sr0     11:0    1  1024M  0 rom

如果沒有掛載點,這就意味著檔案系統未安裝,而對於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/sdb             Sony Storage Media
partition:
  /dev/sda1            Partition
  /dev/sda2            Partition
  /dev/sda5            Partition
  /dev/sda6            Partition
  /dev/sda7            Partition
  /dev/sda8            Partition
  /dev/sdb1            Partition
cdrom:
  /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中國 榮譽推出

相關文章