『学了就忘』Linux文件系统管理 — 61、使用parted命令进行分区
1、parted
命令介绍
我们Linux系统中有两种常见的分区表,MBR分区表(主引导记录分区表)和GPT分区表(GUID分区表,也叫全局唯一标识分区表),其中:
- MBR分区表:支持的最大分区是2TB(
1TB=1024GB
)(超过2TB不识别多出来的空间);最多支持4个主分区,或3个主分区1个扩展分区。 - GPT分区表:支持最大18EB的分区(
1EB=1024PB=1024*1024TB
);最多支持128个分区,其中1个系统保留分区,127个用户自定义分区。
我们前边所说的fdisk
命令,只识别MBR分区表。如果需要对GPT分区表进行分区,需要使用parted
命令。
注意:
parted
命令也有点小问题,就是命令自身分区的时候只能格式化成ext2
文件系统,不支持ext3
文件系统,那就更不用说ext4
文件系统了(截止到CentOS6.8
还是这样,这里只是指不能用parted
命令把分区格式化成ext4
文件系统,但是parted
命令还是可以识别ext4
文件系统的)。不过这没有太多的影响,因为我们可以先用parted
命令分区格式化,再退出parted
命令,用mkfs
命令进行格式化成ext4
文件系统。
parted
命令感觉还不是太成熟,命令看文档会用就可以了。
一个硬盘的分区表改变了,原来的分区就会全部消失,该硬盘在/etc/fstab
文件中配置的自动挂载的配置要提前全部删除掉,否则下次启动系统的时候就会报错。
这里要注意一点:删除分区和建立分区是完全相反的流程。
- 建立分区:先加入一个新硬盘,
fdisk
命令进行分区设置,mkfs
命令对分区进行格式化,之后mount
命令进行分区挂载,最后修改/etc/fstab
文件进行分区自动挂载。- 删除分区:先取消掉
/etc/fstab
文件的分区自动挂载,在umount
命令取消分区挂载,卸载没有格式化,之后把分区删除掉,然后在移除硬盘。
所以执行parted
命令前一定要删除分区的自动挂载。(这个练习只进行新添加的硬盘用parted
命令分区,对创建Linux系统初始的硬盘不用parted
命令分区,所以只删除新增硬盘的自动挂载就可以。)
2、parted
交互模式
执行命令:[root@localhost ~]# parted /dev/sdb(不用写分区号)
命令结果如下,会开启一个交互模式,并告知你可以通过help
查看命令列表。
# 用`parted`命令划分/dev/sdb 硬盘
[root@localhost ~]# parted /dev/sdb
GNU Parted 2.1
使用 /dev/sdb
Welcome to GNU Parted!Type'help'to view a list of commands.
(parted)(等待输入交互命令的位置)
输入help
。结果如下:
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 NAVME
:给分区命名。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
:显示版本。
3、建立分区
(1)查看分区
命令: print [devices|free|list,all|NUMBER]
:使用print
命令可以查看分区表信息,包括硬盘参数,硬盘大小,扇区大小,分区表类型和分区信息。
结果如下:
可以看到sdb
硬盘大小是21.5GB,文件系统是msdos
(msdos
文件系统是Windows下的文件系统,在parted
命令交互中就是表示MBR分区表)。
分区信息总共七列,分别是:
Number
:分区号。Start
:分区起始位置,这里不再像fdisk
用柱面表示,而是使用Byte更加直观。End
:分区结束位置。Size
:分区大小。Type
:分区类型。File system
:文件系统类型。我不是说parted
不支持ext4
文件系统吗?注意,我一直都是说parted
不能直接把分区,直接格式化成ext4
文件系统,但是它是可以识别的。- 标志:
Flags
,就是分区的标记。
(2)修改成GPT分区表
把硬盘由MBR分区表,改成GPT分区表,使用的命令如下:
mklabel,mktable LABEL-TYPE
:创建新的磁盘卷标(分区表)。
(如果要由GPT分区表改成MBR分区表,命令为mklabel msdos
)
修改了分区表,如果这块硬盘已经有分区了,那么原有分区和分区中的数据都会消失,而且需要重启系统才会生效。
我们在查看一下当前硬盘分区表情况,如下图所示:
可以看到分区表已经变成GPT分区表,并且之前硬盘的分区信息已经没有了。
注意:在说一下,一定要把
/etc/fstab
文件中和原有分区的内容删除掉(就是修改的硬盘的分区的自动挂载),才能重启动,要不系统启动就一定会报错的。
之后quit
退出parted
命令交互,执行reboot
命令重启计算机。
重启完计算机才能执行之后的操作。(不重启后续操作是无法完成的)
(3)建立分区
因为修改过了分区表,所以/dev/sdb
硬盘中的所有数据都消失了,所以我们可以重新对这块硬盘分区了。
执行parted
命令,进入硬盘分区。
执行分区命令,对硬盘进行分区,命令如下:
mkpart PART-TYPE [FS-TYPE] START END
:创建一个分区。
注意:建立分区时,默认文件系统就只能建立成
ext2
了。
查看硬盘的分区情况,如下图所示:
已显示刚刚创建好的分区disk1
。因为没有格式化,所以File system:文件系统类型
是空着的。
不知道大家注意到了吗?
我们现在的
Type
这个字段,也就是分区类型的字段,多了Name
分区名字段。分区类型是标识主分区、扩展分区和逻辑分区的,不过这种标识只在MBR分区表中使用,我们现在已经变成了GPT分区表了,所以就不再有Type
类型了。也就说折磨我们很久的主分区、扩展分区和逻辑分区的概念不再用了(其实就是突破一个硬盘只有四个分区的限制)。
(4)建立文件系统(格式化)
分区分完了,我们还需要对分区进行格式化。不过我们已经知道如果使用parted
交互命令格式化的话,只能格式化成ext2
文件系统。我们这里是要演示下parted
命令的格式化方法。
parted
交互命令的格式化命令为mkfs
,命令如下:
mkfs NUMBER FS-TYPE
:在分区上建立文件系统。
再查看硬盘的分区情况,如下图所示:
退出,执行quit
命令。
上图提示你,如果需要让分区自动挂载,需要手动修改etc/fstab
文件。
如果要把硬盘格式化成ext4
文件系统,需要执行mkfs
命令,重新对硬盘进行格式化。(注意不是parted
交互命令中的mkfs
命令,而是系统命令mkfs
)!
执行[root@localhost ~]# mkfs -t ext4 /dev/sdb1
将sdb1
分区格式化为ext4
文件系统之后,就可以进行分区的挂载了。
如下图:
如果你需要开机自动挂载,手动修改etc/fstab
文件即可。
(5)调整分区大小
parted
命令还有一大优势,就是可以调整分区的大小(Windows中也可以实现,不过需要转换成动态磁盘,要不就需要依赖第三方工具,如硬盘分区魔术师)。起始Linux中LVM和RAID是可以支持分区调整的,不过这两种方法也可以看成是动态磁盘方法。使用parted
命令调整分区大小要更加简单。
注意:
parted
调整已经挂载使用的分区时,是不会影响分区中的数据的,也就是说数据不会丢失。但是一定要先卸载分区,再调整分区大小,否则数据是会出现问题的(有一定几率)。还有要调整大小的分区必须已经建立了文件系统(格式化),否则会报错。
- 卸载硬盘分区
sdb1
[root@localhost ~]# umount /dev/sdb1
- 使用
parted
命令调整分区大小,执行resize
命令。
resize NUMBER START END
:修改分区大小。
[root@localhost ~]# parted /dev/sdb(parted 命令不能加分区号)
注意:使用
parted
命令调整分区大小,文件系统必须是ext2
,否则命令执行不了。我们上边把sdb1
分区格式化成ext4
,是不行的。(这个知道就可以了,如果需要调整分区大小,用LVM调整就好。)
(6)删除分区
删除分区前提,要先把分区的自动挂载在/etc/fstab
文件删除,然后用umount
卸载掉分区的挂载。在执行parted
命令的删除分区命令。
rm NUMBER
:删除分区。
还有件事要注意,parted
中所有的操作都是立即生效,没有保存生效的概念。这点和fdisk
交互命令明显不同,所以所做的所有操作大家要倍加小心。
那么到底使用fdisk
命令进行分区,还是parted
命令进行分区呢?这个完全看个人习惯,我更加习惯fdisk
命令。
『学了就忘』Linux文件系统管理 — 61、使用parted命令进行分区的更多相关文章
- 『学了就忘』Linux文件系统管理 — 62、手动分配swap分区
目录 1.查看swap分区情况 2.手动修改swap分区 3.格式化swap分区 4.使用swap分区 5.配置swap分区开机之后自动挂载 1.查看swap分区情况 swap分区就相当于是内存的一个 ...
- 『学了就忘』Linux文件系统管理 — 67、通过命令模式进行LVM分区
目录 1.物理卷管理 (1)准备硬盘或者分区 (2)建立物理卷 (3)查看物理卷 (3)删除物理卷 2.创建卷组 (1)建立卷组 (2)查看卷组 (3)增加卷组容量 (4)减小卷组容量 (5)删除卷组 ...
- 『学了就忘』Linux文件系统管理 — 57、Linux文件系统介绍
目录 1.了解硬盘结构(了解即可) (1)硬盘的逻辑结构 (2)硬盘接口 2.Linux文件系统介绍 (1)Linux文件系统的特性 (2)Linux常见文件系统 3.整理一下对文件系统的认识 在了解 ...
- 『学了就忘』Linux文件系统管理 — 58、常用硬盘管理相关命令
目录 1.df命令 2.du命令 3.fsck文件系统修复命令 4.显示磁盘状态dumpe2fs 5.查看文件的详细时间 6.判断文件类型 1.df命令 df命令用于统计分区的占用状况. [root@ ...
- 『学了就忘』Linux文件系统管理 — 66、通过图形界面进行LVM分区
目录 1.选择自定义分区 2.分配boot分区 3.创建LVM物理卷 4.生成卷组 5.创建逻辑卷 6.格式化安装 我们先用新安装Linux系统时的图形化界面,来演示一下LVM逻辑卷如何进行分区. 提 ...
- 『学了就忘』Linux文件系统管理 — 64、磁盘配额的配置步骤
目录 1.手工建立一个5GB的分区 2.建立需要做限制的三个用户 3.在分区上开启磁盘配额功能 4.建立磁盘配额的配置文件 5.开始设置用户和组的配额限制 6.启动和关闭配额 7.磁盘配额的查询 8. ...
- 『学了就忘』Linux文件系统管理 — 65、LVM逻辑卷管理介绍
目录 1.LVM逻辑卷管理的简介 2.LVM逻辑卷管理的原理 3.总结建立LVM分区的步骤 1.LVM逻辑卷管理的简介 LVM是Logical Volume Manager的简称,中文就是逻辑卷管理. ...
- 『学了就忘』Linux文件系统管理 — 59、使用fdisk命令进行手工分区
目录 1.手工分区前提 (1)要有一块新的硬盘 (2)在虚拟机中添加一块新硬盘 2.手工分区 (1)查看Linux系统所有硬盘及分区 (2)手工分区:详细步骤 (3)保存手工分区 3.硬盘格式化 4. ...
- 『学了就忘』Linux文件系统管理 — 60、Linux中配置自动挂载
目录 1.自动挂载 2.如何查询系统下每个分区的UUID 3.配置自动挂载 4./etc/fstab文件修复 上一篇文章我们说明了手动分区讲解,对一块新硬盘进行了手动分区和挂载. 但是我们发现重启系统 ...
随机推荐
- 【UE4 C++】 UDataAsset、UPrimaryDataAsset 的简单使用
UDataAsset 简介 用来存储数据,每一个DataAsset 都是一份数据 可以派生,系统自带派生 UPrimaryDataAsset 方便数据对象的加载和释放 可以引用其他的 UDataAss ...
- 【UE4 调试】C++ 几种编译方法和小技巧
编译方法 Visual Studio 2019 编译 默认编译 UnrealVS 快速编译 Editor 编译 一般 vs 编译完后,Editor会跟着热编译(有声音) 如果发现编译后代码没更新到Ed ...
- 零基础学习Linux心得总结
很多同学接触linux不多,对linux平台的开发更是一无所知. 而现在的趋势越来越表明,作为一个优秀的软件开发人员,或计算机it行业从业人员,="" 掌握linux是一种很重要的 ...
- reactnative实现qq聊天消息气泡拖拽消失效果
前言(可跳过) 我在开发自己的APP时遇到了一个类似于qq聊天消息气泡拖拽消息的需求,因为在网上没有找到相关的组件,所以自己动手实现了一下 需求:对聊天消息气泡拖拽到一定长度松开时该气泡会消失(可自行 ...
- 六. Go并发编程--WaitGroup
一. 序言 WaitGroup是Golang应用开发过程中经常使用的并发控制技术. WaitGroup,可理解为Wait-Goroutine-Group,即等待一组goroutine结束.比如某个go ...
- MarkDown学习随笔
MarkDown语法的学习 标题 设置标题方法是在前面加#号,一级标题(最大)是加#+空格 ,二级标题是加##+空格,之后的以此类推. 字体 在文本的前后分别加上一个星号表示斜体字 在文本的前后分 ...
- Go语言核心36讲(Go语言进阶技术十四)--学习笔记
20 | 错误处理 (下) 在上一篇文章中,我们主要讨论的是从使用者的角度看"怎样处理好错误值".那么,接下来我们需要关注的,就是站在建造者的角度,去关心"怎样才能给予使 ...
- 装了这几个IDEA插件,基本上一站式开发了!
前言 前几天有社区小伙伴私聊我,问我都用哪些IDEA插件,我的IDEA的主题看起来不错. 作为一个开源作者,每周要code大量的代码,提升日常工作效率是我一直追求的,在众多的IDEA插件中,我独钟爱这 ...
- 【JAVA】笔记(5)--- final;抽象方法;抽象类;接口;解析继承,关联,与实现;
final: 1.理解:凡是final修饰的东西都具有了不变的特性: 2.修饰对象: 1)final+类--->类无法被继承: 2)final+方法--->方法无法被覆盖: 3)final ...
- 一文看懂socket编程
1.网络模型的设计模式 1.1 B/S模式 B/S: Browser/Server,浏览器/服务器模式,在一端部署服务器,在另外外一端使用默认配置的浏览器即可完成数据的传输. B/S结构是随着互联网的 ...