Alibaba Cloud Linux 4 的安装方法以及seed.img的生成
一、工作原理
Alinux 4.0 系统镜像本身通常不能直接完成本地虚拟机初始化。启动虚拟机时,需要额外挂载一个卷标为 cidata 的 ISO9660 配置盘。cloud-init 会从该盘读取:
meta-data:实例标识、主机名等元数据user-data:用户、密码、软件包、YUM 源、SSH 等初始化配置network-config:网络配置,可选
三个文件必须使用精确文件名,不能写成 final-user-data、network.yaml 等其他名称。
二、准备环境
以下命令以 CentOS/RHEL 类 linux 主机为例,并假设使用 root 或具有 sudo 权限的账号。
检查工具:
cloud-localds 在不同发行版或旧版本中支持的参数可能不同。为保证兼容性,本教程使用 genisoimage 直接制作 ISO9660 seed 镜像。
创建工作目录:
三、创建 meta-data
将 Alinux-Mano 换成需要的主机名。主机名建议只使用字母、数字和连字符,不要使用空格或中文。
四、创建 user-data
下面是一个适合基础环境的 Alinux 4.0 示例:
密码注意事项
password: <ROOT_PASSWORD>必须替换成实际密码。type: text表示明文密码,会被写入 seed 镜像;也可以改用经过 SHA-512 处理的密码哈希并设置type: hash。seed 镜像相当于敏感配置文件。不要上传到公共网盘、代码仓库或不可信设备。
首次启动完成后,建议立即执行
passwd root修改密码,并移除虚拟机上的 seed 配置盘。
五、可选:配置 SSH 公钥
如果只使用密码登录,可以不添加任何公钥。若需要公钥登录,在 user-data 的 root 用户配置中增加:
也可以将公钥放入 runcmd,但不建议把私钥放入 seed。私钥永远不能写入 seed,也不能复制到虚拟机镜像中。
使用公钥时仍建议保留密码登录作为首次排障手段,确认密钥登录正常后,再通过 SSH 配置关闭密码认证。
六、DHCP 网络配置
如果虚拟机网络由 DHCP 自动分配,创建 network-config:
Alinux 4 的虚拟网卡通常可能命名为 eth0、ens3 或其他以 e 开头的名称。若实际网卡名称不符合匹配规则,cloud-init 可能不会应用此配置。DHCP 场景也可以不放置 network-config,让系统使用镜像默认网络配置。
七、静态网络配置
需要固定 IP 时,将 seed/network-config 写成:
注意:
10.1.1.7/24等价于 IP10.1.1.7、掩码255.255.255.0。静态 IP 不能与局域网其他设备冲突。
网关必须与虚拟机网络所在网段匹配。
如果 Alinux 4 中 cloud-init 没有将配置转换为 NetworkManager 连接,需登录系统后使用
nmcli手工配置。静态配置错误可能导致 SSH 断开,首次部署应优先准备虚拟机控制台。
八、生成 seed.img
确认三个文件名正确:
检查 YAML 中没有残留占位符:
生成 ISO9660 NoCloud 镜像:
关键参数说明:
-volid cidata:必须使用cidata卷标,NoCloud 才能自动识别。-rock:保留 Unix 文件名和属性。-joliet:提高兼容性。-output output/seed.img:指定输出路径。
九、验证 seed 镜像
首先检查文件格式:
预期包含:
计算校验和:
挂载并确认文件名:
必须看到:
继续检查关键内容:
十、下载 Alinux 4.0 系统镜像
Alinux 4.0 官方镜像目录:
目录中的系统镜像包括 x86_64 和 ARM64 的 VHD、QCOW2 格式。必须根据宿主机和虚拟机架构选择对应镜像:
x86_64 主机使用
aliyun_4_x64_...ARM64 主机使用
aliyun_4_arm64_...
seed.img 只提供初始化配置,不能替代 VHD/QCOW2 系统盘。
十一、使用 KVM/libvirt 挂载
使用 libvirt XML 时,将系统盘作为第一块盘,seed.img 作为第二块盘。例如:
使用 qemu 命令行时:
如果使用 VHD,系统盘的 format 应改为 vpc;seed.img 仍然是 raw。
十二、首次启动后的检查
登录虚拟机后执行:
检查 DHCP 或静态网络是否生效:
检查 cloud-init 日志:
十三、常见问题
1. 主机名生效,但网络仍然是 DHCP
先确认 seed 中确实有 network-config,文件名必须完全正确。然后检查实际网卡名:
如果实际网卡名不是以 e 开头,name: "e*" 可能没有匹配到。还要检查 NetworkManager 和 cloud-init 日志。Alinux 4 通常使用 NetworkManager,不能简单照搬 Alinux 3 中旧的 systemd-networkd 配置。
2. root 无法通过 SSH 密码登录
检查:
确认 ssh_pwauth: true、disable_root: false,并确认 /etc/ssh/sshd_config 没有被其他配置文件覆盖。修改 SSH 配置后执行:
3. 软件包安装失败
检查 cloud-init 输出和 YUM 源:
Alinux 4 必须使用带 ALINUX-4 的 GPG key 和 Alinux 4 仓库路径,不要使用 Alinux 3 的仓库。
4. 修改 seed 后虚拟机没有重新执行
cloud-init 会记录实例初始化状态。更换 seed 后,虚拟机可能因为已有 /var/lib/cloud/ 状态而跳过初始化。仅在测试虚拟机中执行:
生产环境不要随意清理 cloud-init 状态,否则可能重复执行初始化动作。
十四、安全清单
不要把真实密码、私钥或包含密码的 seed 上传到公共位置。
seed 挂载完成后应从虚拟机移除。
首次登录后立即修改 root 密码。
完成 SSH 公钥验证后,建议关闭 root 密码登录。
root 直接开放 SSH 会增加暴力破解风险,正式环境建议创建普通管理员账号。
静态 IP 使用前先确认地址未被占用。
生成后记录 SHA256,传输后再次校验。
只在测试虚拟机中执行
cloud-init clean --logs。
官方参考
https://help.aliyun.com/zh/alinux/getting-started/use-alibaba-cloud-linux-3-images-in-an-on-premises-environment
https://mirrors.aliyun.com/alinux/4.0/image/
https://alinux4.oss-cn-beijing.aliyuncs.com/images/seed.img
Alibaba Cloud Linux 本地镜像说明:
Alinux 4.0 镜像目录:
Alinux 4 官方 seed 镜像:
发布于:2026-08-29,除非注明,否则均为原创文章,转载请注明出处。

还没有评论,来说两句吧...