在 Linux 上使用 GNU Parted 對磁盤分區(qū)
在 21 世紀,我們往往認為數(shù)據(jù)存儲是理所當然的。我們有許多存儲介質(zhì),相對價格便宜,而且有許多不同的可用類型。然而,不論你獲得的免費云存儲空間有多少,沒有比有一個物理硬盤空間來存儲重要的數(shù)據(jù)更好了(或容量真的很大的,而當你又在一個慢速網(wǎng)絡上時)。然而,沒有幾塊硬盤買回來就是現(xiàn)成的,至少在理想的狀況下可以直接使用的。無論你是買了一塊新硬盤,還用不同分區(qū)安裝一個系統(tǒng),你需要知道怎么在 Linux 上為磁盤分區(qū)。
這篇文章介紹了 GNU Parted ,它磁盤分區(qū)最好的工具之一。如果你偏向使用圖形化程序,而不算終端命令行,請閱讀我的《??為 Linux 格式化驅動器??》這篇文章。
磁盤標簽、分區(qū)和文件系統(tǒng)
技術上來說,一個硬盤驅動器不需要很多軟件,就可用作存儲設備。然而,在沒有分區(qū)表和文件系統(tǒng)等現(xiàn)代慣例的情況下使用硬盤是困難的、不切實際的,而且對你的數(shù)據(jù)不安全。
關于硬盤驅動器,這里有三個你需要知道的重要概念:
- 磁盤標簽disk label(或者 分區(qū)表partition table)是放置在磁盤驅動器起始位置的元數(shù)據(jù),它告訴計算機可用的存儲是何種類型、以及它在磁盤驅動器的位置等信息。
- 分區(qū)partition 是一個識別文件系統(tǒng)位置的邊界。舉個例子,如果你有一個 512GB 的硬盤,你可以用占用所有磁盤容量(512GB)分成一個分區(qū),或者分成兩個分區(qū),每個占用 256GB ,或者分成三個分區(qū),占用各種不同大小的空間等等。
- 文件系統(tǒng)filesystem 是一個硬盤驅動器和計算機兩者約定俗成的存儲方案。計算機必須知道怎樣讀取文件系統(tǒng)來拼湊存儲在驅動器上的數(shù)據(jù),并且必須知道怎樣寫入數(shù)據(jù)到文件系統(tǒng)并保持數(shù)據(jù)的完整性。
GNU Parted 程序管理著前兩個概念:磁盤標簽和分區(qū)。Parted 對文件系統(tǒng)有所了解,但是它把文件系統(tǒng)的實現(xiàn)細節(jié)交給了其他類似 ??mkfs?
? 這樣的工具。
下載 ??GNU Parted 速查表??
確定磁盤驅動器的位置
使用 GNU Parted 之前,你必須確定你的驅動器在你的系統(tǒng)上的位置。首先,將你要格式化的磁盤驅動器連接到你的系統(tǒng),然后用 ??parted?
? 命令查看連接到你的計算機的設備:
$ parted /dev/sda print devices
/dev/sda (2000GB)
/dev/sdb (1000GB)
/dev/sdc (1940MB)
你最新連接設備的名稱在字母表上晚于連接時間更長的設備。舉個例子,??/dev/sdc?
? 最有可能是我剛剛連接的磁盤。我能通過它的容量大小來確認,相比于我的工作站上的主要驅動器的 TB 大小來說,因為我知道我插入的 U 盤只有 2GB(1940MB,足夠接近)大小。如果你不能確定,你可以得到的更多關于你想要分區(qū)的驅動器的信息:
$ 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
有些驅動器比其他驅動器有更多的元數(shù)據(jù)。這個磁盤表明它的物理驅動器品牌是 Yoyodyne ,此外,在磁盤的起始處包含了一個小的隱藏分區(qū),后面是一個兼容 Windows 的臃腫的 FAT32 分區(qū)。這確實是我要重新打算格式化的驅動器。
繼續(xù)之前,確認 你已經(jīng)確定了要分區(qū)的正確驅動器。 對錯誤的驅動器重新分區(qū)會導致數(shù)據(jù)丟失。 為了安全起見,在本文中所有具有潛在破環(huán)性的命令都指向在你的系統(tǒng)中不太可能有的 ??/dev/sdX?
? 設備。
創(chuàng)建磁盤標簽(或者分區(qū)表)
要在磁盤上創(chuàng)建一個分區(qū),驅動器必須要有一個磁盤標簽disk label。磁盤標簽也被叫做 分區(qū)表partition table,所以 Parted 對兩個術語都接受。
要創(chuàng)建一個磁盤卷標,使用 ??mklabel?
?? 或 ??mktable?
? 子命令:
$ parted /dev/sdX mklabel gpt
這個命令在 ??/dev/sdX?
? 的驅動器前面創(chuàng)建了一個 gpt 標簽,刪除了任何可能存在的標簽。這是一個快速的過程,因為所有被替換的信息都是關于分區(qū)的元數(shù)據(jù)。
創(chuàng)建分區(qū)
要在磁盤創(chuàng)建分區(qū),使用 ??mkpart?
?? 子命令,后跟可選的分區(qū)名稱,再跟分區(qū)的開始和結束位置。如果你在磁盤上只需要一個分區(qū),那么大小調(diào)整是容易的:開始位置輸入 1 ,結束位置輸入 100% 。使用 ??--align opt?
? 參數(shù)允許 Parted 調(diào)整分區(qū)邊界位置便于磁盤獲得最佳性能:
$ parted /dev/sdX --align opt \
mkpart example 1 100%
用 ??print?
? 子命令查看你的新分區(qū):
$ 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
你不必將整個磁盤用作一個分區(qū)。分區(qū)的優(yōu)勢是在一個磁盤上可以存在多個文件系統(tǒng),它們之間不會相互干擾。在確定分區(qū)大小的時候,你可以使用 ??unit?
? 子命令來設置你想用的測量方法。Parted 可以理解扇區(qū)sector、柱面cylinder、磁頭head、字節(jié)byte、KB、MB、GB、TB 和百分比。(LCTT 譯注:具體使用方法請參閱手冊頁)
你也可以指定你打算使用的分區(qū)的文件系統(tǒng)。這并不會創(chuàng)建文件系統(tǒng),但是它為你以后方便使用提供了元數(shù)據(jù)。
將磁盤對半分,一個是 XFS 文件系統(tǒng),另一個是 EXT4 文件系統(tǒng):
$ parted /dev/sdX --align opt \
mkpart xfs 1 50%
$ parted /dev/sdX --align opt \
mkpart ext4 51% 100%
命名分區(qū)
除了標記分區(qū)用于什么文件系統(tǒng)之外,你也可以為每個分區(qū)命名。一些文件管理器和工具可以讀取分區(qū)名稱,能夠幫助你區(qū)分驅動器。例如,我經(jīng)常有幾個不同的驅動器連接到我的媒體工作站,每個屬于一個不同的項目。當創(chuàng)建這些驅動器的時候,我同時命名了分區(qū)和文件系統(tǒng),這樣,無論我怎么看我的系統(tǒng),有重要數(shù)據(jù)的位置都會被清楚地標示出來。
要命名一個分區(qū),你必須知道它的序號:
$ parted /dev/sdX print
[...]
Number Start End Size File system Name Flags
1 1049kB 990MB 989MB xfs example
2 1009MB 1939MB 930MB ext4 noname
要命名分區(qū) 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
創(chuàng)建文件系統(tǒng)
要讓你的驅動器能夠正常使用,你必須在新分區(qū)上創(chuàng)建一個文件系統(tǒng)。GNU Parted 并不做這些,因為它只是一個分區(qū)管理器。在磁盤上創(chuàng)建文件系統(tǒng)的 Linux 命令是 ??mkfs?
??,但也有一些有用的工具可以讓你用來創(chuàng)建特定類型的文件系統(tǒng)。例如,??mkfs.ext4?
?? 創(chuàng)建 EXT4 文件系統(tǒng),??mkfs.xfs?
? 創(chuàng)建 XFS 文件系統(tǒng)等等。
你的分區(qū)位于磁盤驅動器的“內(nèi)部” ,所以你不是在 ??/dev/sdX?
?? 上創(chuàng)建文件系統(tǒng),而是在 ??/dev/sdX1?
?? 上為第一個分區(qū)創(chuàng)建文件系統(tǒng),在 ??/dev/sdX2?
? 上為第二個分區(qū)創(chuàng)建,以此類推。
這里是一個創(chuàng)建 XFS 文件系統(tǒng)的例子:
$ sudo mkfs.xfs -L mydrive /dev/sdX1
下載我們的速查表
Parted 是一個靈活而強大的工具。你可以發(fā)出命令,如本文所示的那樣,或者激活一個交互模式以不斷 “連接” 你指定的驅動器:
$ 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)
如果你打算經(jīng)常使用 Parted ,??下載我們的 GNU Parted 速查表??,讓信息近在咫尺。