一、MBR 和 GPT 区别
1.1 MBR
- MBR分区表(即主引导记录)大家都很熟悉,是过去我们使用windows时常用的
- 所支持的最大卷:2T,而且对分区有限制:最多4个主分区或3个主分区加一个扩展分区
1.2 GPT
- GPT(即GUID分区表)。是源自EFI标准的一种较新的磁盘分区表结构的标准,是未来磁盘分区的主要形式。与MBR分区方式相比,具有如下优点。
- 突破MBR 4个主分区限制,每个磁盘最多支持128个分区。支持大于2T的分区,最大卷可达18EB。
对于 GPT 的分区,建议使用 parted 工具进行分区,fdisk 在 GPT 这块不是很好。
二、parted 命令介绍
2.1 命令行模式
# 该模式可以直接在命令行下对磁盘进行分区操作,比较适合编程应用
parted [option] device [command]
# 示例
parted /dev/sdb print # 显示 /dev/sdb 分区
2.2 交互模式
# 该模式可以直接在命令行下对磁盘进行分区操作,比较适合编程应用。
parted [option] device [command]
# 示例
parted /dev/sdb # 进入交互模式
GNU Parted 3.2
Using /dev/sdb
Welcome to GNU Parted! Type 'help' to view a list of commands.
2.3 常用选项
(parted) help
align-check TYPE N check partition N for TYPE(min|opt) alignment
help [COMMAND] print general help, or help on COMMAND
mklabel,mktable LABEL-TYPE create a new disklabel (partition table)
mkpart PART-TYPE [FS-TYPE] START END make a partition
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
resizepart NUMBER END resize partition NUMBER
rm NUMBER delete partition NUMBER
select DEVICE choose the device to edit
disk_set FLAG STATE change the FLAG on selected device
disk_toggle [FLAG] toggle the state of FLAG on selected device
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
- help 打印帮助信息
- mklabel 创建分区表, 即是使用msdos(MBR)还是使用gpt,或者是其他方式分区表
- mkpart 创建新分区
格式:mkpart PART-TYPE START END
2.4 PART-TYPE类型主要有primary(主分区), extended(扩展分区), logical(逻辑区). 扩展分区和逻辑分区只对msdos
- rm 删除一个分区
- resizepart 调整指定的分区的大小
- quit 退出该交互界面
三、示例
3.1 fdisk 对磁盘进行分区
# 首先对于容量较大的磁盘使用 fdisk 工具会得到如下提示
Welcome to fdisk (util-linux 2.27.1).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
Device does not contain a recognized partition table.
The size of this disk is 5.5 TiB (6001175126016 bytes). DOS partition table format can not be used on drives for volumes larger than 2199023255040 bytes for 512-byte sectors. Use GUID partition table format (GPT).
Created a new DOS disklabel with disk identifier 0x30e8c209.
Command (m for help):
3.2 更改分区表
(parted) mklabel gpt
(parted) print
Model: SEAGATE ST6000NM0034 (scsi)
Disk /dev/sda: 6001GB
Sector size (logical/physical): 512B/4096B
Partition Table: gpt
Disk Flags:
Number Start End Size File system Name Flags
3.3 创建分区
(parted) mkpart primary 0% 100%
(parted) p
Model: SEAGATE ST6000NM0034 (scsi)
Disk /dev/sda: 6001GB
Sector size (logical/physical): 512B/4096B
Partition Table: gpt
Disk Flags:
Number Start End Size File system Name Flags
1 1049kB 6001GB 6001GB primary
3.4 此时即可格式化文件系统了
mkfs.xfs /dev/sd
四、排错
4.1 分区没有对齐
(parted) mkpart primary 0 6TB
Warning: The resulting partition is not properly aligned for best performance.
Ignore/Cancel?
- 解决方式一
(parted) mkpart primary 0% 100%
(parted) p
Model: SEAGATE ST6000NM0034 (scsi)
Disk /dev/sda: 6001GB
Sector size (logical/physical): 512B/4096B
Partition Table: gpt
Disk Flags:
Number Start End Size File system Name Flags
1 1049kB 6001GB 6001GB primary
- 解决方式二
(parted) mkpart primary 0TB -1
(parted) p
Model: SEAGATE ST6000NM0034 (scsi)
Disk /dev/sdb: 6001GB
Sector size (logical/physical): 512B/4096B
Partition Table: gpt
Disk Flags:
Number Start End Size File system Name Flags
1 1049kB 6001GB 6001GB primary
网友评论