蚊章汇 - 分区表
type: channel
link: https://linuxcn.bwsl.wang/tag/%E5%88%86%E5%8C%BA%E8%A1%A8/
items: 在 Linux 上使用 GNU Parted 对磁盘分区

在 Linux 上使用 GNU Parted 对磁盘分区
type: item
date: 2022-04-13T00:20:45+08:00
description: 了解对新的储存设备分区的基础知识，然后下载我们的速查表，让信息近在咫尺。在 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 对两个术语都接受。要创建一个磁盘卷标，使用 mklabel 或 mktable 子命令:$ parted /dev/sdX mklabel gpt 这个命令在 /dev/sdX 的驱动器前面创建了一个 gpt 标签，删除了任何可能存在的标签。这是一个快速的过程，因为所有被替换的信息都是关于分区的元数据。创建分区要在磁盘创建分区，使用 mkpart 子命令，后跟可选的分区名称，再跟分区的开始和结束位置。如果你在磁盘上只需要一个分区，那么大小调整是容易的…