作為Linux管理員,我們需要一次又一次地查看硬盤的分區表。這有助於我們通過為進一步分區騰出空間來重新組織舊驅動器,並在必要時為新驅動器創建空間。您可以在硬盤上創建不超過四個主分區,但可以在多個邏輯分區或擴展分區上創建,具體取決於系統上安裝的硬盤大小。
分區表包含有關所有邏輯磁盤或分區的信息,位於硬盤的0扇區中。您的設備在分區表中列為/dev/sda,/dev/sdb等。 sd *設備是指系統上的SCSI或SATA磁盤。例如,/dev/sda將是第一個SATA/SCSI硬盤,/dev/sdb將是第二個SATA/SCSI硬盤。
本文列出並說明了使用各種Linux命令查看設備的分區表。我們將使用CLI來運行這些命令。您可以通過系統Dash或Ctrl + Alt + T快捷方式打開Ubuntu命令行終端。
我們在Ubuntu 18.04 LTS系統上運行了本文中提到的命令和過程。
通過lsblk命令查看分區表
lsblk命令列出系統的所有塊設備及其邏輯分區。在終端中輸入以下命令以列出分區表:
lsblk
- NAME - 設備名稱
- MAJ:MIN -Major和Min Device number
- RM-設備是否可拆卸(1)或不可拆卸(0)
- SIZE - 設備大小
- RO -設備是只讀的(1)還是不是(0)
- TYPE - 設備類型,即,如果它是磁盤或分區等。
- MOUNTPOINT - 設備的安裝點(如果適用)。
在上面的輸出中,您可以看到我的sda設備從sda1到sda5的所有邏輯分區。以下是七列所示:
使用fdisk命令獲取分區列表
代表格式化磁盤或固定磁盤的fdisk命令主要用於創建或刪除硬盤分區。 它也用於格式化磁盤,但是,在這里我們將使用它來列出分區表,方法是使用特定的標志。
-l標志與fdisk一起使用以列出指定設備的分區表,然后退出。 如果未提及任何設備名稱,fdisk將使用/proc/partitions文件中提到的設備。
-l選項顯示指定設備的分區表,然后退出。 如果沒有給出設備,則使用/proc/partitions中提到的那些設備(如果存在)。 輸入以下命令:
linuxidc@linuxidc:~/www.linuxidc.com$ sudo fdisk -l
向下滾動時,輸出顯示分區表,如下所示:
Disk /dev/loop0:34.7 MiB,36323328 字節,70944 個扇區
單元:扇區 / 1 * 512 = 512 字節
扇區大小(邏輯/物理):512 字節 / 512 字節
I/O 大小(最小/最佳):512 字節 / 512 字節
......省略......
linuxidc@linuxidc:~/www.linuxidc.com$ fdisk -l /dev/sda
設備 啟動 起點 末尾 扇區 大小 Id 類型
/dev/sda1 * 2048 41940991 41938944 20G 8e Linux LVM
這是各欄目所示的內容:
- 設備 - 設備/邏輯分區的名稱
- 啟動 -This列中的*符號表示相應的分區包含用於引導系統的引導加載程序信息
- 起點 - 分配給此分區的起始扇區。
- 末尾 - 分配給此分區的結束扇區。
- 扇區 - 為此分區分配的扇區數。
- 大小 - 分區的大小。
- ID-系統用於此分區的ID
- 類型 - 此分區使用的文件類型或系統。
使用sfdisk命令查看分區
雖然sfdisk命令主要用於操作Linux上的分區表,但它也可以用於通過使用以下語法列出設備的分區表:
sudo sfdisk -l/dev/devicename
例如:
sudo sfdisk -l /dev/sda
如您所見,此命令提供與fdisk命令相同的分區表信息。 您只能以授權的sudo用戶身份查看fdisk和sfdisk命令的結果。
使用parted命令獲取硬盤分區
列出設備分區表的另一種方法是通過parted命令。 parted命令在前面提到的fdisk和sfdisk命令上有優勢,因為前者沒有列出大小超過2 TB的分區。
使用以下語法查看設備的分區表:
sudo parted /dev/devicename
例子:
linuxidc@linuxidc:~/www.linuxidc.com$ sudo parted /dev/sda
GNU Parted 3.2
使用 /dev/sda
歡迎使用 GNU Parted! 輸入 'help'可獲得命令列表.
(parted)
該命令將進入“(parted)”提示模式。 您可以在此處輸入以下值,以幫助您查看設備的分區表。
- Unit GB:通過此輸入,您可以選擇以GB顯示的輸出。
- Unit TB:通過此輸入,您可以選擇要在TB中顯示的輸出。
輸入您的選擇,之后系統將顯示相應的分區表。
輸入help命令,會列出所有可用的命令。常用的是cp,rm,resize,resure,set,mkparfs,print。
1)print用於顯示當前的分區情況
2)set可以設置分區的標志:set 1 boot on
3)mkpartfs創建分區:mkpartfs primary linux-swap 1KB 2MB
4)rm刪除分區,可用resure恢復
5)cp將拷貝分區內容到新的分區
6)resize可以改變分區的大小
實際的應用場景:無損壓縮大分區
用resize可以修改分區的大小,但是要做到無損,只能減小該分區的結束位置,因為分區表的信息在起始的位置。但是如何知道,該分區已經占用了多少空間。可以用df命令來查看:有一項是available,注意不能用總容量-used部分計算,原因就不說了吧。這樣resize可以保證無損壓縮。
注意使用前,要先unmount該分區。交換分區要swapoff,才能修改。修改完后用swapon打開,swapon -s可以顯示交換分區使用情況。
要退出parted命令模式,只需鍵入quit,然后單擊Enter。
或者,您可以使用以下命令列出系統所有塊設備上的所有分區布局:
linuxidc@linuxidc:~/www.linuxidc.com$ sudo parted -l
由於sda是我唯一的塊設備,因此該命令僅顯示該分區。
注意:主要用於列出SCSI設備及其屬性的lsscsi命令還列出了某些系統上的分區表。 您可以通過以下命令安裝它:$ sudo apt-get install lsscsi
通過我們在本文中介紹的各種Linux命令,您現在可以查看硬盤設備的分區表。 一些命令有許多其他基本功能,但由於它們也列出了分區表,我們已將它們包含在我們的文章中。 您現在可以更好地管理存儲設備的空間和分區。