天天看點

怎樣用 parted 管理硬碟分區1 什麼是 parted2 怎樣啟動 parted3 怎樣用 parted 列出所有可用的硬碟4 怎樣用 parted 建立硬碟分區5 怎樣使用所有剩餘空間建立分區6 怎樣用 parted 列出所有的分區7 怎樣用 mkfs 格式化分區8 怎樣檢查硬碟空閑空間9 怎樣使用 parted 指令來重新調整分區大小10 怎樣用 parted 删除分區11 怎樣用 parted 指令設定/更改分區标志

衆所周知,對硬碟分區是 Linux 管理者一項最重要的管理任務之一,他們不能不知道這個。

你可能會問為什麼我們要用

parted

而不是

fdisk?

它們有什麼差別?好問題,我會告訴你這兩者的差別。

  • parted

    支援使用者在大于 2TB 的硬碟上建立硬碟分區, 但

    fdisk

    指令不支援
  • 對比

    fdisk

    來說,

    parted

    是一個更進階的工具
  • 支援更多的分區表類型,包括 GPT (全局唯一辨別分區表)
  • 它允許使用者調整分區大小, 但當縮減分區空間的時候,它沒有如我意料的工作,多數情況下我會得到錯誤消息。是以我會建議使用者不要用

    parted

    來縮減分區大小。

1 什麼是 parted

parted

是一個操作硬碟分區的程式。它支援多種分區表類型,包括 MS-DOS 和 GPT。

它允許使用者建立、删除、調整、縮減、移動和複制分區,以及重新組織硬碟的使用,複制資料到新的硬碟上。

gparted

parted

的圖形界面前端。

2 怎樣啟動 parted

下面的

parted

指令會自動選擇

/dev/sda

,因為這是系統的第一個硬碟。

$ sudo parted
GNU parted 3.2
Using /dev/sda
Welcome to GNU parted! Type 'help' to view a list of commands.
(parted)
           

同時我們也可以用下面的指令來重新選擇對應的的硬碟。

(parted) select /dev/sdb
Using /dev/sdb
(parted)
           

如果你想選擇特定的硬碟, 用下列的格式來輸入指令。 這次 ,我們将選擇

/dev/sdb

$ sudo parted [Device Name]

$ sudo parted /dev/sdb
GNU parted 3.2
Using /dev/sdb
Welcome to GNU parted! Type 'help' to view a list of commands.
(parted)
           

3 怎樣用 parted 列出所有可用的硬碟

如果你不知道你的電腦上有什麼硬碟,隻需要運作下列指令,該指令會顯示所有可用硬碟的名字,以及其它的有用資訊比如儲存空間、型号、扇區大小、硬碟标志以及分區資訊。

$ sudo parted -l
Model: ATA VBOX HARDDISK (scsi)
Disk /dev/sda: 32.2GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:

Number Start End Size Type File system Flags
 1 1049kB 32.2GB 32.2GB primary ext4 boot


Error: /dev/sdb: unrecognised disk label
Model: ATA VBOX HARDDISK (scsi)
Disk /dev/sdb: 53.7GB
Sector size (logical/physical): 512B/512B
Partition Table: unknown
Disk Flags:
           

上面的錯誤資訊清晰地顯示出硬碟

/dev/sdb

沒有有效的磁盤标簽

disk label

。 它不會自動得到磁盤标簽,是以, 我們便要自己設定硬碟标簽。

4 怎樣用 parted 建立硬碟分區

parted

允許使用者建立主分區或者拓展分區。建立這兩種類型的分區的步驟還是一樣,但請確定你已經指定了需要的分區類型,比如 primary (主分區)或者 extended (擴充分區)。

為了示範這項操作 ,我們安裝了一個新的 50 GB 的硬碟到到電腦上,挂載在 /dev/sdb 上。

有兩種方法建立分區,第一種是更詳細的方法,另一種隻是一個指令。 在下面的例子中,我們将用更詳細的方法添加一個主分區。提醒一下, 我們應該先設定磁盤标簽,因為它不會自動設定任何标簽。

在下面的例子中,我們将要建立一個 10 GB 的分區.

$ sudo parted /dev/sdb
GNU parted 3.2
Using /dev/sdb
Welcome to GNU parted! Type 'help' to view a list of commands.
(parted) mklabel msdos
(parted) unit GB
(parted) mkpart
Partition type? primary/extended? primary
File system type? [ext2]? ext4
Start? 0.00GB
End? 10.00GB
(parted) print
Model: ATA VBOX HARDDISK (scsi)
Disk /dev/sdb: 53.7GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:

Number Start End Size Type File system Flags
 1 0.00GB 10.0GB 10.0GB primary ext4 lba

(parted) quit
Information: You may need to update /etc/fstab.
           

同時,我們也可以使用單條 parted 指令

在下面的例子中,我們将在硬碟上建立一個 10 GB 的分區。

$ sudo parted [Disk Name] [mkpart] [Partition Type] [Filesystem Type] [Partition Start Size] [Partition End Size]
           
$ sudo parted /dev/sdb mkpart primary ext4 10.0GB 20.0GB
Information: You may need to update /etc/fstab.
           

5 怎樣使用所有剩餘空間建立分區

你已經建立了除了 /home 之外等所有要求的分區,而且你想要用硬碟上所有剩餘的空間來建立 /home 分區,要怎樣做?可以使用下面的指令來建立分區。

下面的指令建立了一個 33.7 GB 的分區,

從 20 GB 開始到 53 GB 結束。 100% 使用率允許使用者用硬碟上所有剩餘的空餘空間。

$ sudo parted [Disk Name] [mkpart] [Partition Type] [Filesystem Type] [Partition Start Size] [Partition End Size]

$ sudo parted /dev/sdb mkpart primary ext4 20.0GB 100%
Information: You may need to update /etc/fstab.
           

6 怎樣用 parted 列出所有的分區

你也許注意到了,我們已經在上述步驟中建立了三個分區,如果你想要列出所有在硬碟上可用的分區,可以使用

print

指令。

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

Number Start End Size Type File system Flags
 1 1049kB 10.0GB 9999MB primary ext4
 2 10.0GB 20.0GB 9999MB primary ext4
 3 20.0GB 53.7GB 33.7GB primary ext4
           

7 怎樣用 mkfs 格式化分區

使用者可以用

mkfs

指令格式化分區。下面的步驟會用

mkfs

來格式化分區。

$ sudo mkfs.ext4 /dev/sdb1
mke2fs 1.43.4 (31-Jan-2017)
Creating filesystem with 2621440 4k blocks and 656640 inodes
Filesystem UUID: 415cf467-634c-4403-8c9f-47526bbaa381
Superblock backups stored on blocks:
   32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632

Allocating group tables: done
Writing inode tables: done
Creating journal (16384 blocks): done
Writing superblocks and filesystem accounting information: done
           

建立必要的檔案夾然後将這些分區挂載在上面。

$ sudo mkdir /par1 /par2 /par3
           

運作下列指令來檢查是否成功挂載上新建立的分區。

$ df -h /dev/sdb[1-3]
Filesystem Size Used Avail Use% Mounted on
/dev/sdb1 9.2G 37M 8.6G 1% /par1
/dev/sdb2 9.2G 37M 8.6G 1% /par2
/dev/sdb3 31G 49M 30G 1% /par3
           

8 怎樣檢查硬碟空閑空間

運作下列指令來檢查硬碟上的空閑空間,這塊硬碟上有 25.7 GB 的空閑空間。

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

Number Start End Size Type File system Flags
 32.3kB 1049kB 1016kB Free Space
 1 1049kB 10.0GB 9999MB primary ext4
 2 10.0GB 20.0GB 9999MB primary ext4
 3 20.0GB 28.0GB 8001MB primary ext4
 28.0GB 53.7GB 25.7GB Free Space
           

9 怎樣使用 parted 指令來重新調整分區大小

parted

允許使用者重新調整分區大小。不過我已在文章的開頭說了,不要縮小分區大小,不然會有許多錯誤。

運作下列指令來檢查硬碟分區以及所有可用空間。 可以看到硬碟上有 25.7GB 的可用空間。

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

Number Start End Size Type File system Flags
 32.3kB 1049kB 1016kB Free Space
 1 1049kB 10.0GB 9999MB primary ext4
 2 10.0GB 20.0GB 9999MB primary ext4
 3 20.0GB 28.0GB 8001MB primary ext4
 28.0GB 53.7GB 25.7GB Free Space
           

運作下列指令來重新調整分區大小。 我們将要重新調整(增加)分區 3 的結束位置,從 28GB 到 33GB。

$ sudo parted [Disk Name] [resizepart] [Partition Number] [Partition New End Size]

$ sudo parted /dev/sdb resizepart 3 33.0GB
Information: You may need to update /etc/fstab.
           

運作下列指令來确認分區是否已經擴容。可以看到,分區 3 已經從 8GB 增加到 13GB。

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

Number Start End Size Type File system Flags
1 1049kB 10.0GB 9999MB primary ext4
2 10.0GB 20.0GB 9999MB primary ext4
3 20.0GB 33.0GB 13.0GB primary ext4
           

重新調整檔案系統大小。

$ sudo resize2fs /dev/sdb3
resize2fs 1.43.4 (31-Jan-2017)
Resizing the filesystem on /dev/sdb3 to 3173952 (4k) blocks.
The filesystem on /dev/sdb3 is now 3173952 (4k) blocks long.
           

最後,确認分區是否已經擴容。

$ df -h /dev/sdb[1-3]
Filesystem Size Used Avail Use% Mounted on
/dev/sdb1 9.2G 5.1G 3.6G 59% /par1
/dev/sdb2 9.2G 2.1G 6.6G 24% /par2
/dev/sdb3 12G 1.1G 11G 10% /par3
           

10 怎樣用 parted 删除分區

我們用

rm

指令友善地删除未使用的分區(如果該分區不會再被用到了)。下列步驟中,我們将會删除分區 3 (/dev/sdb3)

sudo parted [Disk Name] [rm] [Partition Number]

$ sudo parted /dev/sdb rm 3
Warning: Partition /dev/sdb3 is being used. Are you sure you want to continue?
Yes/No? Yes
Error: Partition(s) 3 on /dev/sdb have been written, but we have been unable to inform the kernel of the change, probably because it/they are in use. As a result, the old partition(s) will remain in use.
You should reboot now before making further changes.
Ignore/Cancel? Ignore
Information: You may need to update /etc/fstab.
           

11 怎樣用 parted 指令設定/更改分區标志

我們可以用下列的指令來輕易更改分區的标志。 我們将對 /dev/sdb2 設定

lvm

标志。

$ sudo parted [Disk Name] [set] [Partition Number] [Flags Name] [Flag On/Off]

$ sudo parted /dev/sdb set 2 lvm on
Information: You may need to update /etc/fstab.
           

我們可以列出分區來驗證這次的更改。

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

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

如果你想知道可用的标志,隻需要用如下的指令。

$ (parted) help set
set NUMBER FLAG STATE change the FLAG on partition NUMBER

   NUMBER is the partition number used by Linux. On MS-DOS disk labels, the primary partitions number from 1 to 4, logical partitions from 5 onwards.
FLAG is one of: boot, root, swap, hidden, raid, lvm, lba, hp-service, palo, prep, msftres, bios_grub, atvrecv, diag, legacy_boot, msftdata, irst, esp
STATE is one of: on, off
           

如果你想知道 parted 的其它可用指令, 隻需要去到 help 頁面。

$ sudo parted
GNU parted 3.2
Using /dev/sda
Welcome to GNU parted! Type 'help' to view a list of commands.
(parted) help
align-check TYPE N check partition N for TYPE(min|opt) alignment
help [COMMAND] print general help, or help on COMMAND
mklabel,mktable LABEL-TYPE create a new disklabel (partition table)
mkpart PART-TYPE [FS-TYPE] START END make a partition
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
resizepart NUMBER END resize partition NUMBER
rm NUMBER delete partition NUMBER
select DEVICE choose the device to edit
disk_set FLAG STATE change the FLAG on selected device
disk_toggle [FLAG] toggle the state of FLAG on selected device
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) quit 
           

轉自:https://linux.cn/article-9536-1.html?pr

繼續閱讀