在 IBM PowerVM 环境中安装 AOSC OS,并实现 HMC RMC 与 DLPAR
前言
AOSC OS 提供了 ppc64el 架构版本,因此理论上可以运行在 IBM POWER8 及以上处理器上。但 AOSC 并不是 IBM PowerVM 官方认证的 Linux 发行版,安装时会遇到一些标准 x86 或普通 OpenPOWER 环境中不常见的问题,例如:
PowerVM 虚拟 SCSI 设备配置;
IBM POWER 固件要求的 PReP Boot 分区;
powerpc-ieee1275GRUB 安装;AOSC 软件仓库中缺少 IBM RSCT;
Ubuntu RSCT 包与 AOSC 包名不兼容;
HMC RMC、DynamicRM 和 ServiceRM 的适配。
本文记录一次真实安装过程:在 IBM Power S822 上,通过 VIOS 提供虚拟磁盘和虚拟光驱,安装 AOSC OS 13.3.0 ppc64el,并最终实现:
AOSC 从 PowerVM vSCSI 磁盘启动;
HMC 正确识别 AOSC OS、内核和 IP;
RMC 状态为
active;HMC 支持操作系统关机;
CPU、内存和虚拟 I/O DLPAR 全部可用;
实测在线增加 4 GiB 内存成功。
本方案属于实验性、非官方支持组合,更适合 HomeLab、测试和技术验证,不建议直接用于需要 IBM 官方支持的生产系统。
一、实验环境
本文使用的环境如下:
这里的 LPAR 名称实际创建成了 AOCS,下文沿用该名称。
AOSC 应下载 ppc64el 版本,而不是大端的 ppc64 版本。
二、将 AOSC ISO 导入 VIOS
首先将 ISO 上传到 VIOS,例如:
/home/padmin/aosc-os_installer_20260621_ppc64el.iso确认文件:
ls -lh /home/padmin/aosc-os_installer_20260621_ppc64el.iso查看 VIOS Virtual Media Repository:
lsrep将 ISO 导入媒体库:
mkvopt \
-name aosc_ppc64el.iso \
-file /home/padmin/aosc-os_installer_20260621_ppc64el.iso \
-ro确认:
lsrep示例输出:
Name File Size Optical Access
aosc_ppc64el.iso 5936 None ro三、在线建立 AOSC 与 VIOS 的 vSCSI 连接
现有 AIX 7.3 LPAR 已经使用一组 vSCSI:
AIX73 client slot 10
↕
VIOS server slot 20新的 AOSC LPAR 必须建立独立的 vSCSI Client/Server 配对。本文使用:
AOCS client slot 10
↕
VIOS server slot 211. 查看现有 LPAR 和 vSCSI 配置
在 HMC 执行:
lssyscfg -r lpar \
-m S822-SN \
-F name,lpar_id,state输出:
S822-VIOS,100,Running
AIX73,1,Running
AOCS,2,Not Activated查看现有 vSCSI:
lshwres -m S822-SN \
-r virtualio \
--rsubtype scsi \
--level lpar2. 调整 AOCS 最大虚拟槽位数
AOCS 初始 max_virtual_slots 为 10,而槽位编号必须小于该值,因此不能直接使用 slot 10。
查看:
lssyscfg -r prof \
-m S822-SN \
--filter "lpar_ids=2,profile_names=default_profile" \
-F name,max_virtual_slots修改为 20:
chsyscfg -r prof \
-m S822-SN \
--force \
-i 'lpar_id=2,name=default_profile,max_virtual_slots=20'3. 将 vSCSI Client 写入 AOCS profile
AOCS 尚未激活,因此直接修改 profile:
chsyscfg -r prof \
-m S822-SN \
--force \
-i 'lpar_id=2,name=default_profile,"virtual_scsi_adapters+=10/client/100//21/0"'验证:
lssyscfg -r prof \
-m S822-SN \
--filter "lpar_ids=2,profile_names=default_profile" \
-F name,max_virtual_slots,virtual_scsi_adapters预期:
default_profile,20,10/client/100/S822-VIOS/21/04. 在线向 VIOS 添加 vSCSI Server
VIOS 正在运行,可通过 DLPAR 在线添加:
chhwres -m S822-SN \
-r virtualio \
--rsubtype scsi \
-o a \
--id 100 \
-s 21 \
-a "adapter_type=server,remote_lpar_id=2,remote_slot_num=10"还需要将配置写入 VIOS profile,避免 VIOS 重启后丢失:
chsyscfg -r prof \
-m S822-SN \
-i 'lpar_id=100,name=default_profile,"virtual_scsi_adapters+=21/server/2//10/0"'在 VIOS 执行:
cfgdev
lsdev -type adapter | grep vhost
lsmap -all新增适配器示例:
vhost1 U8284.22A.SN-V100-C21 Client Partition ID 0x00000002四、创建系统盘和虚拟光驱
1. 创建 60 GiB 系统盘
查看 rootvg:
lsvg rootvg创建逻辑卷:
mklv -lv aosc_rootvg rootvg 60G检查:
lslv aosc_rootvg虽然 lslv 可能显示:
TYPE: jfs2但这里映射的是整个裸 LV,AOSC 安装程序会在其中重新建立分区表和文件系统,因此不影响使用。
映射到 vhost1:
mkvdev -vdev aosc_rootvg -vadapter vhost1返回:
vtscsi1 Available2. 创建虚拟光驱
mkvdev -fbo -vadapter vhost1返回:
vtopt1 Available加载 AOSC ISO:
loadopt -vtd vtopt1 -disk aosc_ppc64el.iso查看映射:
lsmap -vadapter vhost1示例:
VTD vtopt1
LUN 0x8200000000000000
Backing device /var/vio/VMLibrary/aosc_ppc64el.iso
VTD vtscsi1
LUN 0x8100000000000000
Backing device aosc_rootvg五、从 AOSC ISO 启动
建议为 AOSC 分配至少 8 GiB 内存:
min_mem = 1024
desired_mem = 8192
max_mem = 16384在 HMC 启动并进入 SMS:
chsysstate -m S822-SN \
-r lpar \
-o on \
-n AOCS \
-f default_profile \
-b sms打开虚拟终端:
mkvterm -m S822-SN -p AOCS在 SMS 中依次选择:
Select Boot Options
→ Select Install/Boot Device
→ CD/DVD
→ SCSI
→ Virtual SCSI CD/DVD
→ Normal Mode BootAOSC GRUB 菜单中选择:
Install AOSC OS (Serial Console)由于使用的是 HMC vterm,串口控制台启动项更合适。
启动时可能看到:
can't find command `smbios'
No DMI data found
couldn't examine /ibm,secure-boot property这些主要是因为 PowerVM/OpenFirmware 环境没有 x86 常见的 SMBIOS/DMI 数据,只要系统继续启动,一般可以忽略。
六、解决 POWER 固件找不到系统盘引导的问题
1. 自动分区的失败表现
第一次安装时使用了安装器默认布局,系统盘被创建成:
/dev/sda
└─ /dev/sda1 60G ext4安装过程显示成功,但重启后固件提示:
No OS image was detected by firmware.
At least one disk in the bootlist was not found yet.原因是 IBM POWER 固件需要一个专用的 PReP Boot 分区存放 GRUB 引导镜像,而默认安装只创建了一个 ext4 根分区。
2. 正确的磁盘布局
重新从 LiveKit 启动后,手工重新分区。
以下操作会清空 /dev/sda:
wipefs -a /dev/sda
parted -s /dev/sda mklabel msdos创建 8 MiB PReP 分区:
parted -s /dev/sda mkpart primary 1MiB 9MiB
parted -s /dev/sda set 1 prep on
parted -s /dev/sda set 1 boot on创建根分区:
parted -s /dev/sda mkpart primary ext4 9MiB 100%
partprobe /dev/sda
udevadm settle检查:
fdisk -l /dev/sda正确布局应为:
设备 启动 起点 末尾 大小 Id 类型
/dev/sda1 * 2048 18431 8M 41 PPC PReP Boot
/dev/sda2 18432 125829119 60G 83 Linux如果 sda1 残留旧 ext4 签名:
wipefs -a /dev/sda1确认:
blkid /dev/sda1正常只显示 PARTUUID,不应再显示 TYPE="ext4"。
格式化根分区:
mkfs.ext4 -F /dev/sda2七、使用 dkcli 安装 AOSC
直接运行 deploykit 可能提示:
ERROR 找不到软件包内容数据库文件 (Contents)此时使用命令行安装器:
dkcli选择:
探测到离线安装数据,是否使用离线模式安装 AOSC OS? Yes安装过程中:
存储设备:/dev/sda
是否自动分区:No
系统分区:/dev/sda2必须注意:
不允许自动分区;
不要选择整个
/dev/sda作为系统分区;不要格式化
/dev/sda1;系统必须安装到
/dev/sda2;/dev/sda1保持为无文件系统的 PReP Boot 分区。
安装完成后不要立即执行 reboot -f。
八、手工将 GRUB 写入 PReP 分区
安装完成后挂载根分区:
mkdir -p /mnt/aosc
mount /dev/sda2 /mnt/aosc确认系统文件:
ls /mnt/aosc
ls /mnt/aosc/boot
ls /mnt/aosc/usr/lib/grub应存在:
/usr/lib/grub/powerpc-ieee1275
/boot/grub/powerpc-ieee1275绑定必要目录:
mount --rbind /dev /mnt/aosc/dev
mount --make-rslave /mnt/aosc/dev
mount --rbind /proc /mnt/aosc/proc
mount --make-rslave /mnt/aosc/proc
mount --rbind /sys /mnt/aosc/sys
mount --make-rslave /mnt/aosc/sys
mount --rbind /run /mnt/aosc/run
mount --make-rslave /mnt/aosc/run进入新系统:
chroot /mnt/aosc /bin/bash安装 GRUB:
grub-install \
--target=powerpc-ieee1275 \
--boot-directory=/boot \
--recheck \
/dev/sda1成功输出:
正在为 powerpc-ieee1275 平台进行安装。
安装完成。没有报告错误。生成配置:
grub-mkconfig -o /boot/grub/grub.cfg检查启动项:
grep -E 'menuentry|linux|initrd|search.*fs-uuid' \
/boot/grub/grub.cfg | head -40配置中应出现 PowerVM vSCSI 路径:
/vdevice/v-scsi@3000000a/disk@8100000000000000,msdos2以及正确的根分区 UUID。
退出:
sync
exit验证 PReP 分区:
dd if=/dev/sda1 bs=512 count=32 status=none |
hexdump -C |
head -30正常开头为 PowerPC ELF:
7f 45 4c 46检查 GRUB 字符串:
strings -a /dev/sda1 |
grep -m 10 -Ei 'GRUB|powerpc|ieee1275'可看到:
powerpc-ieee1275
Calling ibm,client-architecture-support from grub...九、首次从硬盘启动
卸载并关机:
sync
umount -R /mnt/aosc
poweroff -f确认 AOCS 为:
Not Activated在 VIOS 弹出 ISO:
unloadopt -vtd vtopt1 -release检查系统盘映射仍存在:
lsmap -vadapter vhost1应保留:
vtscsi1
LUN 0x8100000000000000
Backing device aosc_rootvg从 SMS 启动:
Hard Drive
→ SCSI
→ U8284.22A.SN-V2-C10-T1-L8100000000000000
→ Normal Mode Boot此时 AOSC 应能正常进入 GRUB 并启动系统。
十、为 AOSC 安装 IBM RSCT/RMC
AOSC 官方仓库中没有以下软件:
src
rsct.core.utils
rsct.core
devices.chrp.base.servicerm
dynamicrm因此本文使用 IBM 为 Ubuntu ppc64el 提供的 RSCT 包。
1. 添加 IBM RSCT PPA
创建密钥目录:
install -d -m 0755 /etc/apt/keyrings导入密钥:
curl -fsSL \
'https://keyserver.ubuntu.com/pks/lookup?op=get&search=0xA37439544B266E1B766CE549F4ADEBB2E7D1FA0C' |
gpg --batch --yes --dearmor \
-o /etc/apt/keyrings/ibm-rsct.gpg验证指纹:
gpg --show-keys --with-fingerprint \
/etc/apt/keyrings/ibm-rsct.gpg指纹应为:
A374 3954 4B26 6E1B 766C E549 F4AD EBB2 E7D1 FA0C创建源:
cat >/etc/apt/sources.list.d/ibm-rsct.sources <<'EOF'
Types: deb
URIs: https://ppa.launchpadcontent.net/ibmpackages/rsct/ubuntu
Suites: noble
Components: main
Architectures: ppc64el
Signed-By: /etc/apt/keyrings/ibm-rsct.gpg
EOF更新:
apt-get updateOMA 对 Launchpad PPA 子密钥绑定的检查比 APT 严格,启用该源时运行
oma install可能出现签名验证错误。因此,IBM PPA 启用期间使用apt-get安装;平时将该源禁用。
2. 安装 AOSC 原生依赖
apt-get install --no-install-recommends \
mksh \
perl \
librtas \
sqlite确认库:
ldconfig -p |
grep -E 'librtas\.so\.2|librtasevent\.so\.2|libsqlite3\.so\.0'十一、创建包名兼容层
Ubuntu 和 AOSC 对部分基础库的拆包名称不同,但实际 ABI 已经存在。
需要建立以下兼容包:
以 perl-base 为例:
mkdir -p /root/rsct-compat/perl-base/DEBIAN
cat >/root/rsct-compat/perl-base/DEBIAN/control <<'EOF'
Package: perl-base
Version: 5.42.2-0aosc1
Architecture: all
Section: misc
Priority: optional
Depends: perl (>= 5)
Maintainer: Local Administrator <root@localhost>
Description: Compatibility package for IBM RSCT on AOSC OS
Maps the Ubuntu perl-base dependency to the AOSC perl package.
EOF
dpkg-deb --build \
/root/rsct-compat/perl-base \
/root/rsct-compat/perl-base_5.42.2-0aosc1_all.deblibrtas2:
mkdir -p /root/rsct-compat/librtas2/DEBIAN
cat >/root/rsct-compat/librtas2/DEBIAN/control <<'EOF'
Package: librtas2
Version: 2.0.6-0aosc1
Architecture: ppc64el
Section: libs
Priority: optional
Depends: librtas (>= 2.0.6)
Maintainer: Local Administrator <root@localhost>
Description: Compatibility package for IBM RSCT on AOSC OS
Maps Ubuntu's librtas2 dependency to the AOSC librtas package.
EOFlibrtasevent2:
mkdir -p /root/rsct-compat/librtasevent2/DEBIAN
cat >/root/rsct-compat/librtasevent2/DEBIAN/control <<'EOF'
Package: librtasevent2
Version: 2.0.6-0aosc1
Architecture: ppc64el
Section: libs
Priority: optional
Depends: librtas (>= 2.0.6)
Maintainer: Local Administrator <root@localhost>
Description: Compatibility package for IBM RSCT on AOSC OS
Maps Ubuntu's librtasevent2 dependency to the AOSC librtas package.
EOFlibsqlite3-0:
mkdir -p /root/rsct-compat/libsqlite3-0/DEBIAN
cat >/root/rsct-compat/libsqlite3-0/DEBIAN/control <<'EOF'
Package: libsqlite3-0
Version: 3.51.3-0aosc1
Architecture: ppc64el
Section: libs
Priority: optional
Depends: sqlite
Maintainer: Local Administrator <root@localhost>
Description: Compatibility package for IBM RSCT on AOSC OS
Maps Ubuntu's libsqlite3-0 dependency to the AOSC sqlite package.
EOF分别构建并安装:
dpkg-deb --build \
/root/rsct-compat/librtas2 \
/root/rsct-compat/librtas2_2.0.6-0aosc1_ppc64el.deb
dpkg-deb --build \
/root/rsct-compat/librtasevent2 \
/root/rsct-compat/librtasevent2_2.0.6-0aosc1_ppc64el.deb
dpkg-deb --build \
/root/rsct-compat/libsqlite3-0 \
/root/rsct-compat/libsqlite3-0_3.51.3-0aosc1_ppc64el.deb安装:
apt-get install \
/root/rsct-compat/perl-base_5.42.2-0aosc1_all.deb \
/root/rsct-compat/librtas2_2.0.6-0aosc1_ppc64el.deb \
/root/rsct-compat/librtasevent2_2.0.6-0aosc1_ppc64el.deb \
/root/rsct-compat/libsqlite3-0_3.51.3-0aosc1_ppc64el.deb十二、安装 RSCT Core、ServiceRM 和 DynamicRM
1. 安装 RSCT Core
先模拟:
apt-get -s install \
src \
rsct.core.utils \
rsct.core确认不会升级、降级或删除 AOSC 基础包后安装:
apt-get install \
src \
rsct.core.utils \
rsct.core检查:
lssrc -a此时 ctrmc 应为 active。
2. 安装 ServiceRM
下载匹配版本:
cd /root/rsct-compat
curl -fLO \
'https://ppa.launchpadcontent.net/ibmpackages/rsct/ubuntu/pool/main/d/devices.chrp.base.servicerm/devices.chrp.base.servicerm_3.3.3.6-26132-0_ppc64el.deb'安装:
apt-get install \
./devices.chrp.base.servicerm_3.3.3.6-26132-0_ppc64el.deb检查:
lssrc -a |
grep -E 'IBM.ServiceRM|ctrmc'3. 安装 libservicelog
DynamicRM 依赖 Ubuntu 包 libservicelog-1.1-1。
下载:
curl -fLO \
'https://ports.ubuntu.com/ubuntu-ports/pool/main/libs/libservicelog/libservicelog-1.1-1_1.1.19-1build1_ppc64el.deb'4. 安装 DynamicRM
下载:
curl -fLO \
'https://ppa.launchpadcontent.net/ibmpackages/rsct/ubuntu/pool/main/d/dynamicrm/dynamicrm_2.0.7.3-23-1ubuntu1_ppc64el.deb'模拟:
apt-get -s install \
./libservicelog-1.1-1_1.1.19-1build1_ppc64el.deb \
./dynamicrm_2.0.7.3-23-1ubuntu1_ppc64el.deb安装:
apt-get install \
./libservicelog-1.1-1_1.1.19-1build1_ppc64el.deb \
./dynamicrm_2.0.7.3-23-1ubuntu1_ppc64el.debUbuntu 包将库安装到:
/usr/lib/powerpc64le-linux-gnuAOSC 默认不会搜索该目录,因此需要添加:
echo '/usr/lib/powerpc64le-linux-gnu' \
>/etc/ld.so.conf.d/ubuntu-ppc64el.conf
ldconfig确认:
ldconfig -p | grep servicelog输出:
libservicelog-1.1.so.1 =>
/usr/lib/powerpc64le-linux-gnu/libservicelog-1.1.so.1十三、启动 RMC 并验证 HMC 连接
重建并启动 RMC:
/usr/sbin/rsct/bin/rmcctrl -z
/usr/sbin/rsct/bin/rmcctrl -A
/usr/sbin/rsct/bin/rmcctrl -p检查资源管理器:
lssrc -a |
grep -E 'ctrmc|IBM\.(DRM|ServiceRM|HostRM|MgmtDomainRM)'正常结果:
ctrmc active
IBM.MgmtDomainRM active
IBM.DRM active
IBM.HostRM active
IBM.ServiceRM active查看 HMC MCP 信息:
lsrsrc IBM.MCP示例:
MNName = "192.168.0.20"
KeyToken = "hmc.example.com"
HMCIPAddr = "192.168.0.30"
NodeNameList = {"s822-aosc"}HMC 上检查:
lssyscfg -r lpar \
-m S822-SN \
--filter "lpar_names=AOCS" \
-F name,state,rmc_state,rmc_ipaddr,rmc_osshutdown_capable,dlpar_mem_capable,dlpar_proc_capable,dlpar_io_capable最终结果:
AOCS,Running,active,192.168.0.20,1,1,1,1查看全部支持 DLPAR 的分区:
lspartition -dlparAOSC 被识别为:
Partition:<2*8284-22A*SN, , 192.168.0.20>
Active:<1>
OS:<Linux/AOSC OS, 7.0.12-aosc-main, 13.3.0 (Meow)>十四、验证内存 DLPAR
初始状态:
free -h输出约为:
Mem: 7.8Gi通过 HMC 在线增加 4 GiB 内存后:
free -h变为:
Mem: 11GiHMC 显示:
lshwres -m S822-SN \
-r mem \
--level lpar \
--filter "lpar_names=AOCS" \
-F lpar_name,curr_mem,pend_mem结果:
AOCS,12288,12288内核日志:
dmesg -T |
grep -Ei 'memory|memblock|hotplug|drconf' |
tail -50可以看到:
pseries-hotplug-mem: Attempting to hot-add 16 LMB(s)本机每个 LMB 为 256 MiB,因此:
16 × 256 MiB = 4096 MiB说明 PowerVM 内存 DLPAR 和 Linux pSeries 内存热添加均正常工作。
十五、安装后的收尾工作
1. 禁用 IBM PPA
避免以后运行 OMA 时出现签名检查错误:
mv /etc/apt/sources.list.d/ibm-rsct.sources \
/etc/apt/sources.list.d/ibm-rsct.sources.disabled需要升级 RSCT 时再临时恢复并执行:
apt-get update2. 标记软件包为手动安装
apt-mark manual \
perl-base \
librtas2 \
librtasevent2 \
libsqlite3-0 \
libservicelog-1.1-1 \
src \
rsct.core.utils \
rsct.core \
devices.chrp.base.servicerm \
dynamicrm3. 备份所有兼容包
tar -C /root \
-czf /root/aosc-rsct-compat-backup.tar.gz \
rsct-compat不要随意删除 /root/rsct-compat,后续系统升级或重装时仍可能需要这些包。
4. 重启验证
reboot重启后检查:
lssrc -a |
grep -E 'ctrmc|IBM\.(DRM|ServiceRM|HostRM|MgmtDomainRM)'
lsrsrc IBM.MCP
ldconfig -p | grep servicelogHMC 再次确认:
AOCS,Running,active,192.168.0.20,1,1,1,1证明 RMC、DynamicRM、ServiceRM 和动态链接库配置均可以在重启后自动恢复。
十六、常见故障汇总
结语
最终,本次环境实现了完整的 PowerVM AOSC OS 运行能力:
IBM Power S822
└── PowerVM
├── VIOS
│ ├── vSCSI 系统盘
│ └── Virtual Media Repository
└── AOSC OS ppc64el
├── PReP Boot
├── GRUB powerpc-ieee1275
├── IBM RSCT 3.3.3.6
├── ServiceRM
├── DynamicRM
├── HMC RMC active
└── CPU / 内存 / I/O DLPAR
AOSC OS 本身可以很好地运行在 POWER8 PowerVM LPAR 中,Linux 内核对 pSeries、vSCSI、HVC 控制台和内存热插拔的支持也没有问题。真正需要额外处理的是 POWER 固件启动布局和 IBM RSCT 软件包适配。
对于 HomeLab 或 POWER 技术研究环境,这套组合已经可以获得非常接近官方 Linux 发行版的 PowerVM 管理体验。但由于 AOSC 不在 IBM 官方认证列表中,系统更新后仍需关注 glibc、Perl、librtas、SQLite、systemd 和 RSCT 组件之间的兼容性。