1、parted
命令介紹
我們Linux系統中有兩種常見的分割槽表,MBR分割槽表(主開機記錄分割槽表)和GPT分割槽表(GUID分割槽表,也叫全域性唯一標識分割槽表),其中:
- MBR分割槽表:支援的最大分割槽是2TB(
1TB=1024GB
)(超過2TB不識別多出來的空間);最多支援4個主分割槽,或3個主分割槽1個擴充套件分割槽。 - GPT分割槽表:支援最大18EB的分割槽(
1EB=1024PB=1024*1024TB
);最多支援128個分割槽,其中1個系統保留分割槽,127個使用者自定義分割槽。
我們前邊所說的fdisk
命令,只識別MBR分割槽表。如果需要對GPT分割槽表進行分割槽,需要使用parted
命令。
注意:
parted
命令也有點小問題,就是命令自身分割槽的時候只能格式化成ext2
檔案系統,不支援ext3
檔案系統,那就更不用說ext4
檔案系統了(截止到CentOS6.8
還是這樣,這裡只是指不能用parted
命令把分割槽格式化成ext4
檔案系統,但是parted
命令還是可以識別ext4
檔案系統的)。不過這沒有太多的影響,因為我們可以先用parted
命令分割槽格式化,再退出parted
命令,用mkfs
命令進行格式化成ext4
檔案系統。
parted
命令感覺還不是太成熟,命令看文件會用就可以了。
一個硬碟的分割槽表改變了,原來的分割槽就會全部消失,該硬碟在/etc/fstab
檔案中配置的自動掛載的配置要提前全部刪除掉,否則下次啟動系統的時候就會報錯。
這裡要注意一點:刪除分割槽和建立分割槽是完全相反的流程。
- 建立分割槽:先加入一個新硬碟,
fdisk
命令進行分割槽設定,mkfs
命令對分割槽進行格式化,之後mount
命令進行分割槽掛載,最後修改/etc/fstab
檔案進行分割槽自動掛載。- 刪除分割槽:先取消掉
/etc/fstab
檔案的分割槽自動掛載,在umount
命令取消分割槽掛載,解除安裝沒有格式化,之後把分割槽刪除掉,然後在移除硬碟。
所以執行parted
命令前一定要刪除分割槽的自動掛載。(這個練習只進行新新增的硬碟用parted
命令分割槽,對建立Linux系統初始的硬碟不用parted
命令分割槽,所以只刪除新增硬碟的自動掛載就可以。)
2、parted
互動模式
執行命令:[root@localhost ~]# parted /dev/sdb(不用寫分割槽號)
命令結果如下,會開啟一個互動模式,並告知你可以通過help
檢視命令列表。
# 用`parted`命令劃分/dev/sdb 硬碟
[root@localhost ~]# parted /dev/sdb
GNU Parted 2.1
使用 /dev/sdb
Welcome to GNU Parted!Type'help'to view a list of commands.
(parted)(等待輸入互動命令的位置)
輸入help
。結果如下:
parted互動命令說明:
check NUMBER
:做一次簡單的檔案系統檢測。cp [FROM-DEVICE] FROM-NUMBER TO-NUMBER
:複製檔案系統到另外一個分割槽。help [COMMAND]
:顯示所有的命令幫助。mklabel,mktable LABEL-TYPE
:建立新的磁碟卷標(分割槽表)。mkfs NUMBER FS-TYPE
:在分割槽上建立檔案系統。mkpart PART-TYPE [FS-TYPE] START END
:建立一個分割槽。mkpartfs PART-TYPE FS-TYPE START END
:建立分割槽,並建立檔案系統。move NUMBER START END
:移動分割槽。name NUMBER NAVME
:給分割槽命名。print [devices|free|list,all|NUMBER]
:顯示分割槽表,活動裝置,空閒空間,所有分割槽。quit
:退出。rescue START END
:修復丟失的分割槽。resize NUMBER START END
:修改分割槽大小。rm NUMBER
:刪除分割槽。select DEVICE
:選擇需要編輯的裝置。set NUMBER FLAG STATE
:改變分割槽標記。toggle [NUMBER [FLAG]]
:切換分割槽表的狀態。unit UNIT
:設定預設的單位。Version
:顯示版本。
3、建立分割槽
(1)檢視分割槽
命令: print [devices|free|list,all|NUMBER]
:使用print
命令可以檢視分割槽表資訊,包括硬碟引數,硬碟大小,扇區大小,分割槽表型別和分割槽資訊。
結果如下:
可以看到sdb
硬碟大小是21.5GB,檔案系統是msdos
(msdos
檔案系統是Windows下的檔案系統,在parted
命令互動中就是表示MBR分割槽表)。
分割槽資訊總共七列,分別是:
Number
:分割槽號。Start
:分割槽起始位置,這裡不再像fdisk
用柱面表示,而是使用Byte更加直觀。End
:分割槽結束位置。Size
:分割槽大小。Type
:分割槽型別。File system
:檔案系統型別。我不是說parted
不支援ext4
檔案系統嗎?注意,我一直都是說parted
不能直接把分割槽,直接格式化成ext4
檔案系統,但是它是可以識別的。- 標誌:
Flags
,就是分割槽的標記。
(2)修改成GPT分割槽表
把硬碟由MBR分割槽表,改成GPT分割槽表,使用的命令如下:
mklabel,mktable LABEL-TYPE
:建立新的磁碟卷標(分割槽表)。
(如果要由GPT分割槽表改成MBR分割槽表,命令為mklabel msdos
)
修改了分割槽表,如果這塊硬碟已經有分割槽了,那麼原有分割槽和分割槽中的資料都會消失,而且需要重啟系統才會生效。
我們在檢視一下當前硬碟分割槽表情況,如下圖所示:
可以看到分割槽表已經變成GPT分割槽表,並且之前硬碟的分割槽資訊已經沒有了。
注意:在說一下,一定要把
/etc/fstab
檔案中和原有分割槽的內容刪除掉(就是修改的硬碟的分割槽的自動掛載),才能重啟動,要不繫統啟動就一定會報錯的。
之後quit
退出parted
命令互動,執行reboot
命令重啟計算機。
重啟完計算機才能執行之後的操作。(不重啟後續操作是無法完成的)
(3)建立分割槽
因為修改過了分割槽表,所以/dev/sdb
硬碟中的所有資料都消失了,所以我們可以重新對這塊硬碟分割槽了。
執行parted
命令,進入硬碟分割槽。
執行分割槽命令,對硬碟進行分割槽,命令如下:
mkpart PART-TYPE [FS-TYPE] START END
:建立一個分割槽。
注意:建立分割槽時,預設檔案系統就只能建立成
ext2
了。
檢視硬碟的分割槽情況,如下圖所示:
已顯示剛剛建立好的分割槽disk1
。因為沒有格式化,所以File system:檔案系統型別
是空著的。
不知道大家注意到了嗎?
我們現在的
Type
這個欄位,也就是分割槽型別的欄位,多了Name
分割槽名欄位。分割槽型別是標識主分割槽、擴充套件分割槽和邏輯分割槽的,不過這種標識只在MBR分割槽表中使用,我們現在已經變成了GPT分割槽表了,所以就不再有Type
型別了。也就說折磨我們很久的主分割槽、擴充套件分割槽和邏輯分割槽的概念不再用了(其實就是突破一個硬碟只有四個分割槽的限制)。
(4)建立檔案系統(格式化)
分割槽分完了,我們還需要對分割槽進行格式化。不過我們已經知道如果使用parted
互動命令格式化的話,只能格式化成ext2
檔案系統。我們這裡是要演示下parted
命令的格式化方法。
parted
互動命令的格式化命令為mkfs
,命令如下:
mkfs NUMBER FS-TYPE
:在分割槽上建立檔案系統。
再檢視硬碟的分割槽情況,如下圖所示:
退出,執行quit
命令。
上圖提示你,如果需要讓分割槽自動掛載,需要手動修改etc/fstab
檔案。
如果要把硬碟格式化成ext4
檔案系統,需要執行mkfs
命令,重新對硬碟進行格式化。(注意不是parted
互動命令中的mkfs
命令,而是系統命令mkfs
)!
執行[root@localhost ~]# mkfs -t ext4 /dev/sdb1
將sdb1
分割槽格式化為ext4
檔案系統之後,就可以進行分割槽的掛載了。
如下圖:
如果你需要開機自動掛載,手動修改etc/fstab
檔案即可。
(5)調整分割槽大小
parted
命令還有一大優勢,就是可以調整分割槽的大小(Windows中也可以實現,不過需要轉換成動態磁碟,要不就需要依賴第三方工具,如硬碟分割槽魔術師)。起始Linux中LVM和RAID是可以支援分割槽調整的,不過這兩種方法也可以看成是動態磁碟方法。使用parted
命令調整分割槽大小要更加簡單。
注意:
parted
調整已經掛載使用的分割槽時,是不會影響分割槽中的資料的,也就是說資料不會丟失。但是一定要先解除安裝分割槽,再調整分割槽大小,否則資料是會出現問題的(有一定機率)。還有要調整大小的分割槽必須已經建立了檔案系統(格式化),否則會報錯。
- 解除安裝硬碟分割槽
sdb1
[root@localhost ~]# umount /dev/sdb1
- 使用
parted
命令調整分割槽大小,執行resize
命令。
resize NUMBER START END
:修改分割槽大小。
[root@localhost ~]# parted /dev/sdb(parted 命令不能加分割槽號)
注意:使用
parted
命令調整分割槽大小,檔案系統必須是ext2
,否則命令執行不了。我們上邊把sdb1
分割槽格式化成ext4
,是不行的。(這個知道就可以了,如果需要調整分割槽大小,用LVM調整就好。)
(6)刪除分割槽
刪除分割槽前提,要先把分割槽的自動掛載在/etc/fstab
檔案刪除,然後用umount
解除安裝掉分割槽的掛載。在執行parted
命令的刪除分割槽命令。
rm NUMBER
:刪除分割槽。
還有件事要注意,parted
中所有的操作都是立即生效,沒有儲存生效的概念。這點和fdisk
互動命令明顯不同,所以所做的所有操作大家要倍加小心。
那麼到底使用fdisk
命令進行分割槽,還是parted
命令進行分割槽呢?這個完全看個人習慣,我更加習慣fdisk
命令。