在21世纪,我们倾向于将数据存储视为理所当然。我们有许多存储介质,它们相对便宜并且有许多不同的类型。然而,无论您获得多少免费云存储,没有什么比拥有一个有空间存储重要数据的物理硬盘驱动器更好的了(或者一个非常大的硬盘驱动器,如果您的网络速度很慢)。不过买现成的硬盘不多,至少在理想情况下是可以直接拿来用的。无论你是买了新硬盘,还是安装了不同分区的系统,你都需要知道如何在Linux中对磁盘进行分区。本文介绍GNUParted,它是磁盘分区的最佳工具之一。如果你更喜欢使用图形程序而不是终端命令行,请阅读我的《??为 Linux 格式化驱动器??》文章。磁盘标签、分区和文件系统从技术上讲,硬盘驱动器不需要很多软件就可以用作存储设备。但是,使用没有现代约定(如分区表和文件系统)的硬盘驱动器是困难的、不切实际的,并且对您的数据不安全。您需要了解有关硬盘驱动器的三个重要概念:磁盘标签(或分区表)是放置在磁盘驱动器开头的元数据,它告诉计算机可用的存储类型以及磁盘驱动器的位置和其他信息。分区是标识文件系统位置的边界。比如你有一个512GB的硬盘,你可以把它分成一个分区占满整个磁盘容量(512GB),或者分成两个分区,每个分区占256GB,或者分成三个分区,占用大小不等空间等。文件系统是硬盘驱动器和计算机都同意的存储方案。计算机必须知道如何读取文件系统以拼凑存储在驱动器上的数据,并且它必须知道如何在保持数据完整性的同时将数据写入文件系统。GNUParted程序管理前两个概念:磁盘标签和分区。Parted了解一些文件系统,但它将文件系统实现细节留给其他工具,如mkfs。下载GNUParted备忘单定位您的磁盘驱动器在使用GNUParted之前,您必须确定您的驱动器在系统中的位置。首先,将要格式化的磁盘驱动器连接到系统,然后使用parted命令查看连接到计算机的设备:$parted/dev/sdaprintdevices/dev/sda(2000GB)/dev/sdb(1000GB)/dev/sdc(1940MB)最近连接的设备的名称按字母顺序排在连接时间较长的设备之后。例如,/dev/sdc很可能是我刚刚附加的磁盘。我可以通过它的大小来确认这一点,与我工作站上主驱动器的TB大小相比,因为我知道我插入的USB记忆棒只有2GB(1940MB,足够接近)。如果您不确定,您可以获得有关要分区的驱动器的更多信息:$parted/dev/sdcprintModel:YoyodyneTinyDrive1.0(scsi)Disk/dev/sdc:1940MBSectorsize(logical/physical):512B/512BPartitionTable:msdosDiskFlags:NumberStartEndSizeFilesystemNameFlags11049kB2048kB1024kBBSBloatHidden22049kB1939MB1937MBFAT32MyDrive一些驱动器的元数据比其他驱动器多。该磁盘表明其物理驱动器品牌为Yoyodyne,并且在磁盘的开头包含一个小的隐藏分区,然后是一个体积庞大的Windows兼容FAT32分区。这确实是我要重新格式化的驱动器。在继续之前,请确保您已确定要分区的正确驱动器。重新分区错误的驱动器可能会导致数据丢失。为了安全起见,本文中所有可能具有破坏性的命令都指向/dev/sdX设备,该设备不太可能存在于您的系统上。创建磁盘标签(或分区表)要在磁盘上创建分区,驱动器必须有磁盘标签。磁盘标签也称为分区表,因此Parted接受这两个术语。要创建磁盘卷标,请使用mklabel或mktable子命令:$parted/dev/sdXmklabelgpt该命令在/dev/sdX上的驱动器前面创建一个gpt标签,删除可能存在的任何标签。这是一个快速的过程,因为所有被替换的信息都是关于分区的元数据。创建分区要在磁盘上创建分区,请使用mkpart子命令,后跟一个可选的分区名称,然后是分区的开始和结束位置。如果您只需要磁盘上的一个分区,调整大小很容易:输入1作为开始,100%作为结束。使用--alignopt参数允许Parted调整分区边界以获得最佳磁盘性能:$parted/dev/sdX--alignopt\mkpartexample1100%使用print子命令查看您的新分区:$parted/dev/sdXprintModel:YoyodyneTinyDrive1.0(scsi)Disk/dev/sdi:1940MBSectorsize(logical/physical):512B/512BPartitionTable:gptDiskFlags:NumberStartEndSize11049kB1939MB1938MB你不必使用整个磁盘作为一个分区。分区的好处是多个文件系统可以存在于一个磁盘上,互不干扰。您可以使用unit子命令来设置在确定分区大小时要使用的测量方法。Parted了解扇区、柱面、磁头、字节、KB、MB、GB、TB和百分比。(LCTT译注:具体使用请参考manpage)你也可以指定你打算使用的分区的文件系统。这不会创建文件系统,但会提供元数据以方便您稍后使用。将磁盘一分为二,一个是XFS文件系统,一个是EXT4文件系统:$parted/dev/sdX--alignopt\mkpartxfs150%$parted/dev/sdX--alignopt\mkpartext451%100%命名分区除了标记分区用于什么文件系统外,您还可以命名每个分区。一些文件管理器和工具可以读取分区名称,可以帮助您区分驱动器。例如,我的媒体工作站经常连接多个不同的驱动器,每个驱动器都属于不同的项目。在创建这些驱动器时,我为分区和文件系统命名,这样无论我怎么看我的系统,重要数据的地方都会被清楚地标记出来。要命名一个分区,您必须知道它的序列号:$parted/dev/sdXprint[...]NumberStartEndSizeFilesystemNameFlags11049kB990MB989MBxfsexample21009MB1939MB930MBext4noname命名分区1:$parted/dev/sdXname1example$parted/dev/sdXprint[...]NumberStartEndSizeFilesystemNameFlags11049kB990MB989MBxfsexample21009MB1939MB930MBext4noname要为驱动器创建文件系统,您必须创建一个新分区上的文件系统。GNUParted不这样做,因为它只是一个分区管理器。在磁盘上创建文件系统的Linux命令是mkfs,但也有一些有用的工具可用于创建特定类型的文件系统。例如,mkfs.ext4创建一个EXT4文件系统,mkfs.xfs创建一个XFS文件系统,等等。您的分区位于磁盘驱动器“内部”,因此您不是在/dev/sdX上创建文件系统,而是在/dev/sdX1上为第一个分区创建文件系统,在/dev/sdX2上为第二个分区创建文件系统,依此类推在。下面是创建XFS文件系统的示例:$sudomkfs.xfs-Lmydrive/dev/sdX1下载备忘单Parted是一个灵活而强大的工具。您可以发出命令,如本文所示,或激活交互模式以连续“附加”您指定的驱动器:$parted/dev/sdX(parted)print[...]NumberStartEndSizeFilesystemNameFlags11049kB990MB989MBxfsexample21009MB1939MB930MBext4noname(parted)name1mydrive(parted)如果您打算大量使用Parted,请下载我们的GNUParted备忘单,让信息触手可及。
