Linux 的 Parted 指令教學:建立、變更與修復磁碟分割區

調整磁碟分割區大小

Parted 的 resizepart 指令可以用來更改 Linux 的磁碟分割區大小,在變更磁碟分割區之前,要先用 print 指令查詢分割區的編號:

(parted) print

print 的輸出中,可以查到每個磁碟分割區的編號:

Model: ATA VBOX HARDDISK (scsi)
Disk /dev/sdb: 10.7GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt

Number  Start   End     Size    File system  Name     Flags
 1      1049kB  10.0GB  9999MB  ext4         my_part

第一個 Number 欄位就是分割區的編號,以這個 my_part 分割區而言,它的編號就是 1。接著執行 resizepart

(parted) resizepart

接著輸入編號與大小:

Partition number? 1 1
End?  [10.0GB]? 5G 2
Warning: Shrinking a partition can cause data loss, are you sure you want to continue?
Yes/No? y 3

1 輸入分割區編號。

2 輸入分割區結束位置。

3 如果是縮小分割區,可能會造成資料流失,若確認要執行,則輸入 y

print 確認:

(parted) print

輸出為

Model: ATA VBOX HARDDISK (scsi)
Disk /dev/sdb: 10.7GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt

Number  Start   End     Size    File system  Name     Flags
 1      1049kB  5000MB  4999MB  ext4         my_part

刪除 Linux 磁碟分割區

首先用 print 查詢磁碟分割區編號:

(parted) print
Model: ATA VBOX HARDDISK (scsi)
Disk /dev/sdb: 10.7GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt

Number  Start   End     Size    File system  Name      Flags
 1      1049kB  5000MB  4999MB  ext4         my_part
 2      5001MB  8000MB  2999MB               my_part2

然後使用 rm 指令加上分割區編號刪除指定的分割區:

(parted) rm 2

再用 print 確認一次:

(parted) print

輸出為

Model: ATA VBOX HARDDISK (scsi)
Disk /dev/sdb: 10.7GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt

Number  Start   End     Size    File system  Name     Flags
 1      1049kB  5000MB  4999MB  ext4         my_part

修復磁碟分割區

Parted 的 rescue 指令提供了修復磁碟分割區的功能,它可以搜尋指定的磁碟區間,如果發現有任何遺失的分割區,就會嘗試將它們救回:

(parted) rescue

接著輸入要搜尋的磁碟區間:

Start? 1 1
End? 10000 2
Information: A ext4 primary partition was found at 1049kB -> 10.0GB.  Do you want to add it to the partition table?
Yes/No/Cancel? y 3

1 輸入搜尋起點。

2 輸入搜尋終點。

3 若找到遺失的分割區,會詢問是否要修復,輸入 y 可以進行修復。

使用 print 查看磁碟修復後的結果:

(parted) print

輸出為:

Model: ATA VBOX HARDDISK (scsi)
Disk /dev/sdb: 10.7GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt

Number  Start   End     Size    File system  Name  Flags
 1      1049kB  10.0GB  9999MB  ext4

設定磁碟旗標

Parted 的 set 指令可以用來設定磁碟分割區的旗標(flags),例如將編號 1 的分割區設定為可開機(boot):

(parted) set 1 boot on

然後使用 print 查看:

(parted) print
Model: ATA VBOX HARDDISK (scsi)
Disk /dev/sdb: 10.7GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos

Number  Start   End     Size    Type     File system  Flags
 1      1049kB  10.0GB  9999MB  primary  ext4         boot

參考資料:TecmintnixCraftThe Geek StuffThe Geek StuffDUNTUKarchlinux

Linux

4 留言

  1. yeh

    版大您好!
    看到您寫的網誌教人如何格式化新硬碟, 但我卻碰到問題, 因此冒昧寫信請教您
    想要請教一下, 我有一顆4TB硬碟想要重新格式化, 但是
    我使用parted 卻看不到新裝置, 只有/dev/sda (原本系統的),
    使用fdisk -l 可以看到新裝的裝置在/dev/sdg
    但是我格式化大於 2TB的新硬碟
    所以想請教, 遇到這種狀況應該怎麼處理?
    感謝萬分

  2. meow

    寫文章辛苦了

    提醒一下第二段「最常使用的工具就是 Parted,而這個工具只適用於容量較小的硬碟,容量太大的硬碟就無法使用 fdisk 來處理」,對照前後文應該是fdisk而不是parted哦

  3. sihai

    請問!!低於2TB如果是500G硬碟會不會使用GTP會有問題啊?

    小弟家裡很多500G~1TB硬碟…想說沒有到達2TB直接使用GTP會不會產生什麼問題呢?

    小弟困惑中….

Leave a Reply