开发者学堂课程【Linux 磁盘与文件系统管理:MBR 和 GPT 分区】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/589/detail/8327
MBR和GPT分区
内容介绍:
一、清除硬盘分区表命令
二、分区管理工具之 parted 高级分区操作
一、清除硬盘分区表命令
输入 dd if=/dev/zero of=/dev/sdb bs=1 count=512 表示将 /dev/sdb 的512字节写为0,以此清空sdb硬盘的分区。
但该操作一定要谨慎使用,要注意命令的完整性,防止清空整个 sdc 硬盘(dd if=/dev/zero of=/dev/sdc)。
二、分区管理工具之 parted 高级分区操作
1. fdisk 管理 MBR 分区
可用 fdisk -l/dev/sdb 查看 sdb 硬盘分区信息表;
2. gdisk 管理 GPT 分区
gdisk: Interactive GUID partition table manipulator(GUID:Globally Unique Identifier)。UUID: 全局唯一标识,GUID 是微软实现 UUID 的方式,以下面的一个UUID为例,
“UUID=76255676-990f-4f0e-963e-bab166b4f3ea”,
共包含8+4+4+4+12=32位16进制数,而每1位十六进制数相当于4位二进制数,则每个 UUID 包含32×4=128位的二进制数。
可用过命令 uuidgen 随机生成 UUID,而每个 UUID 包含128位二进制数,则文件UUID 具有唯一性,可作为文件的唯一标识。
注:对于 MBR 分区与 GPT 分区推荐使用对应的分区管理工具来进行管理。
官方表示,fdisk 对 GPT 分区管理效果不佳,
可输入 [root@centos7~]#man fdisk 查看 fdisk 工具说明
(It understands GPT(experimental for now),MBR,Sun,SGI and BSD partition tables),
对 于 GPT 的支持仅在实验阶段,因此管理 GPT 要使用 gdisk。
输入 [root@centos7~]#man gdisk
查看 gdisk 工具说明。
3.parted 高级分区操作
(1)特点:
该操作实时生效,谨慎操作。
可以运用在交互环境下,也可以运用在批量执行环境下。
(2)运行方式:
①交互模式:
直接输入,[root@centos7~]#parted,可输入 help 查询其使用方式。
②非交互模式:
parted [选项]...[设备[命令[参数]...]...]
a. parted/dev/sdb mklabel(贴标签)gpt|msdos
输入命令 [root@cento7~]#fdisk -l/dev/sdb 查看 sdb 硬盘,
如下:
可发现原本的 sdb 硬盘中没有分区信息,仅显示其空间大小。
使用命令 [root@cento7~]#parted/dev/sdb mklabel(贴标签)gpt|msdos 可定义 sdb 硬盘使用的是 GTP 分区表或 MBR 分区表(msdos 即表示 MBR)。如 parted /dev/sdb mklabel msdos 表示在 sdb 硬盘中创建 MBR 分区表。再输入[root@cento7~]#fdisk -l/dev/sdb 查看 sdb 硬盘,如下:
可发现 sdb 硬盘中出现了 Disk Table type(分区表类型)dos(MBR 分区表)。
输入[root@cento7~]#hexdump -C/dev/sdb -n 512,输出结果如下:
可发现实际上在磁盘中只显示了结束标识。
再如parted /dev/sdb mklabel gpt则表示在sdb硬盘中创建GPT分区表,输入 [root@cento7~]#fdisk -l/dev/sdb 查看 sdb 硬盘,如下:
可发现 sdb 硬盘中出现了 Disk Table type(分区表类型)gpt, 且分配了一个UUID:14AE2471-F751-4771-8138-6BAF27946A60
再输入 [root@cento7~]#hexdump -C/dev/sdb -n 512 -v,输出结果如下(仅显示分区表及结束标志字):
可发现仅是添加了一个保护性的分区表,并非真实的分区表,仍没有实际意义。
b. parted/dev/sdb print 查看具体的分区信息
结果如下:
可发现目前仍未有具体的分区信息
c. parted/dev/sdb mkpart primary(主分区) 1 200(默认以M为单位)
对于 gpt 分区来说,没有主分区与扩展分区之分,该命令表示起始点1,结束点200,单位默认为 M。
如 parted/dev/sdb mkpart primary 1 1000表示从1M到1000M位置进行 GPT 分区。然后使用 fdisk -l /dev/sdb 查询分区信息(起始位置、大小等),如下:
此时,sdb 硬盘中已经出现了 GPT 分区,大小为953M。
也可以使用 parted/dev/sdb print 也可以查看 sdb 硬盘的分区信息:
起始位置为 1M,大小为999M。
也可以在此基础上,继续进行分区。如输入 parted/dev/sdb mkpart primary 1001 3000表示从1001M 到3000M 位置进行 GPT 分区。
使用 parted/dev/sdb print 查询分区信息,
如下:
可以发现此时 sdb 硬盘中已经出现了2个分区。
输入 fdisk -l /dev/sdb 查询分区信息,结果与之相同
d.parted/dev/sdb rm 1表示删除 sdb 硬盘中 sdb1 分区,
输入 [root@ccentos7~]#lsblk,查询 sdb 硬盘分区状态,输出结果。
输入parted/dev/sdb rm 1删除sdb硬盘中sdb1分区,再输入[root@ccentos7~]#lsblk,查询 sdb 硬盘分区状态,输出结果,发现 sdb2 分区依然存在,且分区序号不变。
再输入命令 [root@cengtos7~]#fdisk -l/dev/sd 查询 sd 硬盘的分区信息,结果(仅显示分区信息与起始位置)
要想删除该硬盘所有分区,
可以使用 dd if=/dev/zero of=/dev/sdb bs=1 count=512 命令清除。
再输入 [root@ccentos7~]#l sblk,查询 sdb 硬盘分区状态,输出结果(仅显示 sdb 硬盘)
结果显示无分区信息。
d. parted-| 列出分区信息
注:fdisk 与 gdisk 工具保存后方可运行,而 parted 高级分区工具是即时生效的,需要谨慎操作。