parted分區命令


Parted是一個比fdisk更高級的工具,它支持多種分區表格式,包括MS-DOS和GPT。它允許用戶創建,刪除,調整大小,縮小,移動和復制分區,重新組織磁盤使用,以及將數據復制到新硬盤,但在縮小分區時它沒有按預期工作,我大部分時間都得到了錯誤,所以我建議用戶不要縮小分區,GParted是分手的GUI前端。作為一種設計用於Linux的工具,它沒有構建成處理與fdisk關聯的多種分區類型,但是,它可以處理最常見的分區格式,包括:ext2、ext3、fat16、fat32、NTFS、ReiserFS、JFS、XFS、UFS、HFS以及Linux交換分區。

這里要主要parted的操作是即刻生效的,所以操作前要認真想好

一、parted命令格式

用法:parted  [選項]  [設備]  [指令]
將帶有“參數”的命令應用於“設備”。如果沒有給出“命令”,則以交互模式運行。

選項:
-h,   顯示此求助信息
-l,   列出系統系統中所有的磁盤設備,和fdisk -l命令的作用差不多。
-m,   進入交互模式,如果后面不加設備則對第一個磁盤進行操作
-s,   腳本模式
-v,    顯示版本

設備:磁盤設備名稱,如/dev/sda

指令:如果沒有給出“指令”,則parted將進入交互模式運行。

align-check       檢查分區N的類型(min|opt)是否對齊
help          打印通用求助信息,或關於[指令]的幫助信息
mklabel        創建新的磁盤標簽 (分區表)
mkpart        創建一個分區
name         給指定的分區命名
print              打印分區表,或者分區
quit           退出程序
rescue        修復丟失的分區
resizepart         調整分區大小
rm          刪除分區
select          選擇要編輯的設備,默認只對指定的設備操作,這里可以改變指定的設備
disk_set        更改選定設備上的標志
disk_toggle     切換選定設備上的標志狀態
set          更改分區的標記
toggle          設置或取消分區的標記
unit          設置默認的單位
version        顯示版本信息

二、parted交互模式分區管理


與fdisk類似,parted可以使用命令“parted 設備名”進入交互模式。進入交互模式后,可以通過parted的各種指令對磁盤分區進行管理。

1、新建GPT分區
這里要主要parted的操作是即刻生效的,所以操作前要認真想好。

root@debian:~# parted /dev/sdb      #對磁盤/dev/sdb進行分區
GNU Parted 3.2
Using /dev/sdb
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted)               #如果忘記有那些可用的命令按兩次Tab鍵可以顯示所以可用的指令,也支持Tab命令補齊,和上下查找歷史記。可用命令如下:
align-check    disk_toggle   mklabel    mktable   print    rescue   resizepart    select   toggle    version
disk_set    help    mkpart    name    quit    resize    rm    set   unit
(parted) help mklable        #查看mklable命令的用法及支持的分區表
mklabel,mktable LABEL-TYPE create a new disklabel (partition table)             #用法,用mktable也是一樣的作用
LABEL-TYPE is one of: atari, aix, amiga, bsd, dvh, gpt, mac, msdos, pc98, sun, loop         #支持的分區類型
(parted) mklable gpt            #創建gpt分區表,如果以存在分區表也可以通過這里命令更改
Warning: The existing disk label on /dev/sdb will be destroyed and all data on this disk will be lost. Do you want to continue?
Yes/No? yes                # 警告用戶磁盤上的數據將會被銷毀,詢問是否繼續,我們這里是新的磁盤,輸入yes后回車
(parted) print                #查看分區表的信息
Model: ATA VBOX HARDDISK (scsi)
Disk /dev/sdb: 5369MB
Sector size (logical/physical): 512B/512B
Partition Table: gpt           #分區表以是gpt格式
Disk Flags:

Number   Start   End    Size    File system   Name    Flags

(parted) mkpart       #輸入mkpart新建分區,如果輸入mkpart指令不帶任何參數,parted會一步步提示用戶輸入相關信息最終完成創建,如下所示:
Partition name? []?       #分區的名字,這里可以直接回車不給分區命名,也可以輸入用來標記的名字
File system type? [ext2]?       #分區被格式化的文件系統,可以按兩次Tab鍵查看支持的文件系統
affs0   affs6   amufs3   btrfs    freebsd-ufs   linux-swap   ntfs
affs1    affs7    amufs4    ext2    hfs   linux-swap(new)   reiserfs
affs2    amufs    amufs5    ext3   hfs+ linux-swap(old)    sun-ufs
affs3   amufs0    apfs1    ext4   hfsx   linux-swap(v0)   swsusp
affs4    amufs1   apfs2   fat16   hp-ufs   linux-swap(v1) xfs
affs5    amufs2    asfs fat32   jfs    nilfs2   zfs
File system type? [ext2]? ext4      #輸入被格式化的文件系統為ext4,這里必須要輸入文件系統
Start?   0%                  #開始位置,這里要輸入0%或2048s或1M都可以但是不要輸入別的,下面有說明。
End?   1G               #結束位置,默認單位為compact,我們想要用其他單位必須在數字后面加上單位
(parted) mkpart  pname  ext4  1G  2G     #如果想一步就把分區創建好可以像左邊一樣,pname表示分區名這樣分區這里必須有,后面3項目分別是文件系統,開始位置,結束位置
(parted) mkpart pname   2G  100%      #如果不想創建文件系統這里可以不加這個選項,后面兩項分別是開始位置,和結束位置,100%表示使用全部剩余空間
(parted) p                  #輸入print查看分區情況,如果指令是唯一的直接輸入指令的首字母也可以。
Model: ATA VBOX HARDDISK (scsi)
Disk /dev/sdb: 5369MB               #磁盤的總容量
Sector size (logical/physical): 512B/512B      #扇區的大小
Partition Table: gpt
Disk Flags:

Number    Start   End      Size    File system    Name   Flags
1         1049kB      1000MB    999MB    ext4               #通過一步步創建的第一個分區
2         1000MB     2000MB    999MB    ext4        pname          #通過一步就創建的分區
3         2000MB     5368MB    3368MB            pname          #創建不帶文件系統的分區


如果Start位置輸入的不是0%或2048s或1M或0G的數值,分區結束會有這個的提示,Warning: The resulting partition is not properly aligned for best performance.Ignore/Cancel? (意思是說警告:生成的分區沒有正確對齊以獲得最佳性能。忽略/取消? 我們可以輸入Ignore以忽略,但是這樣並不好)
這是因為在512B扇區的磁盤驅動器上,Parted希望分區從2048的倍數(即1 MiB對齊)扇區開始。

2、設置默認的單位
(parted) unit         #輸入unit更改默認單位,如果不知道支持那些單位直接回車
Unit? [compact]?      #按兩次Tab鍵,列出支持的單位,在parted交互模式下不知道怎么輸入就先按兩次Tab鍵看看有什么結果,很好用
% B chs compact cyl GB GiB kB kiB MB MiB s TB TiB
Unit? [compact]?  GB     #輸入更改后的默認單位
(parted) p
Model: ATA VBOX HARDDISK (scsi)
Disk /dev/sdb: 5.37GB           #默認單位以改稱GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:

Number     Start       End     Size    File system   Name   Flags
1       0.00GB   1.00GB         1.00GB    ext4                #默認單位以改稱GB
2       1.00GB   2.00GB     1.00GB    ext4     pname
3       2.00GB   5.37GB  3.37GB         pname

3、更改分區名

(parted) name                 #輸入name指令更改分區名,輸入后直接回車
Partition number? 3            #輸入要更改名的分區號
Partition name? [pname]? namep     #輸入新的名字
(parted) p
Model: ATA VBOX HARDDISK (scsi)
Disk /dev/sdb: 5.37GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:

Number   Start       End           Size   File system   Name    Flags
1      0.00GB   1.00GB        1.00GB    ext4 
2         1.00GB    2.00GB       1.00GB       ext4     pname
3      2.00GB    5.37GB   3.37GB namep            #名稱已經更改

4、配置分區的標記
parted的分區標記相當於fdisk gdisk里面的分區類型

(parted) set                   #輸入set更改分區標記,輸入后直接回車
Partition number? 3                #更改標記的分區
Flag to Invert?                     #輸入更改標記的類型,按二次Tab鍵查看支持的類型
atvrecv boot esp hp-service legacy_boot msftdata prep
bios_grub diag hidden irst lvm msftres raid
Flag to Invert? lvm                  #標記為lvm類型
New state? [on]/off? on                #輸入on回車表示打開
(parted) p
Model: ATA VBOX HARDDISK (scsi)
Disk /dev/sdb: 5.37GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:

Number    Start          End         Size    File system   Name   Flags
1            0.00GB    1.00GB   1.00GB    ext4
2           1.00GB     2.00GB   1.00GB    ext4     pname
3        2.00GB    5.37GB   3.37GB           pname   lvm       #分區的標記已經成效


(parted) set                      #取消標記操作
Partition number? 3
Flag to Invert? lvm
New state? on/[off]? off             #添加標記和取消標記的主要區別就在這里,這里要輸入off來關閉標記
(parted) p
Model: ATA VBOX HARDDISK (scsi)
Disk /dev/sdb: 5.37GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:

Number       Start     End      Size   File system    Name   Flags
1        0.00GB    1.00GB  1.00GB     ext4
2        1.00GB    2.00GB      1.00GB    ext4           pname
3        2.00GB       5.37GB       3.37GB          pname          #分區的標記已經取消

5、刪除分區

(parted) rm          #輸入刪除指令rm直接回車,如果后面加上分區號在回車就可以直接刪除分區
Partition number? 3      #輸入要刪除的分區,這里操作一定要慎重,一旦回車就生效了,是不可退的。
(parted) p
Model: ATA VBOX HARDDISK (scsi)
Disk /dev/sdb: 5.37GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:

Number    Start    End    Size    File system    Name   Flags       #成功刪除了分區
1      0.00GB    1.00GB  1.00GB
2          1.00GB   2.00GB  1.00GB            pname

6、查看剩余可用的空間等信息

(parted) p              #先查看分區的信息
Model: ATA VBOX HARDDISK (scsi)
Disk /dev/sdb: 5.37GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:

Number    Start    End    Size    File system   Name   Flags
1      0.00GB   1.00GB   1.00GB
2         1.00GB    2.00GB   1.00GB         pname

可用分區的容量需要用Disk /dev/sdb: 這行提供的總容量減去最后一個分區的結束位置的容量,這里舉例中可用分區容量為:5.37GB-2.00GB=3.37G

 

7、調整分區大小
盡量不要對分區進行調整,可能會丟失數據,如果要調整也要先備份數據

(parted) resizepart         #輸入調整分區的指令resizepart直接回車,這里增加容量,增加容量的分區后面必須得有可用的未分配的分區
Partition number? 2       #輸入要更改的分區
End? [2.00GB]? 4G           #擴容后這個分區的結束位置,這個要根據擴容前分區結束的位置和增加的容量來確定最終的分區位置
(parted) p
Model: ATA VBOX HARDDISK (scsi)
Disk /dev/sdb: 5.37GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:

Number   Start      End          Size    File system   Name    Flags
1         0.00GB   1.00GB   1.00GB
2        1.00GB    4.00GB    3.00GB   ext4      pname

(parted) resizepart               #這里減少容量
Partition number? 2
End? [4.00GB]? 3G
Warning: Shrinking a partition can cause data loss, are you
sure you want to continue?
Yes/No? yes                   #減少容量會有這樣的警告:收縮分區會導致數據丟失,你確定要繼續嗎?
(parted)

三、非交互式parted分區命令


非交互模式建議把要操作的命令都在文本文件中寫出來,確認無誤后在進行配置。

1、創建GPT分區表

root@debian:~# parted /dev/sdc mklabel gpt            #通過這里命令直接創建GPT分區表
Information: You may need to update /etc/fstab.

root@debian:~# parted /dev/sdc print             #通過這里命令直接查看分區信息,print改稱p也可以
Model: ATA VBOX HARDDISK (scsi)
Disk /dev/sdc: 5369MB
Sector size (logical/physical): 512B/512B
Partition Table: gpt                      #創建成功
Disk Flags:

Number   Start   End   Size    File system    Name    Flags

root@debian:~#

2、創建分區

root@debian:~# parted /dev/sdc mkpart pname 0G 1G   #創建1G容量的分區pname為分區名必須添加,這里不能直接添加文件系統類型,后面是起始和結束位置

root@debian:~# parted /dev/sdc p
Model: ATA VBOX HARDDISK (scsi)
Disk /dev/sdc: 5369MB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:

Number   Start         End          Size    File   system   Name    Flags
1     1049kB   1000MB    999MB            pname            #成功創建,起始位置是0G也會從2048扇區開始創建。

3、更改默認顯示單位

root@debian:~# parted /dev/sdc unit GB print     #需要在查看指令print前添加unit GB指令來以GB顯示
Model: ATA VBOX HARDDISK (scsi)
Disk /dev/sdc: 5.37GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:

Number   Start        End     Size    File system    Name    Flags
1         0.00GB    1.00GB   1.00GB           pname
2         1.00GB    2.00GB   1.00GB           pname
3         2.00GB    5.37GB   3.37GB           pname

4、更改分區名
root@debian:~# parted /dev/sdc name 3 namep         #更改分區3的分區名
root@debian:~# parted /dev/sdc print
Model: ATA VBOX HARDDISK (scsi)
Disk /dev/sdc: 5369MB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:

Number   Start     End     Size    File system    Name   Flags
1         1049kB    1000MB    999MB           pname
2         1000MB      2000MB    999MB            pname
3      2000MB  5368MB   3368MB          namep          #更改成功


5、配置分區的標記

root@debian:~# parted /dev/sdc set 3 lvm            #為分區3添加lvm標記
New state? [on]/off? on                        #輸入on回車表示打開
Information: You may need to update /etc/fstab.

root@debian:~# parted /dev/sdc print
Model: ATA VBOX HARDDISK (scsi)
Disk /dev/sdc: 5369MB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:

Number    Start    End      Size    File system    Name    Flags
1          1049kB    1000MB    999MB            pname
2          1000MB   2000MB    999MB            pname
3          2000MB   5368MB    3368MB          namep   lvm

root@debian:~# parted /dev/sdc set 3 lvm            #取消分區3的lvm標記
New state? on/[off]? off                      #添加標記和取消標記的主要區別就在這里,這里要輸入off來關閉標記
Information: You may need to update /etc/fstab.

root@debian:~# parted /dev/sdc print
Model: ATA VBOX HARDDISK (scsi)
Disk /dev/sdc: 5369MB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:

Number    Start        End      Size    File system    Name    Flags
1          1049kB   1000MB    999MB             pname
2          1000MB     2000MB    999MB           pname
3      2000MB      5368MB    3368MB           namep              #取消分區3的lvm標記成功

6、刪除分區

root@debian:~# parted /dev/sdc rm 3            #刪除分區3
Information: You may need to update /etc/fstab.

root@debian:~# parted /dev/sdc print
Model: ATA VBOX HARDDISK (scsi)
Disk /dev/sdc: 5369MB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:

Number    Start       End       Size   File system    Name    Flags        #刪除分區3成功
1         1049kB   1000MB    999MB         pname
2         1000MB   2000MB   999MB         pname

7、查看剩余可用的空間等信息

root@debian:~# parted /dev/sdc unit GB print       #查看分區的信息,以GB為單位顯示
Model: ATA VBOX HARDDISK (scsi)
Disk /dev/sdb: 5.37GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:

Number Start End Size File system Name Flags
1 0.00GB 1.00GB 1.00GB
2 1.00GB 2.00GB 1.00GB pname

可用分區的容量需要用Disk /dev/sdb: 這行提供的總容量減去最后一個分區的結束位置的容量,這里舉例中可用分區容量為:5.37GB-2.00GB=3.37G

8、調整分區大小
盡量不要對分區進行調整,可能會丟失數據,如果要調整也要先備份數據

root@debian:~# parted /dev/sdc resizepart 2 4G     #增加分區容量,要輸入調整分區的指令及調整的分區,和擴容后這個分區的結束位置,這個要根據擴容前分區結束的位置和增加的容量來確定最終的分區位置
Information: You may need to update /etc/fstab.

root@debian:~# parted /dev/sdc unit GB print
Model: ATA VBOX HARDDISK (scsi)
Disk /dev/sdc: 5.37GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:

Number        Start      End     Size    File system    Name   Flags
1        0.00GB  1.00GB    1.00GB    ext4      pname
2         1.00GB     4.00GB    3.00GB    ext4       pname        #分區2的容量已經增加

root@debian:~# parted /dev/sdc resizepart 2 3G                    #減小分區的容量
Warning: Shrinking a partition can cause data loss, are you
sure you want to continue?
Yes/No? yes                        #減少容量會有這樣的警告:收縮分區會導致數據丟失,你確定要繼續嗎?
Information: You may need to update /etc/fstab.

root@debian:~# parted /dev/sdc unit GB print
Model: ATA VBOX HARDDISK (scsi)
Disk /dev/sdc: 5.37GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:

Number    Start    End    Size    File system    Name    Flags
1         0.00GB   1.00GB    1.00GB    ext4        pname
2      1.00GB   3.00GB    2.00GB   ext4     pname              #分區2的容量已經減少


四、parted配額MBR分區
實際生產用對MBR的分區推薦用fdisk來進行操作

1、更改分區表
(parted) mklabel msdos             #將現有的GPT分區更改成MBR分區,新磁盤也是通過這個指令來創建MBR分區
Warning: The existing disk label on /dev/sdb will be destroyed
and all data on this disk will be lost. Do you want to
continue?                    #警告:/dev/sdb上現有的磁盤標簽將被銷毀這個磁盤上的所有數據都將丟失。你想繼續嗎?
Yes/No? yes                    #輸入yes繼續,我的硬盤有gpt分區表才會提示,如果是新的磁盤不會提示
(parted) p
Model: ATA VBOX HARDDISK (scsi)
Disk /dev/sdb: 5369MB
Sector size (logical/physical): 512B/512B
Partition Table: msdos               #分區表已經改成MBR
Disk Flags:

Number   Start  End    Size   Type   File system    Flags

2、新建MBR分區

(parted) mkpart                      #新建第一個分區,MBR磁盤標簽不支持分區名下面不會有輸入選項
Partition type? primary/extended? primary        #新建主分區還是擴展分區
File system type? [ext2]? ext4                 #分區的文件系統類型
Start? 0%                       #起始位置
End? 1G                          #結束位置
(parted) mkpart primary 1G 2G             #不進行交互直接創建主分區,不創建文件系統,
(parted) mkpart extended 2G 100%           #直接創建擴展分區,不進行交互
(parted) p
Model: ATA VBOX HARDDISK (scsi)
Disk /dev/sdb: 5369MB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:

Number   Start      End     Size    Type   File system    Flags
1       1049kB     1000MB   999MB    primary    ext4     lba           #新建的主分區
2       1000MB    2000MB   999MB    primary           lba           #新建的主分區
3           2000MB    5369MB      3369MB     extended            lba                  #新建的擴展分區

(parted) mkpart                  #繼續創建邏輯分區
Partition type? primary/logical? logical       #新建主分區還是邏輯分區,只有創建了擴展分區才會出現邏輯分區的選項,輸入logical
File system type? [ext2]? ext4
Start? 2G
End? 3G
(parted) mkpart logical ext4 3G 4G         #直接創建邏輯分區同時格式化
(parted) p
Model: ATA VBOX HARDDISK (scsi)
Disk /dev/sdb: 5369MB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:

Number    Start     End    Size    Type    File system    Flags
1       1049kB   1000MB   999MB    primary
2      1000MB    2000MB  999MB    primary
3          2000MB   5369MB     3369MB  extended         lba
5          2001MB       3000MB  999MB   logical   ext4        lba    #邏輯分區成功分區號從5開始
6         3001MB    4000MB   999MB      logical   ext4        lba


其他的操作和gpt分區下一樣這里就不說了

 

五、Linux下分區工具

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM