分區命令parted
詳解
一、概述
通常我們用的比較多的分區工具是
fdisk
命令,但由於fdisk
只支持MBR分區,MBR分區表最大支撐2T的磁盤,所以無法划分大於2T的分區。而parted
工具可以划分單個分區大於2T的GPT格式的分區,也可以划分普通的MBR分區。
parted命令是由GNU組織開發的一款功能強大的磁盤分區和分區大小調整工具。GPT格式的磁盤相當於原來MBR磁盤中原來保留4個partition table的4 16個字節,只留第一個16個字節,類似於擴展分區,真正的partition table在512字節之后,GPT分區方式沒有四個主分區的限制,** 最多可達到128個主分區 **。下面我們看下parted命令的用法。
1.語法結構
parted [選項]… [設備 [命令 [參數]…]…]
二、選項
選項 描述
-h –help 顯示此求助信息
-l –list 列出所有設別的分區信息
-i –interactive 在必要時,提示用戶
-s –script 從不提示用戶
-v –version 顯示版本
三、操作命令
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 NAME 給分區命名
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 顯示版本
四、交互操作實例:
1、選擇分區硬盤
首先類似fdisk一樣,先選擇要分區的硬盤,此處為/dev/hdb: ((parted)表示在parted中輸入的命令,其他為自動打印的信息)
[root@my-linux ~]# parted /dev/hdb
GNU Parted 1.8.1
Using /dev/hdb
Welcome to GNU Parted! Type 'help' to view a list of commands.
2、創建分區
選擇了/dev/hdb作為我們操作的磁盤,接下來需要創建一個分區表(在parted中可以使用help命令打印幫助信息):
(parted) mklabel
New disk label type? gpt (我們要正確分區大於2TB的磁盤,應該使用gpt方式的分區表,輸入gpt后回車)
3、完成分區操作
創建好分區表以后,接下來就可以進行分區操作了,執行mkpart命令,分別輸入分區名稱,文件系統和分區 的起止位置
(parted) mkpart
Partition name? []? dp1
File system type? [ext2]? xfs
Start? 0 (可以用百分比表示,比如Start? 0% , End? 50%)
End? 500GB
4、驗證分區信息
分好區后可以使用print命令打印分區信息,下面是一個print的樣例
(parted) print
Model: VBOX HARDDISK (ide)
Disk /dev/hdb: 3841GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Number Start End Size File system Name Flags
1 17.4kB 500GB 500GB dp1
5、刪除分區示例
如果分區錯了,可以使用rm命令刪除分區,比如我們要刪除上面的分區,然后打印刪除后的結果
(parted)rm 1 #rm后面使用分區的號碼,就是用print打印出來的Number
(parted) print
Model: VBOX HARDDISK (ide)
Disk /dev/hdb: 3841GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Number Start End Size File system Name Flags
7、格式化操作
在交互狀態下,完成以后我們可以使用quit
命令退出parted並使用系統的mkfs
命令對分區進行格式化。
[root@my-linux ~]# fdisk -l
WARNING: GPT (GUID Partition Table) detected on '/dev/hdb'! The util fdisk doesn't support GPT. Use GNU Parted.
Disk /dev/hdb: 3841.0 GB, 3841022206976 bytes
255 heads, 63 sectors/track, 267349 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/hdb1 1 267350 2147482623+ ee EFI GPT
[root@my-linux ~]# mkfs.xfs /dev/hdb1
[root@my-linux ~]# mkfs.xfs /dev/hdb2
[root@my-linux ~]# mkdir /data1 /data2
[root@my-linux ~]# mount /dev/hdb1 /data1
[root@my-linux ~]# mount /dev/hdb2 /data2
8、交互創建分區的完整示示例
按照上面的方法把整個硬盤都分好區,下面是一個分完后的樣例
(parted) mkpart
Partition name? []? dp1
File system type? [ext2]? xfs
Start? 0
End? 500GB
(parted) mkpart
Partition name? []? dp2
File system type? [ext2]? xfs
Start? 500GB
End? 3841GB
(parted) print
Model: VBOX HARDDISK (ide)
Disk /dev/hdb: 3841GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Number Start End Size File system Name Flags
1 17.4kB 500GB 500GB dp1
2 500GB 3841GB 1699GB dp2
五、非交互方式
1、創建分區表
parted /dev/sdl mklabel gpt
2、將硬盤所有容量分給主分區
parted /dev/sdl mkpart primary 0% 100%
3、查詢磁盤的已有分區
parted /dev/sdl print
4、查詢硬盤分區
fdisk -l
or
lsblk
5、格式化分區
mkfs -t xfs /dev/sdl1
6、查詢/dev/sdl1的blkid
blkid /dev/sdl1
7、修改/etc/fstab
vi /etc/fstab
編輯/etc/fstab
使開機可知道掛載文件系統。
8、掛載文件系統,查詢
mount -a
df -h
六、非交互方式示例
創建gpt分區表
[root@my-linux ~]# parted /dev/sdb mklabel gpt
Information: You may need to update /etc/fstab.
划分3個分區
[root@my-linux ~]# parted /dev/sdb mkpart primary 0% 27%
Information: You may need to update /etc/fstab.
[root@my-linux ~]# parted /dev/sdb mkpart primary 27% 54%
Information: You may need to update /etc/fstab.
[root@my-linux ~]# parted /dev/sdb mkpart primary 54% 81%
Information: You may need to update /etc/fstab.
打印分區
[root@my-linux ~]# parted /dev/sdb print
Model: HP LOGICAL VOLUME (scsi)
Disk /dev/sdb: 3841GB
Sector size (logical/physical): 512B/4096B
Partition Table: gpt
Disk Flags:
Number Start End Size File system Name Flags
1 2097kB 1037GB 1037GB primary
2 1037GB 2074GB 1037GB primary
3 2074GB 3111GB 1037GB primary
刪除分區
刪除分區的命令是parted /dev/sdb rm 1
其中最后的數字 1 表示分區編號。
[root@my-linux ~]# parted /dev/sdb rm 1
Information: You may need to update /etc/fstab.
[root@my-linux ~]# parted /dev/sdb rm 2
Information: You may need to update /etc/fstab.
[root@my-linux ~]# parted /dev/sdb rm 3
Information: You may need to update /etc/fstab.
[root@my-linux ~]# parted /dev/sdb print
Model: HP LOGICAL VOLUME (scsi)
Disk /dev/sdb: 3841GB
Sector size (logical/physical): 512B/4096B
Partition Table: gpt
Disk Flags:
Number Start End Size File system Name Flags
[root@my-linux ~]#
七、MBR & GPT
MBR:MBR分區表(即主引導記錄)大家都很熟悉。所支持的最大卷:2T,而且對分區有限制:最多4個主分區或3個主分區加一個擴展分區
GPT: GPT(即GUID分區表)。是源自EFI標准的一種較新的磁盤分區表結構的標准,是未來磁盤分區的主要形式。與MBR分區方式相比,具有如下優點。突破 MBR 4個主分區限制,每個磁盤最多支持128個分區。支持大於2T的分區,最大卷可達18EB。