Parted是一个著名的命令行实用程序,旨在以用户友好的方式促进硬盘分区的管理。使用Parted,可以轻松执行添加、删除、缩小和扩展磁盘分区等任务,同时还可以管理与其关联的文件系统。
随着使用需求的不断变化,Parted经历了重大的发展和演变,对其功能进行了各种增强和更改。某些功能已被淘汰,同时引入了新功能,使其成为分区管理的多功能工具。
在本文中,将全面介绍Parted,涵盖其基本概念并且演示实际示例。如果你是Parted 的新手,请务必注意,使用Parted所做的任何修改都会立即写入磁盘。因此,在尝试修改磁盘分区时务必小心谨慎,以避免出现意外后果或数据丢失。
另外,如果打算尝试Parted,建议使用虚拟机或不包含任何关键数据的旧计算机/笔记本电脑。对磁盘分区进行修改时,重要的是该分区未被主动使用。对于主分区,可以考虑启动到救援模式,该模式提供了一个安全的环境来执行与分区相关的任务,而不会受到正在运行的操作系统的干扰。这种预防方法可确保宝贵数据的完整性,并最大限度地降低分区操作期间发生意外后果的风险。
注意:需要拥有你将要使用的计算机的root访问权限才能使用parted。
如何在Linux上安装Parted
在许多Linux发行版上,parted是预安装的。如果发行版中未包含它,可以使用以下命令安装它:
$ sudo apt install parted [Debian、Ubuntu和Mint] $ sudo yum install parted [RHEL/CentOS/Fedora和Rocky/AlmaLinux] $ sudo emerge -a sys-apps/parted [Gentoo Linux] $ sudo apk add parted [Alpine Linux] $ sudo pacman -S parted [Arch Linux] $ sudo zypper install parted [OpenSUSE]
确保安装了parted之后,可以进一步查看本文接下来介绍的parted命令一些实际使用示例。
1、检查Parted版本
要观察下面所示的类似消息,请执行以下命令。请注意,输出可能会略有不同,具体取决于Parted特定版本。默认情况下,Parted将在你的主驱动器上运行,通常标识为/dev/sda
,除非另有说明:
$ parted
如果想退出parted,只需输入:
$ quit
2、列出Linux中的磁盘分区
现在parted已经启动,现在列出所选硬盘的分区。如前所述,parted默认选择你的第一个驱动器,运行print
查看磁盘分区情况:
(parted) print
运行时print
还会显示硬盘信息和型号,这是来自真实硬盘的示例(不是如上图所示的虚拟硬盘):
(parted) print Model: ATA TOSHIBA MQ01ACF0 (scsi) Disk /dev/sda: 320GB Sector size (logical/physical): 512B/4096B Partition Table: msdos Number Start End Size Type File system Flags 1 1049kB 256MB 255MB primary ext2 boot 2 257MB 320GB 320GB extended 5 257MB 320GB 320GB logical lvm
在上面的示例中,可以看到磁盘型号、容量扇区大小和分区表。
3、在Linux中更改或切换分区
如果有多个硬盘,可以使用“ select
”命令轻松地在磁盘之间切换。在下面的示例中,将从系统上的/dev/sda
辅助驱动器切换到/dev/sdb
驱动器。要轻松地在磁盘之间切换,可以使用:
(parted) select /dev/sdX
注意:更改"X"
为您要切换到的磁盘的盘符。
4、在Linux中创建分区
Parted可用于创建主磁盘分区和逻辑磁盘分区。在本例中,主要展示如何创建主分区,但逻辑分区步骤是相同的。要创建新分区,parted使用“ mkpart
”。你可以为其提供其它参数,利润如"primary"
或"logical"
,具体根据你希望创建的分区类型。
在开始创建分区之前,确保使用(你已选择的)正确的磁盘非常重要。首先使用print:
(parted) print
如上图所示,这里使用的是34GB的虚拟驱动器。首先会给新磁盘一个标签,然后创建一个分区并在其上设置文件系统。所以,现在第一步是为新磁盘指定一个标签名称:
(parted) mklabel msdos
现在使用mkpart
创建新分区 ,列出的单位为兆字节 (MB),这里将创建一个从1到10000的10GB分区:
(parted) mkpart Partition type? primary/extended? primary File system type? [ext2]? Start? 1 End? 10000 (parted) print Model: ATA VBOX HARDDISK (scsi) Disk /dev/sdb: 34.4GB Sector size (logical/physical): 512B/512B Partition Table: msdos Disk Flags: Number Start End Size Type File system Flags 1 1049kB 10.0GB 9999MB primary ext2 lba
接下来,使用"quit"
命令退出parted,并且这里将使用mkfs
在ext4文件系统中格式化新分区。要实现此目的,请运行以下命令:
# mkfs.ext4 /dev/sdb1
注意:执行上述命令时选择正确的磁盘和分区非常重要!
现在让我们通过在辅助磁盘上打印分区表来验证结果。在文件系统列下,应该看到ext4或你决定用于分区的文件系统类型:
5、调整Linux磁盘分区大小
Parted包含多个有用的函数,其中之一是"resizepart"
.。现在你可能已经明白了这一点,"resizepart"
可以帮助你调整分区大小。在下面示例中,将看到如何调整现有分区的大小。出于本示例的目的,这里将使用之前创建的分区。
首先,需要知道要调整大小的分区的数量,这可以通过使用"print"
轻松找到:
(parted) print
在本文的示例中,分区号是"1"
。现在运行resizepart命令:
(parted) resizepart
系统将询问你要调整大小的分区的数量。输入其号码,之后系统将要求为此分区设置新的结束点。请记住,默认情况下单位为MB。在本文示例中,将新分区大小设置为15GB:
(parted) resizepart Partition number? 1 End? [10.0GB]? 15000
现在使用以下"print"
命令验证结果:
(parted) print
6、删除Linux分区
接下来介绍如何从硬盘驱动器中删除分区。为此,需要在parted中使用rm命令。要删除磁盘分区,需要知道其编号。如前所述,可以使用"print"
轻松获得该数字。在本文示例中,将从辅助驱动器中删除带有1
编号的/dev/sdb1
分区:
(parted) rm 1
通过打印分区表来验证结果:
7、拯救Linux磁盘分区
Parted支持“rescue"
实用程序”,可帮助你恢复起点和终点之间丢失的分区。如果在该范围内找到分区,它将尝试恢复它。以下是一个例子:
(parted) rescue Start? 1 End? 15000 (parted) print Model: Unknown (unknown) Disk /dev/sdb1: 15.0GB Sector size (logical/physical): 512B/512B Partition Table: loop Disk Flags: Number Start End Size File system Flags 1 0.00B 15.0GB 15.0GB ext4
8、更改Linux分区标志
使用parted,可以更改磁盘分区标志的状态。支持的标志有:
- boot
- root
- swap
- hidden
- raid
- lvm
- lba
- legacy_boot
- irst
- esp
- palo
状态可以是"on"
或"off"
。要更改标志,只需在parted中运行"set"
命令即可:
(parted) set 2 lba on
上面的命令将lba
第二个分区的标志设置为on,使用以下print
命令验证结果:
结论
Parted是一个有用且功能强大的实用程序,可以帮助你管理Linux系统中的磁盘分区。按照惯例,在使用磁盘分区时,需要格外小心。在使用Parted之前,请务必备份重要的数据,并确保你了解所执行的操作的后果。
当然,以上只是Parted命令的一些基本用法示例。Parted还提供其它许多选项和功能,你可以使用help
命令来查看完整的命令列表和使用说明。