14.3. 对磁盘进行分区
要运行完整的预缓存过程,您必须从 live ISO 启动,并使用 factory-precaching-cli 工具从容器镜像引导到分区并预缓存所有需要的工件。
需要 live ISO 或 RHCOS live ISO,因为当操作系统(RHCOS) 在置备过程中写入该设备时,磁盘不得被使用。单磁盘服务器也可使用此流程启用。
先决条件
- 您有一个没有分区的磁盘。
- 
						您可以访问 quay.io/openshift-kni/telco-ran-tools:latest镜像。
- 有足够的存储来安装 OpenShift Container Platform 并预缓存所需的镜像。
流程
- 验证磁盘是否已清除: - lsblk - # lsblk- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 输出示例 - NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT loop0 7:0 0 93.8G 0 loop /run/ephemeral loop1 7:1 0 897.3M 1 loop /sysroot sr0 11:0 1 999M 0 rom /run/media/iso nvme0n1 259:1 0 1.5T 0 disk - NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT loop0 7:0 0 93.8G 0 loop /run/ephemeral loop1 7:1 0 897.3M 1 loop /sysroot sr0 11:0 1 999M 0 rom /run/media/iso nvme0n1 259:1 0 1.5T 0 disk- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 从设备中删除任何文件系统、RAID 或分区表签名: - wipefs -a /dev/nvme0n1 - # wipefs -a /dev/nvme0n1- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 输出示例 - /dev/nvme0n1: 8 bytes were erased at offset 0x00000200 (gpt): 45 46 49 20 50 41 52 54 /dev/nvme0n1: 8 bytes were erased at offset 0x1749a955e00 (gpt): 45 46 49 20 50 41 52 54 /dev/nvme0n1: 2 bytes were erased at offset 0x000001fe (PMBR): 55 aa - /dev/nvme0n1: 8 bytes were erased at offset 0x00000200 (gpt): 45 46 49 20 50 41 52 54 /dev/nvme0n1: 8 bytes were erased at offset 0x1749a955e00 (gpt): 45 46 49 20 50 41 52 54 /dev/nvme0n1: 2 bytes were erased at offset 0x000001fe (PMBR): 55 aa- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
如果磁盘不是空的,该工具会失败,因为它使用设备的分区号 1 来预缓存工件。
14.3.1. 创建分区
					设备就绪后,您可以创建一个单个分区和 GPT 分区表。分区自动标记为 data,并在设备末尾创建。否则,分区将被 coreos-installer 覆盖。
				
						coreos-installer 要求在设备末尾创建分区,并将其标记为 data。在将 RHCOS 镜像写入磁盘时,这两个要求都需要保存分区。
					
先决条件
- 
							由于格式化主机设备,容器必须以特权运行。
- 
							您必须挂载 /dev文件夹,以便可以在容器内执行该进程。
流程
在以下示例中,分区的大小为 250 GiB,因为允许为第 2 天 Operator 预缓存 DU 配置集。
- 以 - 特权运行容器,并对磁盘进行分区:- podman run -v /dev:/dev --privileged \ --rm quay.io/openshift-kni/telco-ran-tools:latest -- \ factory-precaching-cli partition \ -d /dev/nvme0n1 \ -s 250 - # podman run -v /dev:/dev --privileged \ --rm quay.io/openshift-kni/telco-ran-tools:latest -- \ factory-precaching-cli partition \- 1 - -d /dev/nvme0n1 \- 2 - -s 250- 3 - Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 检查存储信息: - lsblk - # lsblk- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 输出示例 - Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
验证
您必须验证是否满足要求:
- 该设备有 GPT 分区表
- 该分区使用设备的最新扇区。
- 
							分区被正确标记为 data。
查询磁盘状态以验证磁盘是否按预期分区:
gdisk -l /dev/nvme0n1
# gdisk -l /dev/nvme0n1输出示例
14.3.2. 挂载分区
					验证磁盘是否已正确分区后,您可以将设备挂载到 /mnt 中。
				
						建议将设备挂载到 /mnt,因为在 GitOps ZTP 准备过程中使用了该挂载点。
					
- 验证分区是否格式化为 - xfs:- lsblk -f /dev/nvme0n1 - # lsblk -f /dev/nvme0n1- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 输出示例 - NAME FSTYPE LABEL UUID MOUNTPOINT nvme0n1 └─nvme0n1p1 xfs 1bee8ea4-d6cf-4339-b690-a76594794071 - NAME FSTYPE LABEL UUID MOUNTPOINT nvme0n1 └─nvme0n1p1 xfs 1bee8ea4-d6cf-4339-b690-a76594794071- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 挂载分区: - mount /dev/nvme0n1p1 /mnt/ - # mount /dev/nvme0n1p1 /mnt/- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
验证
- 检查分区是否已挂载: - lsblk - # lsblk- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 输出示例 - Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 1
- 挂载点是/var/mnt,因为 RHCOS 中的/mnt文件夹是到/var/mnt的链接。