首頁 > linux教程 > Linux文件系統管理 閱讀:0更新時間:2020-03-28 01:01:16

Linux parted命令用法詳解:創建分區

雖然我們可以使用 fdisk命令對硬盤進行快速的分區,但對高于 2TB 的硬盤分區,此命令卻無能為力,此時就需要使用 parted 命令。

parted 命令是可以在命令行直接分區和格式化的,不過 parted 交互模式才是更加常用的命令方式,進入交互模式的方法如下:

[root@localhost ~]# parted 硬盤設備文件名
#進入交互模式

例如:

[root@localhost ~]# parted /dev/sdb
#打算繼續劃分/dev/sdb硬盤
GNU Parted 2.1
使用/dev/sdb
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted)   <--parted 的等待輸入交互命令的位置,輸入 help,可以看到在交互模式下支持的所有命令

parted 交互命令比較多,我們介紹常見的命令,如表 1 所示。

表 1 parted常見的交互命令
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】查看分區表

(parted) print
#進入print指令
Model: VMware, VMware Virtual S (scsi)
#硬盤參數,是虛擬機
Disk/dev/sdb: 21.5GB
#硬盤大小
Sector size (logical/physical): 512B/512B
#扇區大小
Partition Table: msdos
#分區表類型,是MBR分區表
Number Start End Size Type File system 標志
1 32.3kB 5379MB 5379MB primary
2 5379MB 21.5GB 16.1GB extended
5 5379MB 7534MB 2155MB logical ext4
6 7534MB 9689MB 2155MB logical ext4
#看到了我們使用fdisk命令創建的分區,其中1分區沒被格式化;2分區是擴展分區,不能被格式化

使用 print 命令可以査看分區表信息,包括硬盤參數、硬盤大小、扇區大小、分區表類型和分區信息。分區信息共有 7 列,分別如下:
  1. Number:分區號,比如,1號就代表 /dec/sdb1;
  2. Start:分區起始位置。這里不再像 fdisk 那樣用柱面表示,使用字節表示更加直觀;
  3. End:分區結束位置;
  4. Size:分區大??;
  5. Type:分區類型,有 primary、extended、logical 等類型;
  6. Filesystem:文件系統類型;
  7. 標志:分區的標記。

【例 2】修改成 GPT 分區表

(partcd) mklabel gpt
#修改分區表命令
警告:正在使用/dev/sdb上的分區。由于/dev/sdb分區已經掛載,所以有警告。注意,如果強制修改,那么原有分區及數據會消失
忽略/Ignore/放棄/Cancel? ignore
#輸入ignore忽略報錯
警告: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
警告:WARNING: the kernel failed to re-read the partition table on /dev/sdb (設 備或資源忙).As a result, it may not reflect all of your changes until after reboot.
#下次重啟后才能生效
(parted) print
#查看一下分區表
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sdb: 21.5GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
#分區表已經變成 GPT
Number Start End Size File system Name 標志
#所有的分區都消失了

修改了分區表,如果這塊硬盤上已經有分區了,那么原有分區和分區中的數據都會消失,而且需要重啟系統才能生效。

另外,我們轉換分區表的目的是支持大于 2TB 的分區,如果分區并沒有大于 2TB,那么這一步是可以不執行的。

注意,一定要把 /etc/fstab 文件和原有分區中的內容刪除才能重啟,否則會報錯。


【例 3】建立分區
因為修改過了分區表,所以/dev/sdb硬盤中的所有數據都消失了,我們就可以重新對這塊硬盤分區了。不過,在建立分區時,默認文件系統就只能是 ext2 了。命令如下:

(parted)mkpart
#輸入創建分區命令,后面不要參數,全部靠交互
指定
分區名稱? []?disk1
#分區名稱,這里命名為disk 1
文件系統系統? [ext2]?
#文件系統類型,直接回車,使用默認文件系統ext2
起始點? 1MB
#分區從1MB開始
結束點?5GB分區到5GB結束
#分區完成
(parted) print
#查看一下
Model: VMware, VMware Virtual S (scsi)
Disk/dev/sdb: 21.5GB
Sector size (logical/physical): 512B/512B Partition Table: gpt
Number Start End Size Rle system Name 標志
1 1049kB 5000MB 4999MB disk1
#分區1已經出現

不知道大家有沒有注意到,我們現在用 print 查看的分區和第一次查看 MBR 分區表的分區時有些不一樣了,少了 Type 這個字段,也就是分區類型字段,多了 Name(分區名)字段。分區類型是用于標識主分區、擴展分區和邏輯分區的,不過這種標識只在 MBR 分區表中使用,現在已經變成了 GPT 分區表,所以就不再有 Type 類型了。

【例 4】建立文件系統
分區分完后,還需要進行格式化。我們知道,如果使用 parted 交互命令格式化,則只能格式化成 ext2 文件系統。我們在這里要演示一下 parted 命令的格式化方法,所以就格式化成 ext2 文件系統。命令如下:

(parted) mkfs
#格式化命令(很奇怪,也是mkfs,但是這只是parted的交互命令)
WARNING: you are attempting to use parted to operate on (mkfs) a file system.
parted's file system manipulation code is not as robust as what you'll find in
dedicated, file-system-specific packages like e2fsprogs. We recommend
you use parted only to manipulate partition tables, whenever possible.
Support for performing most operations on most types of file systems
will be removed in an upcoming release.
警告:The existing file system will be destroyed and all data on the partition will be lost. Do you want to continue?
是/Yes/否/No? yes
#警告你格式化丟失,沒關系,已經丟失過了
分區編號? 1
文件系統類型 [ext2]?
#指定文件系統類型,寫別的也沒用,直接回車
(parted) print #格式化完成,查看一下
Model: VMware, VMware Virtual S (scsi)
Disk/dev/sdb: 21,5GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Number Start End Size File system Name標志
1 1049kB 5000MB 4999MB ext2 diski
#擁有了文件系統

如果要格式化成 ext4 文件系統,那么請 mkfs 命令幫忙吧(注意:不是 parted 交互命令中的 mkfs,而是系統命令 mkfs)。

【例 5】調整分區大小
parted 命令還有一大優勢,就是可以調整分區的大?。ㄔ?Windows 中也可以實現,不過要么需要轉換成動態磁盤,要么需要依賴第三方工具,如硬盤分區魔術師)。起始 linux 中 LVM 和 RAID 是可以支持分區調整的,不過這兩種方法也可以看成動態磁盤方法,使用 parted 命令調整分區更加簡單。

注意,parted 調整已經掛載使用的分區時,是不會影響分區中的數據的,也就是說,數據不會丟失。但是一定要先卸載分區,再調整分區大小,否則數據是會出現問題的。另外,要調整大小的分區必須已經建立了文件系統(格式化),否則會報錯。

命令如下:

(parted) resize
分區編號? 1
#指定要修改的分區編號
起始點? [1049kB]? 1MB
#分區起始位置
結束點? [5000MB]? 6GB
分區結束位置
(parted) print
#查看一下
Model: VMware, VMware Virtual S (scsi)
Disk/dev/sdb: 21,5GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Number Start End Size File system Name標志
1 1049kB 6000MB 5999MB ext2 diski
#分區大小改變


【例 6】刪除分區

命令如下:
(parted) rm
#刪除分區命令
分區編號? 1
#指定分區編號
(parted) print
#查看一下
Model: VMware, VMware Virtual S (scsi)
Disk/dev/sdb: 21.5GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Number Start End Size File system Name 標志 #分區消失

要注意的是,parted 中所有的操作都是立即生效的,沒有保存生效的概念。這一點和 fdisk 交互命令明顯不同,所以做的所有操作大家要加倍小心。

那么,到底是使用 fdisk 命令,還是使用 parted 命令進行分區呢?這完全看個人習慣,我們更加習慣使用 fdisk 命令。

beylze編程學院,一個分享編程知識和seo優化知識的網站。跟著beylze一起學習,每天都有進步。

通俗易懂,深入淺出,一篇文章只講一個知識點。

文章不深奧,不需要鉆研,在公交、在地鐵、在廁所都可以閱讀,隨時隨地漲姿勢。

文章不涉及代碼,不燒腦細胞,人人都可以學習。

當你決定關注beylze(公眾號:beylze),你已然超越了90%的其他從業者!

相關文章

優秀教程

国产亚洲欧美日韩