ubuntu 镜像如何定制
导读:Ubuntu 镜像定制实战指南 一、方法总览与选择 手动改造官方 ISO(适合深度定制、预装软件、调整启动参数) 关键点:解包 ISO → 解压 filesystem.squashfs → chroot 安装/配置 → 重新打包 squ...
Ubuntu 镜像定制实战指南
一、方法总览与选择
- 手动改造官方 ISO(适合深度定制、预装软件、调整启动参数)
- 关键点:解包 ISO → 解压 filesystem.squashfs → chroot 安装/配置 → 重新打包 squashfs → 更新 MD5/大小 → 用 mkisofs/xorriso 生成含 BIOS/UEFI 的 ISO。
- 使用 Cubic(图形化、流程清晰、适合快速迭代)
- 关键点:在 Cubic 中加载原版 ISO → 进入 chroot 定制 → 一键生成新 ISO,适合桌面/服务器环境快速预装常用软件。
- 使用 mkosi(现代化、可输出磁盘镜像或 ISO,适合自动化与 CI)
- 关键点:编写 mkosi.conf → 构建可启动磁盘镜像 → 需要时再转换为 ISO,适合“从零构建”和标准化交付。
二、手动改造官方 ISO 步骤
- 准备与解包
- 安装工具:
sudo apt install squashfs-tools genisoimage xorriso - 挂载原版 ISO:
sudo mount -o loop ubuntu-22.04.iso /mnt - 复制内容:
rsync -a /mnt/ ./custom-iso/(排除 casper/filesystem.squashfs) - 解压根文件系统:
unsquashfs mnt/casper/filesystem.squashfs & & mv squashfs-root edit
- 安装工具:
- 进入 chroot 并定制
- 挂载虚拟文件系统:
sudo mount --bind /dev edit/dev & & sudo mount -t proc none edit/proc - 进入环境:
sudo chroot edit - 配置网络与源:
cp /etc/resolv.conf edit/etc/resolv.conf,更新edit/etc/apt/sources.list - 安装/删除软件:
apt update & & apt install your-package;完成后apt clean & & apt autoremove - 退出并卸载:
exit & & sudo umount edit/{ dev,proc}
- 挂载虚拟文件系统:
- 重新打包与元数据
- 替换 squashfs:
mksquashfs edit custom-iso/casper/filesystem.squashfs -comp xz - 更新大小:
du -sx --block-size=1 edit > custom-iso/casper/filesystem.size - 更新校验(ISO9660 传统):
cd custom-iso & & rm md5sum.txt & & find -type f -print0 | xargs -0 md5sum > md5sum.txt
- 替换 squashfs:
- 生成 ISO(BIOS + UEFI)
- 生成 ISO:
mkisofs -o ../custom-22.04.iso -V "My Ubuntu" -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -eltorito-alt-boot -e efi/boot/bootx64.efi -no-emul-boot custom-iso/ - 提示:部分新版本 ISO 使用 xorriso 更稳妥,命令类似但参数不同。
- 生成 ISO:
三、使用 Cubic 快速定制
- 安装 Cubic:
sudo apt-add-repository ppa:cubic-wizard/release & & sudo apt update & & sudo apt install cubic - 图形化流程
- 新建工程目录 → 加载原版 ISO → 进入 chroot 环境(root)
- 在 chroot 中联网
apt install或拷贝 .deb 安装,按需修改系统配置 - 完成后“生成 ISO”,Cubic 会自动处理引导与元数据
- 适用与限制
- 适合预装常用软件、系统级配置;不适合需要登录用户会话、重启或大量用户目录操作的定制(如修改普通用户的
~/.bashrc等),这类操作建议在首次启动后由新用户完成。
- 适合预装常用软件、系统级配置;不适合需要登录用户会话、重启或大量用户目录操作的定制(如修改普通用户的
四、使用 mkosi 从零构建可启动镜像
- 安装依赖:
sudo apt install mkosi systemd-container squashfs-tools grub-pc-bin - 编写 mkosi.conf(示例)
- 示例:
[Distribution] Distribution=ubuntu; Release=jammy[Output] Format=disk; Output=custom.img; Bootable=yes[Content] Packages=linux-image-generic bash curl nano
- 示例:
- 构建与转换
- 构建:
sudo mkosi build(生成可启动磁盘镜像) - 转 ISO(可选):挂载 img → 用
mkisofs指向 EFI 引导文件生成 ISO(命令与手动法类似)
- 构建:
- 适用场景
- 标准化、自动化、可重复构建;适合云镜像、容器主机、内网批量部署。
五、关键注意事项与常见问题
- 引导与平台
- 同时支持 BIOS/UEFI:ISO 需包含 isolinux/isolinux.bin 与 EFI 引导(如
efi/boot/bootx64.efi),并使用-eltorito-alt-boot生成双引导条目。
- 同时支持 BIOS/UEFI:ISO 需包含 isolinux/isolinux.bin 与 EFI 引导(如
- 元数据一致性
- 替换 filesystem.squashfs 后务必更新 filesystem.size;若 ISO9660 使用 MD5,需重新生成
md5sum.txt;部分新 ISO 采用 xorriso 流程,请按工具指引更新校验。
- 替换 filesystem.squashfs 后务必更新 filesystem.size;若 ISO9660 使用 MD5,需重新生成
- 网络与源
- chroot 内需要网络时,拷贝宿主机的
/etc/resolv.conf;使用与当前版本匹配的 sources.list,避免签名/源不一致导致安装失败。
- chroot 内需要网络时,拷贝宿主机的
- 清理与体积
- 定制完成后执行
apt clean & & apt autoremove,减少镜像体积并避免缓存残留。
- 定制完成后执行
- 首次启动任务
- 涉及用户环境(如
~/.bashrc、用户级服务)的修改,建议在系统首次启动后由实际用户完成,避免 chroot 环境下用户目录缺失导致的问题。
- 涉及用户环境(如
- 测试与验证
- 在虚拟机(如 VirtualBox/VMware/QEMU)中先启动测试 ISO,检查引导、网络、预装软件与默认配置是否符合预期,再用于生产或批量部署。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: ubuntu 镜像如何定制
本文地址: https://pptw.com/jishu/751356.html
