管理硬盘分区众所周知,对硬盘进行分区是Linux管理员最重要的管理工作之一,这一点他们不得不知道。在最坏的情况下,您每周至少会收到一次来自依赖组的请求,而且在较大的环境中会更频繁。您可能会问为什么我们使用parted而不是fdisk?有什么不同?好问题,我会告诉你两者之间的区别。parted支持用户在大于2TB的硬盘上创建硬盘分区,fdisk命令不支持。与fdisk相比,parted是一个更高级的工具,支持更多的分区表类型,包括GPT(LCTT译注:全局唯一标识分区表)它允许用户调整分区大小,但在缩小分区时并没有像我预期的那样工作分区大小,大多数时候我收到错误消息。所以我建议用户不要使用parted来减小分区大小。什么是partedParted是一个用于操作硬盘分区的程序。它支持多种分区表类型,包括MS-DOS和GPT。它允许用户创建、删除、调整大小、收缩、移动和复制分区,以及重组硬盘的使用和将数据复制到新硬盘。gparted是parted的GUI前端。如何安装parted大多数发行版都预装了parted。如果没有,请使用以下命令安装parted。对于Debian/Ubuntu用户,使用APT-GET命令或APT命令安装parted。$sudoaptinstallparted对于RHEL/CentOS用户,使用YUM命令安装parted。$sudoyuminstallparted对于Fedora用户,使用DNF命令安装parted。$sudodnfinstallparted对于ArchLinux用户,使用Pacman命令安装parted。$sudopacman-Sparted对于openSUSE用户,使用Zypper命令安装parted。$sudozypperinparted如何启动parted下面的parted命令会自动选择/dev/sda,因为这是系统的第一个硬盘。$sudopartedGNUparted3.2使用/dev/sda欢迎使用GNUparted!输入'help'可以查看命令列表。(parted)同时,我们也可以使用下面的命令来重新选择相应的硬盘。(parted)select/dev/sdbUsing/dev/sdb(parted)如果要选择特定的硬盘,按以下格式输入命令。这次,我们将选择/dev/sdb。$sudoparted[设备名称]$sudoparted/dev/sdbGNUparted3.2使用/dev/sdb欢迎使用GNUparted!键入“help”查看命令列表。(parted)如何使用parted列出所有可用的硬盘如果您不知道计算机上有哪些硬盘,只需运行以下命令,它将显示所有可用硬盘的名称,以及其他有用的信息,如存储空间、型号、扇区大小、硬盘标识和分区信息。$sudoparted-lModel:ATAVBOXHARDDISK(scsi)Disk/dev/sda:32.2GBSectorsize(logical/physical):512B/512BPartitionTable:msdosDiskFlags:NumberStartEndSizeTypeFilesystemFlags11049kB32.2GB32.2GBprimaryext4bootError:/dev/sdb:unrecognizeddisklabelModel:ATAVBOXHARDDISK(scsi)Disk/dev/sdb:53.7GBSectorsize(logical/physical):512B/512BPartitionTable:unknownDiskFlags:上面的错误信息清楚地表明硬盘磁盘/dev/sdb没有有效的磁盘标签。它不会自动获取磁盘标签,所以我们必须自己设置硬盘标签。如何使用parted创建硬盘分区parted允许用户创建主分区或扩展分区。创建这两种分区的步骤还是一样的,但是请确保您已经指定了所需的分区类型,例如primary(主分区)或extended(扩展分区)。为了演示这一点,我们在计算机上安装了一个新的50GB硬盘驱动器,安装在/dev/sdb上。创建分区有两种方法,第一种比较冗长,另一种只是一个命令。在下面的示例中,我们将以更详细的方式添加主分区。提醒一下,我们应该先设置磁盘标签,因为它不会自动设置任何标签。在下面的示例中,我们将创建一个10GB的分区$sudoparted/dev/sdbGNUparted3.2使用/dev/sdb欢迎使用GNUparted!键入“帮助”以查看命令列表。(parted)mklabelmsdos(parted)unitGB(parted)mkpartPartition类型?主要/扩展?主要文件系统类型?[分机2]?ext4开始?0.00GB结束?10.00GB(parted)printModel:ATAVBOXHARDDISK(scsi)Disk/dev/sdb:53.7GB/physical:512B/512BPartitionTable:msdosDiskFlags:NumberStartEndSizeTypeFilesystemFlags10.00GB10.0GB10.0GBprimaryext4lba(parted)quitInformation:您可能需要更新/etc/fstab。同时,我们也可以使用单个parted命令在下面的例子中,我们将在硬盘上创建一个10GB的分区。$sudoparted[DiskName][mkpart][PartitionType][FilesystemType][PartitionStartSize][PartitionEndSize]$sudoparted/dev/sdbmkpartprimaryext410.0GB20.0GB信息:您可能需要更新/等/fstab。如何使用所有剩余空间创建分区您已经创建了除/home之外的所有需要??的分区,而您想使用硬盘上的所有剩余空间来创建/home分区,怎么办?以下命令可用于创建分区。下面的命令创建一个33.7GB的分区,从20GB开始到53GB结束。100%利用率允许用户使用硬盘上所有剩余的可用空间。$sudoparted[DiskName][mkpart][PartitionType][FilesystemType][PartitionStartSize][PartitionEndSize]$sudoparted/dev/sdbmkpartprimaryext420.0GB100%信息:您可能需要更新/等/fstab。如何使用parted列出所有分区你可能已经注意到我们在上面的步骤中创建了三个分区。如果要列出硬盘上所有可用的分区,可以使用打印命令。$sudoparted/dev/sdbprintModel:ATAVBOXHARDDISK(scsi)Disk/dev/sdb:53.7GB扇区大小(逻辑/物理):512B/512B分区表:msdosDiskFlags:NumberStartEndSizeTypeFilesystemFlags11049kB10.0GB9999MBprimaryext4210.0GB20.0GB9999MBprimaryext4320.0GB53.7GB33.7GBprimaryext4如何使用mkfs格式化分区用户可以使用mkfs命令格式化分区。以下步骤将使用mkfs格式化分区。$sudomkfs.ext4/dev/sdb1mke2fs1.43.4(2017年1月31日)创建具有2621440个4k块和656640个inode的文件系统文件系统UUID:415cf467-634c-4403-8c9f-47526bbaa381存储在块上的超级块备份:68304、916、327229376、294912、819200、884736、1605632分配组表:完成写入inode表:完成创建日志(16384个块):完成写入超级块和文件系统记帐信息:完成相同。$sudomkfs.ext4/dev/sdb2$sudomkfs.ext4/dev/sdb3创建必要的文件夹并在其上安装分区。$sudomkdir/par1/par2/par3$sudomount/dev/sdb1/par1$sudomount/dev/sdb2/par2$sudomount/dev/sdb3/par3执行以下命令查看新建分区是否挂载成功.$df-h/dev/sdb[1-3]已用文件系统大小AvailUse%Mountedon/dev/sdb19.2G37M8.6G1%/par1/dev/sdb29.2G37M8.6G1%/par2/dev/sdb331G49M30G1%/par3如何查看硬盘剩余空间执行以下命令查看硬盘剩余空间,该硬盘剩余空间为25.7GB。$sudoparted/dev/sdbprintfreeModel:ATAVBOXHARDDISK(scsi)Disk/dev/sdb:53.7GB扇区大小(逻辑/物理):512B/512B分区表:msdosDiskFlags:NumberStartEndSizeTypeFilesystemFlags32.3kB1049kB1016kB可用空间11049kB10.0GB9999MBprimaryext4210.0GB20.0GB9999MBprimaryext4320.0GB28.0GB8001MBprimaryext428.0GB53.7GB25.7GB可用空间如何使用parted命令调整分区大小以允许调整大小。但是就像我在文章开头所说的那样,不要缩小分区的大小,否则会出现很多错误。运行以下命令检查硬盘分区和所有可用空间。您可以看到硬盘上有25.7GB的可用空间。$sudoparted/dev/sdbprintfreeModel:ATAVBOXHARDDISK(scsi)Disk/dev/sdb:53.7GB扇区大小(逻辑/物理):512B/512B分区表:msdosDiskFlags:NumberStartEndSizeTypeFilesystemFlags32.3kB1049kB1016kBFreeSpace11049kB10.0GB9999MBprimaryext4210.0GB20.0GB9999MBprimaryext4320.0GB28.0GB8001MBprimaryext428.0GB53.7GB25.7GBFreeSpace运行以下命令调整分区大小。我们要将分区3的末尾从28GB调整(增加)到33GB。$sudoparted[DiskName][resizepart][PartitionNumber][PartitionNewEndSize]$sudoparted/dev/sdbresizepart333.0GB信息:您可能需要更新/etc/fstab。运行以下命令确认分区是否有扩容。如您所见,分区3从8GB增加到13GB。$sudoparted/dev/sdbprintModel:ATAVBOXHARDDISK(scsi)Disk/dev/sdb:53.7GB扇区大小(逻辑/物理):512B/512B分区表:msdosDiskFlags:NumberStartEndSizeTypeFilesystemFlags11049kB10.0GB9999MBprimaryext4210.0GB20.0GB9999MBprimaryext4320.0GB33.0GB13.0GBprimaryext4调整文件系统的大小。$sudoresize2fs/dev/sdb3resize2fs1.43.4(2017年1月31日)将/dev/sdb3上的文件系统大小调整为3173952(4k)个块。/dev/sdb3上的文件系统现在是3173952(4k)块长。最后检查分区是否已经扩容。$df-h/dev/sdb[1-3]已用文件系统大小AvailUse%Mountedon/dev/sdb19.2G5.1G3.6G59%/par1/dev/sdb29.2G2.1G6.6G24%/par2/dev/sdb312G1.1G11G10%/par3如何使用parted删除一个分区我们使用rm命令可以轻松删除一个不用的分区(如果这个分区不会再被使用)。在接下来的步骤中,我们将删除分区3(/dev/sdb3)。$sudoparted[DiskName][rm][PartitionNumber]$sudoparted/dev/sdbrm3Warning:Partition/dev/sdb3isbeingused.你确定你要继续吗?是/否?YesError:Partition(s)3on/dev/sdbhavebeenwritten,但我们无法将更改通知内核,可能是因为它/它们正在使用中。因此,旧分区将继续使用。您应该立即重新启动,然后再进行进一步的更改。忽略/取消?IgnoreInformation:您可能需要更新/etc/fstab。我们也可以使用下面的命令来查看。如您所见,分区3已成功删除。$sudoparted/dev/sdbprintModel:ATAVBOXHARDDISK(scsi)Disk/dev/sdb:53.7GB扇区大小(逻辑/物理):512B/512B分区表:msdosDiskFlags:NumberStartEndSizeTypeFilesystemFlags11049kB10.0GB9999MBprimaryext4210.0GB20.0GB9999MBprimaryext4如何使用parted命令设置/更改分区标志我们可以使用以下命令轻松更改分区标志。我们将在/dev/sdb2上设置lvm标志。$sudoparted[DiskName][set][PartitionNumber][FlagsName][FlagOn/Off]$sudoparted/dev/sdbset2lvmonInformation:您可能需要更新/etc/fstab。我们可以列出Partition来验证此更改。$sudoparted/dev/sdbprintModel:ATAVBOXHARDDISK(scsi)Disk/dev/sdb:53.7GB扇区大小(逻辑/物理):512B/512B分区表:msdosDiskFlags:NumberStartEndSizeTypeFilesystemFlags11049kB10.0GB9999MBprimaryext4210.0GB20.0GB9999MBprimaryext4lvm如果您想知道可用的标志,只需使用以下命令。$(parted)helpsetsetNUMBERFLAGSTATE更改分区NUMBER上的FLAGNUMBER是Linux使用的分区号。在MS-DOS磁盘标签上,主分区编号从1到4,逻辑分区从5开始。FLAG是以下之一:boot、root、swap、hidden、raid、lvm、lba、hp-service、palo、prep、msftres、bios_grub、atvrecv、diag、legacy_boot、msftdata、irst、espSTATE是以下之一:on、off如果您想了解parted可用的其他命令,请转到帮助页面。$sudopartedGNUparted3.2使用/dev/sda欢迎使用GNUparted!键入“help”查看命令列表。(parted)helpalign-checkTYPENcheckpartitionNforTYPE(min|opt)alignmenthelp[COMMAND]printgeneralhelp,orhelponCOMMANDmklabel,mktableLABEL-TYPE创建anewdisklabel(partitiontable)mkpartPART-TYPE[FS-TYPE]STARTENDmakeapartitionnameNUMBERNAMEnamepartitionNUMBERasNAMEprint[devices|free|list,all|NUMBER]显示分区表,可用设备,空闲空间,所有找到的分区,或特定分区退出退出程序rescueSTARTEND在START和END附近拯救丢失的分区resizepartNUMBERENDresizepartitionNUMBERrmNUMBERdeletepartitionNUMBERselectDEVICE选择要编辑的设备disk_setFLAGSTATE更改选定的FLAGdevicedisk_toggle[FLAG]切换所选设备上的FLAG状态setNUMBERFLAGSTATE更改分区NUMBER上的FLAGtoggle[NUMBER[FLAG]]ateofFLAGonpartitionNUMBERunitUNIT设置默认单位为UNITversion显示GNU的版本号和版权信息parted(parted)退出
