前言
环境:centos 7.9 /dev/sdb 3T
gpt分区既可以使用gdisk命令也可以使用parted命令,两者仅使用上有些不同而已。
gdisk命令
gdisk 命令用于创建和维护磁盘分区,gdisk又叫GPT fdisk,gdisk 工具对硬盘的分区其实和fdisk对硬盘的分区很类似,算是fdisk的延伸吧,主要使用的是GPT分区类型,用来划分容量大于2T的硬盘。
ps:分区类型可分为GPT和MBR,GPT最大支持18EB(1EB=1024PB,1PB=1024TB),MBR最大支持2TB硬盘;GPT,全局唯一标识分区表(GUID Partition Table),它使用128位GUID来唯一标识每个磁盘和分区,与MBR存在单一故障点不同,GPT提供分区表信息的冗余,一个在磁盘头部,一个在磁盘尾部;它通过CRC校验来检测GPT头和分区表中错误与损坏,默认一个硬盘支持128个分区(可以更多)。
yum install gdisk #没有gdisk命令的话安装该工具即可
语法格式:
gdisk [ -l ] device
常用选项:
-l #列出磁盘的所有分区表
演示示例:
具体不讲,因为和fdisk分区基本类似,看一查看本人另外一篇《fdisk 创建和维护磁盘分区命令(MBR分区方案)》https://blog.youkuaiyun.com/MssGuo/article/details/117195436
本篇主要来讲parted工具的使用
parted命令分区
yum install -y #没有parted命令的话安装即可
Usage: parted [OPTION]... [DEVICE [COMMAND [PARAMETERS]...]...]
#使用实战
[root@kubernetes ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sdb 8:16 0 3T 0 disk
sr0 11:0 1 1024M 0 rom
sda 8:0 0 20G 0 disk
├─sda2 8:2 0 19G 0 part
│ ├─centos-swap 253:1 0 2G 0 lvm [SWAP]
│ └─centos-root 253:0 0 17G 0 lvm /
└─sda1 8:1 0 1G 0 part /boot
#查看帮助信息
[root@kubernetes ~]# parted --help
Usage: parted [OPTION]... [DEVICE [COMMAND [PARAMETERS]...]...]
Apply COMMANDs with PARAMETERS to DEVICE. If no COMMAND(s) are given, run in
interactive mode.
OPTIONs:
-h, --help 显示帮助信息
-l, --list 列出全部块设备的分区表信息
-m, --machine displays machine parseable output
-s, --script never prompts for user intervention
-v, --version 显示版本
-a, --align=[none|cyl|min|opt] alignment for new partitions
COMMANDs:
align-check TYPE N check partition N for TYPE(min|opt) alignment
help [COMMAND] 打印帮助信息
mklabel,mktable LABEL-TYPE 创建新的磁盘标签 (分区表)
mkpart PART-TYPE [FS-TYPE] START END 创建一个分区
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 退出
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 设置unit单位
version 显示版本信息
#开始对3T的磁盘分区
[root@kubernetes ~]#parted /dev/sdb
GNU Parted 3.1
Using /dev/sdb
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) mkpart #想分一个区
Error: /dev/sdb: unrecognised disk label #由于我们这是一个新的硬盘,硬盘还没有分区表,所以这里报错了,所以我们需要先创建一个gpt分区表
(parted) mklabel #输入mklabel
New disk label type? gpt #输入gpt,这里如果有警告说要销毁数据,请自己确认。
(parted) mkpart #输入mkpart开始分区
Partition name? []? part1 #给分区命名,随便输入一个分区名称即可,不输入直接回车也可以
File system type? [ext2]? ext4 #分区被格式化的文件系统,可以按两次Tab键查看支持的文件系统
affs0 affs4 amufs amufs3 apfs2 ext3 hfs jfs linux-swap(v0) reiserfs
affs1 affs5 amufs0 amufs4 asfs ext4 hfs+ linux-swap linux-swap(v1) sun-ufs
affs2 affs6 amufs1 amufs5 btrfs fat16 hfsx linux-swap(new) nilfs2 swsusp
affs3 affs7 amufs2 apfs1 ext2 fat32 hp-ufs linux-swap(old) ntfs xfs
File system type? [ext2]? ext4 #一般可以使选ext4和xfs,这里输入ext4
Start? 0% #分区的开始位置,如果是一块新的磁盘,这里要输入0%或2048s或1M都可以但是不要输入别的。建议输入0%。
End? 100% #分区的结束位置
(parted) print #打印分区信息,可以看到已经有一个分区了
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sdb: 3299GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:
Number Start End Size File system Name Flags
1 1049kB 3299GB 3299GB
#删除分区
(parted) rm 1 #删除分区,1是分区的Number号
#删除分区了,下面看下已经没有任何分区了
(parted) print
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sdb: 3299GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:
Number Start End Size File system Name Flags
#重新来多创建几个分区
(parted) mkpart
Partition name? []? part1 #给分区命名
File system type? [ext2]? ext4 #文件系统格式
Start? 0% #输入0%表示从磁盘开始位置开启
End? 10G #结束位置可以指定多少G
(parted) print #查看分区信息,现在就有了一个10G的分区,叫part1
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sdb: 3299GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:
Number Start End Size File system Name Flags
1 1049kB 10.0GB 9999MB part1
(parted) mkpart #继续分区
Partition name? []? part2 #分区名称
File system type? [ext2]? xfs #分区文件系统类型。
Start? 10G #这里输入分区开始位置,因为我们上一个分区是10G结束的,所以这里10G开始
End? 20G #指定结束分区
(parted) print #查看分区信息 ,现在有两个分区了,大小都是10G
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sdb: 3299GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:
Number Start End Size File system Name Flags
1 1049kB 10.0GB 9999MB part1
2 10.0GB 20.0GB 9999MB part2
(parted) mkpart #继续分第三个分区
Partition name? []? part3
File system type? [ext2]? ext4
Start? 20G #开始位置从20G开始,因为我们上一个分区是20G结束的
End? 100% #这里100%表示,分配磁盘的剩余全部空间
(parted) print
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sdb: 3299GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:
Number Start End Size File system Name Flags
1 1049kB 10.0GB 9999MB part1
2 10.0GB 20.0GB 9999MB part2
3 20.0GB 3299GB 3279GB part3
(parted) quit #分区完成,退出即可。
Start? 如果Start位置输入的不是0%或2048s或1M或0G的数值,分区结束会有这个的提示,Warning: The resulting partition is not properly aligned for best performance.Ignore/Cancel?
(意思是说警告:生成的分区没有正确对齐以获得最佳性能。忽略/取消? 我们可以输入Ignore以忽略,但是这样并不好)
这是因为在512B扇区的磁盘驱动器上,Parted希望分区从2048的倍数(即1 MiB对齐)扇区开始
创建文件系统,挂载分区
[root@kubernetes ~]# lsblk /dev/sdb #查看设备,分区已经出来了
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sdb 8:16 0 3T 0 disk
├─sdb2 8:18 0 9.3G 0 part
├─sdb3 8:19 0 3T 0 part
└─sdb1 8:17 0 9.3G 0 part
#下面的命令就是创建lvm
pvcreate /dev/sdb1 #将磁盘分区格式化为pv
vgcreate vggpt /dev/sdb1 #创建vg卷组
lvcreate -n lvgpt -l +100%FREE vggpt #在vg卷组上面创建lv
mkfs.ext4 /dev/vggpt/lvgpt #格式化lv,创建文件系统
mkdir /gpt #创建挂载点
mount /dev/vggpt/lvgpt /gpt/ #挂载
[root@kubernetes ~]# df -h /gpt/ #查看,正常
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/vggpt-lvgpt 9.1G 37M 8.6G 1% /gpt
[root@kubernetes ~]# touch /gpt/test && ls /gpt/ #创建文件、查看文件正常
lost+found test