parted命令——磁盘分区工具

   日期:2024-12-25    作者:7n86v 移动:http://mip.riyuangf.com/mobile/quote/15205.html

parted命令是由GNU组织开发的一款功能强大的磁盘分区和分区大小调整工具,与fdisk命令不同,它能够调整分区的大小,并且它可以处理最常见的分区格式,包括:ext2、ext3、fat16、fat32、NTFS、ReiserFS、JFS、XFS、UFS、HFS以及Linux交换分区等。

需要特别注意的是parted的操作是即刻生效的,所以操作前要认真想好。

【说明】以下操作在openEuler 22.03系统中完成。

用法格式:parted  [选项]  [设备]  [指令]
parted命令有交互式模式和非交互式模式两种运行模式, 如果没有给出“指令”,则以交互模式运行。

常用选项如下表所示

选项含义-h显示帮助信息-l列出系统中所有的磁盘分区-s脚本模式,即关闭交互模式,使用非交互模式-v显示版本

在指令中,常用的子命令如下

子命令含义align-check检查分区 N 是否为 (最小=min|最佳=opt) 对齐类型help打印帮助信息,或关于某个命令的帮助信息mklabel或mktable创建新的磁盘标签 (分区表)mkpart创建一个分区name给指定的分区命名print打印分区表,或者分区quit退出程序rescue修复丢失的分区resizepart调整分区大小rm删除分区select选择要编辑的设备set更改分区的旗标toggle设置或取消分区的旗标unit设置默认的单位version显示版本信息


与fdisk类似,parted可以使用命令【parted 设备名】进入交互模式。进入交互模式后,可以通过上表中的各种子命令对磁盘分区进行管理。

以下以两个新磁盘/dev/sdb和/dev/sdc为操作对象。

mklabel或者mktable子命令用于创建或更改磁盘标签(分区表类型)。以下以mkmklabel子命令为例进行介绍。

语法格式mklabel LABEL-TYPE  
利用【help mklabel】命令可以查看到LABEL-TYPE 支持的类型,其中最常用的就是gpt和msdos(也就是MBR) 。

mklabel命令通常不会破坏磁盘数据,但有可能让数据变得不可读。这是就需要用到rescue子命令来恢复分区,详见后面的rescue子命令。

用法示例1创建MBR磁盘分区表, 以新磁盘/dev/sdb为例。

 

用法示例2创建GPT磁盘分区表,以新磁盘/dev/sdc为例。

 
 

利用mklabel子命令创建新的分区标签并没有创建任何分区,还需要使用mkpart子命令创建新的分区。

语法格式mkpart 分区类型 [文件系统类型] 起始点 结束点 
利用【help mkpart】命令可以查看到支持的分区类型和支持的文件系统类型。

其中分区类型包括primary(主分区)、logical(逻辑分区)和extended(扩展分区)三种。扩展分区和逻辑分区只对msdos和dvh分区表有效。

文件系统包括ext2、ext3、ext4、xfs、fat32和ntfs等数十种类型。

起始点结束点分别指定分区的开始和结束位置,比如2048s、0%或者2GB等值,负值表示磁盘的末尾数起。例如,-1s 表示最后一个扇区。通常第一个分区的起始点为0%或者2048s,第二分区的起始点为第一个分区的结束点。结束点与起始点的差就是该磁盘分区的大小。

(1)创建MBR分区

MBR分区表中有主分区、扩展分区和逻辑分区之分。主分区和扩展分区的编号为1-4,逻辑分区的编号从5开始编号。

  • 创建MBR主分区示例
 
  • 创建MBR扩展分区和逻辑分区示例

要建立逻辑分区必须先建立扩展分区,逻辑分区是在扩展分区中创建的。

 

(2)创建GPT分区

GPT分区表下的所有分区都是主分区,分区编号从1开始顺序编号,创建GPT分区示例如下

 

2、设置默认的单位

从前面的示例中可以看到,系统默认使用的单位是MB来显示磁盘分区容量,使用unit子命令可以指定默认单位。

语法格式unit 单位

利用【help unit】子命令,或者在unit子命令后连续两次Tab键,可以查看支持的单位,主要单位及其简要介绍如下

  • s:扇区(n个字节,取决于扇区大小,通常为512字节)
  • B:字节
  • KiB:千字节(1024字节)
  • MiB:兆字节(1048576字节)
  • GiB:gibibyte(1073741824字节)
  • TiB:tebibyte(1099511627776字节)
  • kB:千字节(1000字节)
  • MB:兆字节(1000000字节)
  • GB:千兆字节(1000000000字节)
  • TB:兆字节(1000000000000字节)
  • %:设备的百分比(0到100之间)
  • cyI:柱面(与BIOS CHS几何相关)
  • chs:柱面,磁头,扇区寻址(与BIOS CHS几何相关)
  • compact:这是一个特殊的单位,默认输入为兆字节,并且选择一个单位,以紧凑的可读格式表示输出

用法示例

 
 

可以利用name子命令命名或更改分区名称,但只支持GPT, Mac, MIPS 和PC98 格式的分区。

语法格式name 分区编号 分区名称 
示例如下

 
 

利用set子命令可以设置分区的旗标(flag)及其状态。

语法格式set 分区编号 旗标 状态

利用【help set】子命令可以查看set子命令的用法和支持的旗标类型

旗标的状态有两种:on(生效)和off(失效)。

常见的旗标类型及其简介如下

  • boot:设置该旗标类型的状态为on表示从该分区引导系统。
  • lba:用于MS-DOS分区表,该旗标告诉系统使用LBA(Logic Block Addressing)模式。
  • swap:如果某分区是Linux系统的交换分区,那么就要对该分区启用这个标记。
  • hidden:启用这个标记能使一个分区‘隐藏’起来。 
  • raid:启用这个标记能够告诉Linux系统这是一个软RAID磁盘阵列。 
  • LVM:启用这个标记能够告诉Linux系统这是一个LVM逻辑卷。

用法示例

 
 

利用toggle子命令可以切换分区旗标的状态。

语法格式toggle  分区编号  旗标

用法示例

 
 

利用resizepart子命令可以调整分区的大小。但尽量不要对分区大小进行缩减,缩减磁盘分区大小可能会丢失数据,若确要调整建议要先备份好数据。

语法格式resizepart 磁盘分区编号 结束点

用法示例

 
 

利用rm子命令可以删除指定的磁盘分区。

语法格式rm 磁盘分区编号

用法示例

 
 

若用parted的rm子命令误删除了一个分区,就可以使用rescue子命令恢复误删除的磁盘分区。

语法格式rescue 起始点 结束点

用法示例上一个示例中已经删除了磁盘分区,现在通过rescue子命令将其恢复。

 

经测试,未格式化的磁盘分区被删除后不能成功恢复。

非交互模式就是把要操作的命令完整地写出来,对parted命令比较熟悉后就可以采用这种模式。

语法格式parted 磁盘名称 print

用法示例

 
 

语法格式parted 磁盘名称 mklabel 分区表类型

用法示例

 
 

语法格式 parted 磁盘名称 mkpart 磁盘分区名称 起始点 结束点

用法示例

 
 

语法格式 parted 磁盘名称 unit 单位 print

用法示例从上面的例子中可以看到显示单位为compact,以下命令更改为用GiB显示。

 
 

语法格式 parted 磁盘名称 name 分区编号 分区名称 

用法示例在上面的例子中可以看到分区1的名称为data1, 以下命令将其更改为data2

 
 

语法格式 parted 磁盘名称 set 分区编号 旗标类型 旗标状态

用法示例在上面的例子中可以看到标志为空,且为off状态

 
 

语法格式 parted 磁盘名称 toggle 分区编号 旗标类型

用法示例在上面的例子中,分区1的lvm旗标是on状态,以下命令将其切换为off状态。

 
 

语法格式 parted 磁盘名称 resizepart 分区编号 结束点

用法示例在上面的例子中可以看到分区1的大小为2GB,以下命令将其调整到3GB。

 
 

语法格式 parted 磁盘名称 rm 分区编号

用法示例在上面的示例中可以看有一个磁盘分区,以下命令将删除该分区

 
 

语法格式 parted 磁盘名称 rescue 起始点 结束点

用法示例在上面两个示例中分别可以磁盘分区的起始点和结束点,并成功地删除了该分区,以下命令将恢复该分区(该分区在删除前要求格式化


 

特别提示:本信息由相关用户自行提供,真实性未证实,仅供参考。请谨慎采用,风险自负。


举报收藏 0评论 0
0相关评论
相关最新动态
推荐最新动态
点击排行
{
网站首页  |  关于我们  |  联系方式  |  使用协议  |  隐私政策  |  版权隐私  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  网站留言  |  RSS订阅  |  违规举报  |  鄂ICP备2020018471号