首页主机资讯ubuntu 镜像如何定制

ubuntu 镜像如何定制

时间2025-11-19 17:29:03发布访客分类主机资讯浏览330
导读:Ubuntu 镜像定制实战指南 一、方法总览与选择 手动改造官方 ISO(适合深度定制、预装软件、调整启动参数) 关键点:解包 ISO → 解压 filesystem.squashfs → chroot 安装/配置 → 重新打包 squ...

Ubuntu 镜像定制实战指南

一、方法总览与选择

  • 手动改造官方 ISO(适合深度定制、预装软件、调整启动参数)
    • 关键点:解包 ISO → 解压 filesystem.squashfschroot 安装/配置 → 重新打包 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
  • 生成 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 更稳妥,命令类似但参数不同。

三、使用 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.binEFI 引导(如 efi/boot/bootx64.efi),并使用 -eltorito-alt-boot 生成双引导条目。
  • 元数据一致性
    • 替换 filesystem.squashfs 后务必更新 filesystem.size;若 ISO9660 使用 MD5,需重新生成 md5sum.txt;部分新 ISO 采用 xorriso 流程,请按工具指引更新校验。
  • 网络与源
    • chroot 内需要网络时,拷贝宿主机的 /etc/resolv.conf;使用与当前版本匹配的 sources.list,避免签名/源不一致导致安装失败。
  • 清理与体积
    • 定制完成后执行 apt clean & & apt autoremove,减少镜像体积并避免缓存残留。
  • 首次启动任务
    • 涉及用户环境(如 ~/.bashrc、用户级服务)的修改,建议在系统首次启动后由实际用户完成,避免 chroot 环境下用户目录缺失导致的问题。
  • 测试与验证
    • 在虚拟机(如 VirtualBox/VMware/QEMU)中先启动测试 ISO,检查引导、网络、预装软件与默认配置是否符合预期,再用于生产或批量部署。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: ubuntu 镜像如何定制
本文地址: https://pptw.com/jishu/751356.html
ubuntu 镜像如何恢复 Jenkins在Ubuntu上的容器化实践

游客 回复需填写必要信息