这篇内容没什么比较新的内容,都是一些旧知识的总结。最近抽空看了下RHEL8版本的相关官方考试教材内容。看了RH134部分磁盘管理部分较之前的版本变化挺多的,先从这篇基础的磁盘管理开始吧。从红帽的历史发行版上来看,这部分先后介绍过使用fdisk、gdisk分区工具,在RHEL8版本上又更新成了parted工具,该工具其实很早之前就有了,只不知名度较前二者稍差一些。
一、磁盘分区基础知识
MBR分区,由来已久的分区格式,最多有四个主分区,使用扩展分区和逻辑分区最多可以划分15个分区,单个分区最大2TB。
GPT是UEFI标准的一部分,GPT最多提供128个分区,GPT 使用全局唯一标识符(GUID)来识别每个磁盘和分区。与MBR存在单一故障 点不同,GPT 提供分区表信息的冗余。主GPT位于磁盘头部,而备份副本(次要GPT)位于磁盘尾部。GPT 使用校验和来检测GPT头和分区表中的错误与损坏。
1、查看分区信息
[root@361way ~]# parted /dev/vda print
Model: Virtio Block Device (virtblk)
Disk /dev/vda: 42.9GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:
Number Start End Size Type File system Flags
1 1049kB 42.9GB 42.9GB primary ext4 boot
[root@361way ~]# parted /dev/vda unit s print //s表示扇区
Model: Virtio Block Device (virtblk)
Disk /dev/vda: 83886080s
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:
Number Start End Size Type File system Flags
1 2048s 83884031s 83881984s primary ext4 boot
[root@361way ~]# parted /dev/vda unit b print //b表示字节
Model: Virtio Block Device (virtblk)
Disk /dev/vda: 42949672960B
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:
Number Start End Size Type File system Flags
1 1048576B 42948624383B 42947575808B primary ext4 boot
2、写入磁盘标签
以root用户身份,使用以下命令将MBR磁盘标签写入磁盘。
[root@host ~]# parted /dev/vdb mklabel msdos
要写入GPT磁盘标签,请使用以下命令。
[root@host ~]# parted /dev/vdb mklabel gpt
mklabel子命令可擦除现有的分区表。仅当想重复使用磁盘而不考虑现有数据时,才应使用mklabel。在一块空白盘上不进行该操作,进行parted分区时会报 Error: /dev/vdc: unrecognised disk label 错误。
二、parted分区
parted提供了交互式分区操作和直接命令式分区操作。交互式通过parted /dev/vda 回车后,可以分别输入不同的指令,交互通过mkpart,确认分区格式类型。如果直接是命令行式操作的话,需要遵循如下命令格式:
[root@host -]# parted /dev/vdb help mkpart
mkpart PART-TYPE [FS-TYPE] START END make a partition
一条指令完分区的操作如下:
[ root@host ~ ]# parted /dev/vdb mkpart primary xfs 2048s 1000MB
运行udevadm settle 命令。此命令会等待系统检测新分区并在/dev目录下创建关联的设备文件
。只有在完成上述操作后,它才会返回。
上面的操作中,因为一定要写后面end的大小,这点有点感觉不感友好,不能自动补全所有可用的大小。还需要事先使用print查看一次。
三、删除分区
可以使用rm指令进行分区删除操作:
[root@servera ~]# parted /dev/vdc
GNU Parted 3.2
Using /dev/vdc
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) print
Model: Virtio Block Device (virtblk)
Disk /dev/vdc: 5369MB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:
Number Start End Size File system Name Flags
1 1049kB 5369MB 5368MB mydata
(parted) rm 1
(parted) quit
Information: You may need to update /etc/fstab.
[root@servera ~]# udevadm settle
上面的操作和以下操作等价:
[root@servera ~]# parted /dev/vdc rm 1
四、分区挂载
分区挂载这一块儿和之前没什么大的区别,具体如下:
[root@servera ~]# mkfs.xfs /dev/vdc1
[root@servera ~]# mount /dev/vdc1 /opt/
[root@servera ~]# lsblk --fs /dev/vdc
NAME FSTYPE LABEL UUID MOUNTPOINT
vdc
└─vdc1 xfs 115a8453-b1c1-4a24-ac67-56886dd2f149 /opt
[root@servera ~]# grep opt /etc/fstab
UUID="115a8453-b1c1-4a24-ac67-56886dd2f149" /opt xfs defaults 0 0
[root@servera ~]# systemctl daemon-reload
第三个字段包含文件系统类型,如xfs或ext4。 第四个字段是以逗号分隔的、应用于设备的选项列表。defaults 是一组常用选项。 mount(8) man page中还记录了其他可用的选项。dump命令使用第五个字段来备份设备。其他备份应用通常不使用此字段。
最后一个字段(fsck 顺序字段)决定了在系统启动时是否应运行fsck命令,以验证文件系统是否干净。该字段中的值指示了fsck的运行顺序。对于XFS文件系统,请将该字段设为日,因为XFS并不使用fsck来检查自己的文件系统状态。对于ext4 文件系统,如果是根文件系统,请将该字段设为1;如果是其他ext4文件系统,则将该字段设为2。这样,fsck 就会先处理根文件系统,然后同步检查不同磁盘上的文件系统,并按顺序检查同一磁盘上的文件系统。
交换分区划分的指令如下:
[root@serverb ~]# parted /dev/vdb mkpart swap1 linux- swap 2000MB 2512M