1. 程式人生 > >Linux檔案系統管理 parted分割槽命令

Linux檔案系統管理 parted分割槽命令

概述

parted 命令是可以在命令列直接分割槽和格式化的,不過 parted 互動模式才是更加常用的命令方式。

parted命令

進入互動模式命令如下:

[[email protected] ~]# parted 硬碟裝置檔名

 

例如:

[[email protected] ~]# 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 的等待輸入互動命令的位置
(parted) help
#輸入 help,可以看到在互動模式下支援的所有命令
align
-check TYPE N check partition N for TYPE(min|opt)alignment check NUMBER do a simple check on the file system cp [FROM-DEVICE] FROM-NUMBER TO-NUMBER copy file system to another partition help [COMMAND] print general help, or help on COMMAND mklabel, mktable LABEL-TYPE create a new disklabel(partition table) mkfs NUMBER FS
-TYPE make a FS-TYPE file system on partition NUMBER mkpart PART-TYPE [FS-TYPE] START END make a partition mkpartfs PART-TYPE FS-TYPE START END make a partition with a file system move NUMBER START END move partition NUMBER name NUMBER NAME name partition NUMBER as NAME print [devices| free| list, all| NUMBER] display the partition table, available devices, free space, all found partitions, or a particular partition quit exit program rescue START END rescue a lost partition near START and END resize NUMBER START END resize partition NUMBER and its file system rm NUMBER delete partition NUMBER select DEVICE choose the device to edit set NUMBER FLAG STATE change the FLAG on partition NUMBER toggle [NUMBER [FLAG]] toggle the state of FLAG on partition NUMBER unit UNIT set the
default unit to UNIT version display the version number and copyright information of GNU Parted

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

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 顯示版本

parted命令的使用

檢視分割槽表

(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:分割槽號。
  2. Start:分割槽起始位置。這裡不再像fdisk那樣用柱面表示,使用位元組表示更加直觀。
  3. End:分割槽結束位置。
  4. Size:分割槽大小。
  5. Type:分割槽型別。
  6. Filesystem:檔案系統型別。
  7. 標誌:分割槽的標記。

修改成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 檔案和原有分割槽中的內容刪除才能重啟,否則會報錯。

建立分割槽

因為修改過了分割槽表,所以/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 型別了。

建立檔案系統

分割槽分完後,還需要進行格式化。我們知道,如果使用 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)。

調整分割槽大小

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
#分割槽大小改變

刪除分割槽

命令如下:

(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 互動命令明顯不同,所以做的所有操作大家要加倍小心。