在 21 世纪,咱们往往认为数据存储是天经地义的。咱们有许多存储介质,绝对价格便宜,而且有许多不同的可用类型。然而,不管你取得的收费云存储空间有多少,没有比有一个物理硬盘空间来存储重要的数据更好了(或容量真的很大的,而当你又在一个慢速网络上时)。然而,没有几块硬盘买回来就是现成的,至多在现实的情况下能够间接应用的。无论你是买了一块新硬盘,还用不同分区装置一个零碎,你须要晓得怎么在 Linux 上为磁盘分区。
这篇文章介绍了 GNU Parted,它磁盘分区最好的工具之一。
磁盘标签、分区和文件系统
技术上来说,一个硬盘驱动器不须要很多软件,就可用作存储设备。然而,在没有分区表和文件系统等古代常规的状况下应用硬盘是艰难的、不切实际的,而且对你的数据不平安。
对于硬盘驱动器,这里有三个你须要晓得的重要概念:
磁盘标签 disk label(或者 分区表 partition table)是搁置在磁盘驱动器起始地位的元数据,它通知计算机可用的存储是何种类型、以及它在磁盘驱动器的地位等信息。
分区 partition 是一个辨认文件系统地位的边界。举个例子,如果你有一个 512GB 的硬盘,你能够用占用所有磁盘容量(512GB)分成一个分区,或者分成两个分区,每个占用 256GB,或者分成三个分区,占用各种不同大小的空间等等。
文件系统 filesystem 是一个硬盘驱动器和计算机两者约定俗成的存储计划。计算机必须晓得怎么读取文件系统来拼凑存储在驱动器上的数据,并且必须晓得怎么写入数据到文件系统并保持数据的完整性。
GNU Parted 程序管理着前两个概念:磁盘标签和分区。Parted 对文件系统有所理解,然而它把文件系统的实现细节交给了其余相似 mkfs 这样的工具。
确定磁盘驱动器的地位
应用 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 对两个术语都承受。
要创立一个磁盘卷标,应用 mklabel 或 mktable 子命令:
$ 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)