GBT与MBR
全局唯一标识分区表(GUID Partition Table,缩写:GPT)是一个实体硬盘的分区结构。它是可扩展固件接口标准的一部分,用来替代BIOS中的主引导记录分区表。 传统的主启动记录 (MBR) 磁盘分区支持最大卷为 2.2 TB (terabytes) ,每个磁盘最多有 4 个主分区(或 3 个主分区,1 个扩展分区和无限制的逻辑驱动器)。 与MBR 分区方法相比,GPT 具有更多的优点,因为它允许每个磁盘有多达 128 个分区,支持高达 18 千兆兆字节 (exabytes,1EB=10^6TB) 的卷大小,允许将主磁盘分区表和备份磁盘分区表用于冗余,还支持唯一的磁盘和分区 ID (GUID)。
与 MBR 分区的磁盘不同,GPT的分区信息是在分区中,而不象MBR一样在主引导扇区。为保护GPT不受MBR类磁盘管理软件的危害,GPT在主引导扇区建立了一 个保护分区 (Protective MBR)的MBR分区表,这种分区的类型标识为0xEE,这个保护分区的大小在Windows下为128MB,Mac OS X下为200MB,在Window磁盘管理器里名为GPT保护分区,可让MBR类磁盘管理软件把GPT看成一个未知格式的分区,而不是错误地当成一个未分 区的磁盘。另外,GPT 分区磁盘有多余的主要及备份分区表来提高分区数据结构的完整性。
简而言之一句话:一般情况下,磁盘容量小于2T,MBR分区的,用 fdisk 命令分区,大区2T的,GBT分区的,用 parted
一 查看磁盘大小与分区情况
lsblk
二 使用fdisk分区(使用sdb)
fdisk /dev/sdb
三 使用parted分区(使用sdd)
1 parted有两种使用方式
交互式:手动按序交互式的创建
非交互式:可将命令行写在脚本中,运行脚本实现一键创建;适用于远程批量管理多台主机的场景,需在每一个具体的交互式命令前加上 parted DEVICES_NAME
2 交互式分区
#命令详解
parted /dev/sdd #进入parted分区控制台
mklabel gpt #新建磁盘标签类型为gpt,因为parted命令只能针对gpt格式的磁盘进行操作
mkpart primary 0 10G #可设置分区类型,文件系统,扇区起始点
#命令格式
mkpart PART-TYPE [FS-TYPE] START END
PART-TYPE 分区类型:primary--主分区,logical--逻辑分区,extended--扩展分区
[FS-TYPE] 文件系统:xfs,ext4,ext3...
START 设定磁盘分区起始点,可以为0,numberMiB/GiB/TiB
0 设定当前分区的起始点为磁盘的第一个扇区
1G 设定当前分区的起始点为磁盘的1G处开始
END 设定磁盘分区结束点: -1 设定当前分区的结束点为磁盘的最后一个扇区
1G 设定当前分区的结束点为磁盘的1G处
p #可查看分区详细情况
rm 1 #删除分区命令(慎用),后面数字为p回显的Number数字,如果要删除的分区内已有数据,那么此命令会删除其中的所有数据,并且是不可逆的
3 非交互式分区实现脚本,可通过ansible工具调用脚本实现批量分区配置挂载等操作
[root@localhost ~]# cat test.sh
#!/bin/bash
# 新建/dev/sdb的磁盘标签类型为GPT
parted /dev/sdb mklabel gpt
# 将/dev/sdb整个空间分给同一个分区
parted /dev/sdb mkpart primary 0 100%
# 忽略警告
ignore
# 格式化分区
mkfs.xfs xfs /dev/sdb1
# 设定分区label(非必要)
e2label /dev/sdb1 /gfsdata01
# 创建挂载目录
mkdir /mnt/test1
# 临时挂载
mount /dev/sdb1 /mnt/test1
# 开机自动挂载(永久挂载)
blkid /dev/sdb1 | awk -F "\"" '{print $2}' |xargs -i echo "UUID={} /mnt/test1 xfs defaults 0 0" >> /etc/fstab
四 挂载
已分区的磁盘要先格式化才能挂载)
mkfs.xfs /dev/sdb1 #格式化为xfs文件系统,加 -f 强制格式化
mkfs.ext4 /dev/sdd1 #格式化为ext4文件系统
xfs_repair -n #检查文件系统是否损坏
xfs_repire /dev/sdbx #修复xfs文件系统(修复可能出现数据丢失)
mkfs.ext4 -S /dev/sda2 #检查ext4文件系统
fsck.ext4 -y /dev/sda2 #修复ext4文件系统
2 挂载
#创建挂载目录
mkdir /mnt/test1
#临时挂载(重启后失效)
mount /dev/sdb1 /mnt/test1
#取消挂载
umount /dev/sdb1 /mnt/test1
#永久挂载
blkid /dev/sdb1 | awk -F "\"" '{print $2}' |xargs -i echo "UUID={} /mnt/test1 xfs defaults 0 0" >> /etc/fstab
五、补充
5.1 使用parted分区
命令汇总:
[root@node1 ~]# lsblk
[root@node1 ~]# parted /dev/sda print list
[root@node1 ~]# parted -s /dev/sda mkpart primary 107GB 100%
[root@node1 ~]# parted /dev/sda print list
[root@node1 ~]# partprobe
[root@node1 ~]# mkfs.ext4 /dev/sda4
[root@node1 ~]# mkdir -p /mnt/data0
[root@node1 ~]# mount /dev/sda4 /mnt/data0
[root@node1 ~]# blkid /dev/sda4 | awk -F "\"" '{print $2}' | xargs -i echo "UUID={} /mnt/data0 ext4 defaults 1 2" >> /etc/fstab
[root@node1 ~]# mount -a
5.1.1 查看系统块设备信息
5.1.2 查看当前磁盘分区情况
5.1.3 使用parted分区
5.1.4 格式化分区
5.1.5 挂载
5.1.6 更新fstab