Linux中國

在 Linux 上使用 GNU Parted 對磁碟分區

在 21 世紀,我們往往認為數據存儲是理所當然的。我們有許多存儲介質,相對價格便宜,而且有許多不同的可用類型。然而,不論你獲得的免費雲存儲空間有多少,沒有比有一個物理硬碟空間來存儲重要的數據更好了(或容量真的很大的,而當你又在一個慢速網路上時)。然而,沒有幾塊硬碟買回來就是現成的,至少在理想的狀況下可以直接使用的。無論你是買了一塊新硬碟,還用不同分區安裝一個系統,你需要知道怎麼在 Linux 上為磁碟分區

這篇文章介紹了 GNU Parted ,它磁碟分區最好的工具之一。如果你偏向使用圖形化程序,而不算終端命令行,請閱讀我的《為 Linux 格式化驅動器》這篇文章。

磁碟標籤、分區和文件系統

技術上來說,一個硬碟驅動器不需要很多軟體,就可用作存儲設備。然而,在沒有分區表和文件系統等現代慣例的情況下使用硬碟是困難的、不切實際的,而且對你的數據不安全。

關於硬碟驅動器,這裡有三個你需要知道的重要概念:

  • 磁碟標籤 disk label (或者 分區表 partition table )是放置在磁碟驅動器起始位置的元數據,它告訴計算機可用的存儲是何種類型、以及它在磁碟驅動器的位置等信息。
  • 分區 partition 是一個識別文件系統位置的邊界。舉個例子,如果你有一個 512GB 的硬碟,你可以用佔用所有磁碟容量(512GB)分成一個分區,或者分成兩個分區,每個佔用 256GB ,或者分成三個分區,佔用各種不同大小的空間等等。
  • 文件系統 filesystem 是一個硬碟驅動器和計算機兩者約定俗成的存儲方案。計算機必須知道怎樣讀取文件系統來拼湊存儲在驅動器上的數據,並且必須知道怎樣寫入數據到文件系統並保持數據的完整性。

GNU Parted 程序管理著前兩個概念:磁碟標籤和分區。Parted 對文件系統有所了解,但是它把文件系統的實現細節交給了其他類似 mkfs 這樣的工具。

下載 GNU Parted 速查表

確定磁碟驅動器的位置

使用 GNU Parted 之前,你必須確定你的驅動器在你的系統上的位置。首先,將你要格式化的磁碟驅動器連接到你的系統,然後用 parted 命令查看連接到你的計算機的設備:

$ parted /dev/sda print devices
/dev/sda (2000GB)
/dev/sdb (1000GB)
/dev/sdc (1940MB)

你最新連接設備的名稱在字母表上晚於連接時間更長的設備。舉個例子,/dev/sdc 最有可能是我剛剛連接的磁碟。我能通過它的容量大小來確認,相比於我的工作站上的主要驅動器的 TB 大小來說,因為我知道我插入的 U 盤只有 2GB(1940MB,足夠接近)大小。如果你不能確定,你可以得到的更多關於你想要分區的驅動器的信息:

$ parted /dev/sdc print
Model: Yoyodyne Tiny Drive 1.0 (scsi)    
Disk /dev/sdc: 1940MB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:

Number  Start   End     Size    File system  Name  Flags
 1      1049kB  2048kB  1024kB  BS           Bloat  Hidden
 2      2049kB  1939MB  1937MB  FAT32        MyDrive

有些驅動器比其他驅動器有更多的元數據。這個磁碟表明它的物理驅動器品牌是 Yoyodyne ,此外,在磁碟的起始處包含了一個小的隱藏分區,後面是一個兼容 Windows 的臃腫的 FAT32 分區。這確實是我要重新打算格式化的驅動器。

繼續之前,確認 你已經確定了要分區的正確驅動器。 對錯誤的驅動器重新分區會導致數據丟失。 為了安全起見,在本文中所有具有潛在破環性的命令都指向在你的系統中不太可能有的 /dev/sdX 設備。

創建磁碟標籤(或者分區表)

要在磁碟上創建一個分區,驅動器必須要有一個 磁碟標籤 disk label 。磁碟標籤也被叫做 分區表 partition table ,所以 Parted 對兩個術語都接受。

要創建一個磁碟卷標,使用 mklabelmktable 子命令:

$ parted /dev/sdX mklabel gpt

這個命令在 /dev/sdX 的驅動器前面創建了一個 gpt 標籤,刪除了任何可能存在的標籤。這是一個快速的過程,因為所有被替換的信息都是關於分區的元數據。

創建分區

要在磁碟創建分區,使用 mkpart 子命令,後跟可選的分區名稱,再跟分區的開始和結束位置。如果你在磁碟上只需要一個分區,那麼大小調整是容易的:開始位置輸入 1 ,結束位置輸入 100% 。使用 --align opt 參數允許 Parted 調整分區邊界位置便於磁碟獲得最佳性能:

$ parted /dev/sdX --align opt 
mkpart example 1 100%

print 子命令查看你的新分區:

$ parted /dev/sdX print
Model: Yoyodyne Tiny Drive 1.0 (scsi)
Disk /dev/sdi: 1940MB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:

Number  Start   End     Size  
 1      1049kB  1939MB  1938MB

你不必將整個磁碟用作一個分區。分區的優勢是在一個磁碟上可以存在多個文件系統,它們之間不會相互干擾。在確定分區大小的時候,你可以使用 unit 子命令來設置你想用的測量方法。Parted 可以理解 扇區 sector 柱面 cylinder 磁頭 head 位元組 byte 、KB、MB、GB、TB 和百分比。(LCTT 譯註:具體使用方法請參閱手冊頁)

你也可以指定你打算使用的分區的文件系統。這並不會創建文件系統,但是它為你以後方便使用提供了元數據。

將磁碟對半分,一個是 XFS 文件系統,另一個是 EXT4 文件系統:

$ parted /dev/sdX --align opt 
mkpart xfs 1 50%
$ parted /dev/sdX --align opt 
mkpart ext4 51% 100%

命名分區

除了標記分區用於什麼文件系統之外,你也可以為每個分區命名。一些文件管理器和工具可以讀取分區名稱,能夠幫助你區分驅動器。例如,我經常有幾個不同的驅動器連接到我的媒體工作站,每個屬於一個不同的項目。當創建這些驅動器的時候,我同時命名了分區和文件系統,這樣,無論我怎麼看我的系統,有重要數據的位置都會被清楚地標示出來。

要命名一個分區,你必須知道它的序號:

$ parted /dev/sdX print
[...]
Number  Start   End     Size   File system  Name     Flags
 1      1049kB  990MB   989MB  xfs          example
 2      1009MB  1939MB  930MB  ext4         noname

要命名分區 1:

$ parted /dev/sdX name 1 example
$ parted /dev/sdX print
[...]
Number  Start   End     Size   File system  Name     Flags
 1      1049kB  990MB   989MB  xfs          example
 2      1009MB  1939MB  930MB  ext4         noname

創建文件系統

要讓你的驅動器能夠正常使用,你必須在新分區上創建一個文件系統。GNU Parted 並不做這些,因為它只是一個分區管理器。在磁碟上創建文件系統的 Linux 命令是 mkfs,但也有一些有用的工具可以讓你用來創建特定類型的文件系統。例如,mkfs.ext4 創建 EXT4 文件系統,mkfs.xfs 創建 XFS 文件系統等等。

你的分區位於磁碟驅動器的「內部」 ,所以你不是在 /dev/sdX 上創建文件系統,而是在 /dev/sdX1 上為第一個分區創建文件系統,在 /dev/sdX2 上為第二個分區創建,以此類推。

這裡是一個創建 XFS 文件系統的例子:

$ sudo mkfs.xfs -L mydrive /dev/sdX1

下載我們的速查表

Parted 是一個靈活而強大的工具。你可以發出命令,如本文所示的那樣,或者激活一個交互模式以不斷 「連接」 你指定的驅動器:

$ parted /dev/sdX
(parted) print
[...]
Number  Start   End     Size   File system  Name     Flags
 1      1049kB  990MB   989MB  xfs          example
 2      1009MB  1939MB  930MB  ext4         noname

(parted) name 1 mydrive
(parted)

如果你打算經常使用 Parted ,下載我們的 GNU Parted 速查表,讓信息近在咫尺。

via: https://opensource.com/article/21/4/linux-parted-cheat-sheet

作者:Seth Kenlon 選題:lujun9972 譯者:hwlife 校對:wxy

本文由 LCTT 原創編譯,Linux中國 榮譽推出


本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive

對這篇文章感覺如何?

太棒了
0
不錯
0
愛死了
0
不太好
0
感覺很糟
0
雨落清風。心向陽

    You may also like

    Leave a reply

    您的郵箱地址不會被公開。 必填項已用 * 標註

    此站點使用Akismet來減少垃圾評論。了解我們如何處理您的評論數據

    More in:Linux中國