通过网络将 Linux 操作系统并行部署到 IBM PowerVM 上
使用 grub2-mknetdir 生成自定义 netboot 文件夹
简介
要将 Linux 安装在 IBM Power Systems™服务器上创建的 IBM® PowerVM® 逻辑分区 (LPAR) 上,可以使用以下方法:
- 虚拟 DVD
- DVD
- 网络
本文将介绍如何使用 Grand Unified Bootloader (GRUB) 命令 grub2-mknetdir
,在
PowerVM 逻辑分区上执行 Linux® 操作系统的并行网络安装。
每个 Linux 发行版都提供了一个用于实现安装的 ISO 映像。这个 ISO 映像在特定目录结构下提供了 core.elf 文件。要通过网络开始安装,此文件和该目录下的其他文件必不可少。
每个 Linux 发行版都遵循一种独特的目录结构,该结构提供了基于网络的初始引导所需的文件。
表 1. 不同 Linux 发行版的目录结构
发行版 | 来自 TFTP 根目录的 core.elf 文件路径 |
---|---|
Red Hat Enterprise Linux Server 7.x | /boot/grub/powerpc-ieee1275/core.elf |
SUSE Linux Enterprise Server 12.x | /boot/ppc64le/grub2-ieee1275/core.elf |
Ubuntu 16.04.xx LTS | /install/netboot/ubuntu-installer/ppc64el/powerpc-ieee1275 |
在端到端的持续集成 (CI) 环境中,Linux 操作系统安装流程是自动化的,使用单一 Trivial File Transfer Protocol (TFTP) 服务器并行安装来自相同 Linux 发行版的不同 Linux 操作系统版本存在一些限制。存在该限制是因为 core.elf 文件对于两个操作系统版本而言位于相同的目录中。例如,SUSE Linux Enterprise Server 12, Service Pack 1 和 SUSE Linux Enterprise Server 12, Service Pack 2 的 core.elf 文件都位于 boot/ppc64le/grub2-ieee1275/ 目录下。
用于网络引导的 DHCP 服务器配置
要采用基于网络的方式将 Linux 安装在 PowerVM 逻辑分区上,需要一个 TFTP 服务器和一个动态主机配置协议 (DHCP) 服务器。TFTP 服务器提供了启动 Linux 安装所需的文件。DHCP 服务器用于配置网络并向 Linux 客户端提供 TFTP 服务器细节。TFTP 和 DHCP 服务器可能位于同一个系统或不同系统上。
前提条件
将 netboot 文件夹和文件从臃肿的 Linux 安装 ISO 映像复制到 TFTP 服务器上的特定目录。更新 DHCP 服务器配置文件,使其指向 TFTP 服务器上的 netboot 文件。在 DHCP 服务器配置部分会引用 core.elf 文件。
请参阅以下针对 SUSE Linux Enterprise Server 12 版本的 DHCP 服务器配置部分的样本。
备注:包含文件名的行指向网络引导所需的 core.elf 文件和其他相关文件的默认位置。
subnet 192.168.192.0 netmask 255.255.255.0 { allow bootp; option routers 192.168.192.1; option domain-name-servers 192.168.1.200; option domain-name "mydomain.com"; group { next-server 192.168.192.217; filename "boot/ppc64le/grub2-ieee1275/core.elf"; host tuleta4u-lp1.mydomain.com { hardware ethernet aa:bb:cc:50:d8:02; fixed-address 192.168.192.210; option host-name "tuleta4u-lp1"; option tftp-server-name "192.168.192.217"; } } }
如何在 PowerVM 上并行安装 Linux 操作系统
要实现并行安装,必须确保 GRUB 命令从自定义位置选择了 core.elf 文件和受支持的文件。执行以下步骤,为实现并行 Linux 安装创建一个自定义文件夹:
- 使用 GRUB 命令
grub2-mknetdir
,设置包含网络引导所需的文件的目录结构。GRUB 是 RHEL 7.x、SLES 12.x 和 Ubuntu LTS Little Endian for IBM Power Architecture®等较新的 Linux 发行版中提供的默认引导加载程序。对于 SLES 12 Service Pack 1,运行以下命令来生成必要文件:
# grub2-mknetdir --net-directory=/var/lib/tftpboot --subdir=sles12sp1/boot/ppc64le/grub2-ieee1275 Netboot directory for powerpc-ieee1275 created.配置您的 DHCP 服务器,使其指向 /var/lib/tftpboot/sles12sp1/boot/ppc64le/grub2-ieee1275/powerpc-ieee1275/core.elf #
- 对 SLES 12 Service Pack 2 版本重复上一步。
# grub2-mknetdir --net-directory=/var/lib/tftpboot --subdir=sles12sp2/boot/ppc64le/grub2-ieee1275 Netboot directory for powerpc-ieee1275 created.配置您的 DHCP 服务器,使其指向 /var/lib/tftpboot/sles12sp2/boot/ppc64le/grub2-ieee1275/powerpc-ieee1275/core.elf #
可以在 core.elf 文件的十六进制转储格式中查看已更新的 netboot 目录结构。
来自 SLES 12 SP1 的 core.elf 文件的内容:
0026f10: 0101 0000 04a0 0000 0018 0000 0101 0000 ................ 0026f20: 0000 0000 0003 0000 0030 2f73 6c65 7331 .........0/sles1 0026f30: 3273 7031 2f62 6f6f 742f 7070 6336 346c 2sp1/boot/ppc64l 0026f40: 652f 6772 7562 322d 6965 6565 3132 3735 e/grub2-ieee1275 0026f50: 0000 0000
来自 SLES 12 SP2 的 core.elf 文件的内容:
0026f10: 0101 0000 04a0 0000 0018 0000 0101 0000 ................ 0026f20: 0000 0000 0003 0000 0030 2f73 6c65 7331 .........0/sles1 0026f30: 3273 7032 2f62 6f6f 742f 7070 6336 346c 2sp2/boot/ppc64l 0026f40: 652f 6772 7562 322d 6965 6565 3132 3735 e/grub2-ieee1275 0026f50: 0000 0000 ....
- 更新 DHCP 服务器配置文件,使其指向新的目录布局。
请参阅下面这个已更新的 DHCP 服务器配置文件:
subnet 192.168.192.0 netmask 255.255.255.0 { allow bootp; option routers 192.168.192.1; option domain-name-servers 192.168.1.200; option domain-name "mydomain.com""; group { next-server 192.168.192.217; filename "sles12sp2/boot/ppc64le/grub2-ieee1275/powerpc-ieee1275/core.elf"; host tuleta4u-lp2.mydomain.com { hardware ethernet aa:bb:cc:50:d6:02; fixed-address 192.168.192.210; option host-name "tuleta4u-lp2"; option tftp-server-name "192.168.192.217"; } } } subnet 192.168.192.0 netmask 255.255.255.0 { allow bootp; option routers 192.168.192.1; option domain-name-servers 192.168.1.200; option domain-name "mydomain.com"; group { next-server 192.168.192.217; filename "sles12sp1/boot/ppc64le/grub2-ieee1275/ powerpc-ieee1275/core.elf"; host tuleta4u-lp1.mydomain.com { hardware ethernet aa:bb:cc:50:d8:02; fixed-address 192.168.192.211; option host-name "tuleta4u-lp1"; option tftp-server-name "192.168.192.217"; } } }
结束语
本文重点介绍了通过网络在 IBM PowerVM 逻辑分区上并行安装 Linux 操作系统发行版的不同版本所需的设置,这些发行版是作为来宾系统运行的。