概述

parted 命令是可以在命令行直接分区和格式化的,不过 parted 交互模式才是更加常用的命令方式。

parted命令

进入交互模式命令如下:

[root@localhost ~]# parted 硬盘设备文件名

例如:

[root@localhost ~]# parted /dev/sdb
#打算继续划分/dev/sdb硬盘
GNU Parted 2.1
使用/dev/sdb
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted)
#parted 的等待输入交互命令的位置
(parted) help
#输入 help,可以看到在交互模式下支持的所有命令
align-check TYPE N check partition N for TYPE(min|opt)alignment
check NUMBER do a simple check on the file system
cp [FROM-DEVICE] FROM-NUMBER TO-NUMBER copy file system to another partition
help [COMMAND] print general help, or help on COMMAND
mklabel, mktable LABEL-TYPE create a new disklabel(partition table)
mkfs NUMBER FS-TYPE make a FS-TYPE file system on partition NUMBER
mkpart PART-TYPE [FS-TYPE] START END make a partition
mkpartfs PART-TYPE FS-TYPE START END make a partition with a file system
move NUMBER START END move partition NUMBER
name NUMBER NAME name partition NUMBER as NAME
print [devices| free| list, all| NUMBER] display the partition table, available
devices, free space, all found partitions, or a particular partition
quit exit program
rescue START END rescue a lost partition near START and END
resize NUMBER START END resize
partition NUMBER and its file system
rm NUMBER delete partition NUMBER
select DEVICE choose the device to edit
set NUMBER FLAG STATE change the FLAG on partition NUMBER
toggle [NUMBER [FLAG]] toggle the state of FLAG on partition NUMBER
unit UNIT set the default unit to UNIT
version display the version number and copyright
information of GNU Parted

parted 交互命令比较多,我们介绍常见的命令,如表 1所示。

parted交互命令 说 明
check NUMBER 做一次简单的文件系统检测
cp [FROM-DEVICE] FROM-NUMBER TO-NUMBER 复制文件系统到另一个分区
help [COMMAND] 显示所有的命令帮助
mklabel,mktable LABEL-TYPE 创建新的磁盘卷标(分区表)
mkfs NUMBER FS-TYPE 在分区上建立文件系统
mkpart PART-TYPE [FS-TYPE] START END 创建一个分区
mkpartfs PART-TYPE FS-TYPE START END 创建分区,并建立文件系统
move NUMBER START END 移动分区
name NUMBER NAME 给分区命名
print [devices|free|list,all|NUMBER] 显示分区表、活动设备、空闲空间、所有分区
quit 退出
rescue START END 修复丢失的分区
resize NUMBER START END 修改分区大小
rm NUMBER 删除分区
select DEVICE 选择需要编辑的设备
set NUMBER FLAG STATE 改变分区标记
toggle [NUMBER [FLAG]] 切换分区表的状态
unit UNIT 设置默认的单位
Version 显示版本

parted命令的使用

查看分区表

(parted) print
#进入print指令
Model: VMware, VMware Virtual S (scsi)
#硬盘参数,是虚拟机
Disk/dev/sdb: 21.5GB
#硬盘大小
Sector size (logical/physical): 512B/512B
#扇区大小
Partition Table: msdos
#分区表类型,是MBR分区表
Number Start End Size Type File system 标志
1 32.3kB 5379MB 5379MB primary
2 5379MB 21.5GB 16.1GB extended
5 5379MB 7534MB 2155MB logical ext4
6 7534MB 9689MB 2155MB logical ext4
#看到了我们使用fdisk命令创建的分区,其中1分区没被格式化;2分区是扩展分区,不能被格式化

使用 print 命令可以査看分区表信息,包括硬盘参数、硬盘大小、扇区大小、分区表类型和分区信息。分区信息共有 7 列,分别如下:

  1. Number:分区号。
  2. Start:分区起始位置。这里不再像fdisk那样用柱面表示,使用字节表示更加直观。
  3. End:分区结束位置。
  4. Size:分区大小。
  5. Type:分区类型。
  6. Filesystem:文件系统类型。
  7. 标志:分区的标记。

修改成GPT分区表

(partcd) mklabel gpt
#修改分区表命令
警告:正在使用/dev/sdb上的分区。由于/dev/sdb分区已经挂载,所以有警告。注意,如果强制修改,那么原有分区及数据会消失
忽略/Ignore/放弃/Cancel? ignore
#输入ignore忽略报错
警告:The existing disk label on /dev/sdb will be destroyed and all data on this disk will be lost. Do you want to continue?
是/Yes/否/No? yes
#输入 yes
警告:WARNING: the kernel failed to re-read the partition table on /dev/sdb (设 备或资源忙).As a result, it may not reflect all of your changes until after reboot.
#下次重启后才能生效
(parted) print
#查看一下分区表
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sdb: 21.5GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
#分区表已经变成 GPT
Number Start End Size File system Name 标志
#所有的分区都消失了

修改了分区表,如果这块硬盘上已经有分区了,那么原有分区和分区中的数据都会消失,而且需要重启系统才能生效。
另外,我们转换分区表的目的是支持大于 2TB 的分区,如果分区并没有大于 2TB,那么这一步是可以不执行的。
注意,一定要把 /etc/fstab 文件和原有分区中的内容删除才能重启,否则会报错。

建立分区

因为修改过了分区表,所以/dev/sdb硬盘中的所有数据都消失了,我们就可以重新对这块硬盘分区了。不过,在建立分区时,默认文件系统就只能是 ext2 了。命令如下:

(parted)mkpart
#输入创建分区命令,后面不要参数,全部靠交互
指定
分区名称? []?disk1
#分区名称,这里命名为disk 1
文件系统系统? [ext2]?
#文件系统类型,直接回车,使用默认文件系统ext2
起始点? 1MB
#分区从1MB开始
结束点?5GB分区到5GB结束
#分区完成
(parted) print
#查看一下
Model: VMware, VMware Virtual S (scsi)
Disk/dev/sdb: 21.5GB
Sector size (logical/physical): 512B/512B Partition Table: gpt
Number Start End Size Rle system Name 标志
1 1049kB 5000MB 4999MB disk1
#分区1已经出现

现在用 print 查看的分区和第一次查看 MBR 分区表的分区时有些不一样了,少了 Type 这个字段,也就是分区类型字段,多了 Name(分区名)字段。分区类型是用于标识主分区、扩展分区和逻辑分区的,不过这种标识只在 MBR 分区表中使用,现在已经变成了 GPT 分区表,所以就不再有 Type 类型了。

建立文件系统

分区分完后,还需要进行格式化。我们知道,如果使用 parted 交互命令格式化,则只能格式化成 ext2 文件系统。我们在这里要演示一下 parted 命令的格式化方法,所以就格式化成 ext2 文件系统。命令如下:

(parted) mkfs
#格式化命令(很奇怪,也是mkfs,但是这只是parted的交互命令)
WARNING: you are attempting to use parted to operate on (mkfs) a file system.
parted's file system manipulation code is not as robust as what you'll find in
dedicated, file-system-specific packages like e2fsprogs. We recommend
you use parted only to manipulate partition tables, whenever possible.
Support for performing most operations on most types of file systems
will be removed in an upcoming release.
警告:The existing file system will be destroyed and all data on the partition will be lost. Do you want to continue?
是/Yes/否/No? yes
#警告你格式化丟失,没关系,已经丢失过了
分区编号? 1
文件系统类型 [ext2]?
#指定文件系统类型,写别的也没用,直接回车
(parted) print #格式化完成,查看一下
Model: VMware, VMware Virtual S (scsi)
Disk/dev/sdb: 21,5GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Number Start End Size File system Name标志
1 1049kB 5000MB 4999MB ext2 diski
#拥有了文件系统

如果要格式化成 ext4 文件系统,那么请 mkfs 命令帮忙吧(注意:不是 parted 交互命令中的 mkfs,而是系统命令 mkfs)。

调整分区大小

parted 命令还有一大优势,就是可以调整分区的大小(在 Windows 中也可以实现,不过要么需要转换成动态磁盘,要么需要依赖第三方工具,如硬盘分区魔术师)。起始 Linux 中 LVM 和 RAID 是可以支持分区调整的,不过这两种方法也可以看成动态磁盘方法,使用 parted 命令调整分区更加简单。

注意,parted 调整已经挂载使用的分区时,是不会影响分区中的数据的,也就是说,数据不会丢失。但是一定要先卸载分区,再调整分区大小,否则数据是会出现问题的。另外,要调整大小的分区必须已经建立了文件系统(格式化),否则会报错。
命令如下:

(parted) resize
分区编号? 1
#指定要修改的分区编号
起始点? [1049kB]? 1MB
#分区起始位置
结束点? [5000MB]? 6GB
分区结束位置
(parted) print
#查看一下
Model: VMware, VMware Virtual S (scsi)
Disk/dev/sdb: 21,5GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Number Start End Size File system Name标志
1 1049kB 6000MB 5999MB ext2 diski
#分区大小改变

删除分区

命令如下:

(parted) rm
#删除分区命令
分区编号? 1
#指定分区编号
(parted) print
#查看一下
Model: VMware, VMware Virtual S (scsi)
Disk/dev/sdb: 21.5GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Number Start End Size File system Name 标志 #分区消失

要注意的是,parted 中所有的操作都是立即生效的,没有保存生效的概念。这一点和 fdisk 交互命令明显不同,所以做的所有操作大家要加倍小心。

Linux文件系统管理 parted分区命令的更多相关文章

  1. Linux文件系统管理 fdisk分区命令

    概述 我们在安装操作系统的过程中已经对系统硬盘进行了分区,但是如果我新添加了一块硬盘,想要正常使用时,在Linux中有专门的分区命令 fdisk 和 parted.其中 fdisk 命令较为常用,但不 ...

  2. Linux文件系统管理 swap分区及作用

    概述 在安装系统的时候已经建立了 swap 分区.swap 分区是 Linux 系统的交换分区,当内存不够用的时候,我们使用 swap 分区存放内存中暂时不用的数据.也就是说,当内存不够用时,我们使用 ...

  3. Linux文件系统管理命令(第二版)

    Linux文件系统管理命令 常用命令 1.df命令 查看分区使用情况 常用选项 -h 比较人性化 -m 以兆字节显示分区使用情况 显示信息: Mounted on:挂载点 Filesystem:对应的 ...

  4. Linux文件系统管理 常见命令df、du、fsck、dumpe2fs

    概述 Linux文件系统管理 常见命令df.du.fsck.dumpe2fs. 文件系统查看命令:df 通过 df 命令可以査看已经挂载的文件系统的信息包括设备文件名.文件系统总大小.已经使用的大小. ...

  5. Linux 文件系统管理

    Linux 文件系统管理 课程大纲  文件系统构成及命令  硬盘分区及管理  磁盘配额  备份与恢复   文件系统构成 /usr/bin ./bin:存放所有用户可以执行的命令 /usr/s ...

  6. linux 文件系统管理三部曲之三:挂载文件系统

    linux 文件系统管理三部曲之一:磁盘分区 linux 文件系统管理三部曲之二:创建文件系统 上面说明了,硬盘的划分和格式化,那么怎么使用,还没说,这里说一下,怎么使用创建好的文件系统. 使用文件系 ...

  7. parted分区命令

    Parted是一个比fdisk更高级的工具,它支持多种分区表格式,包括MS-DOS和GPT.它允许用户创建,删除,调整大小,缩小,移动和复制分区,重新组织磁盘使用,以及将数据复制到新硬盘,但在缩小分区 ...

  8. Linux 文件夹相关常用命令

    Linux 文件夹相关常用命令 查看 ls -la -l 列出详细信息 -a 列出全部,包括.和.. 删除 rm <folder> -rf  -r  就是向下递归,不管有多少级目录,一并删 ...

  9. Linux文件压缩和解压缩命令

    Linux文件压缩和解压缩命令: tar 命令(打包并压缩的话,原文件也会默认存在) -c 建立打包档案 -x 解包 -t 查看包里的类容 -r 向包里追加文件 -v 显示打包过程 -f 文件 比如: ...

随机推荐

  1. imx6用文件io操作gpio

    具体请参考: http://blog.csdn.net/u014213012/article/details/53140781 这里要注意的是: 要让linux支持文件io方式操作gpio,首先驱动必 ...

  2. Help Tomisu UVA - 11440 难推导+欧拉函数,给定正整数N和M, 统计2和N!之间有多少个整数x满足,x的所有素因子都大于M (2<=N<=1e7, 1<=M<=N, N-M<=1E5) 输出答案除以1e8+7的余数。

    /** 题目:Help Tomisu UVA - 11440 链接:https://vjudge.net/problem/UVA-11440 题意:给定正整数N和M, 统计2和N!之间有多少个整数x满 ...

  3. JS方法代理

    作者:Jiang, Jilin JS作为一门脚本语言.十分easy上手.外加其灵活性,能够轻而易举地扩展功能.今天,我们就聊聊JS的方法代理. 方法代理是脚本语言中常见的方法扩展形式.这样的灵活的形式 ...

  4. 如何使用 TP中的公共函数 (定义在common/common.php中的函数)

    如何使用 TP中的公共函数 (定义在common/common.php中的函数) (2011-09-30 15:32:09) 转载▼ 标签: 杂谈   1.在common/common.php 中有个 ...

  5. Hibernate使用Log4j日志记录(使用properties文件)

    我们知道,Log4j和Logback框架可用于支持日志记录hibernate,使用log4j有两种执行日志记录的方法: 通过log4j.xml文件(或) 通过log4j.properties文件 在这 ...

  6. 【OC学习-13】什么是组合,它和继承是什么关系?

    继承有两缺点:(1)当层级越来越多时,假如每一个层级都有实例变量,那么最下层的子类继承的实例变量会超级多,沉重.(2)当消息传递自子类往上时.层级越多,效率越低下. 所以就有了组合.说实话区分继承和组 ...

  7. iOS 集成阿里百川最新版(3.1.1.96) 实现淘宝授权登录以及调用淘宝客户端商品详情页

      公司最近要做第三方登录,由于是做导购项目,必不可少的有淘宝的授权登录.本来就是一个授权登录,没什么大不了的.但淘宝的无线开放业务——阿里百川更新的最新版本3.1.1.96,开发文档不是不详细,是很 ...

  8. Laravel5.1 路由 -基础

    什么是路由? 大K简单的说下,路由是用户访问我们程序的一个入口,比方说 你在浏览器输入:www.myblogs.com/create 就会打开一个页面,我们接收到这一个请求后后台需要做一些事儿来反馈给 ...

  9. gitlab报错收集

    登录502报错 一般是权限问题,解决方法: /var/log/gitlab 如果还不行,请检查你的内存,安装使用GitLab需要至少4GB可用内存(RAM + Swap)! 由于操作系统和其他正在运行 ...

  10. iOS面试题--Model层--数据持久化储存方案

    数据持久化储存方案有哪些? iOS中的数据持久化方式,基本上有以下四种:属性列表.对象归档.SQLite3和Core Data 1.属性列表涉及到的主要类:NSUserDefaults,一般 [NSU ...