温馨提示×

ubuntu镜像可以自定义吗

小樊
37
2025-12-20 10:23:21
栏目: 智能运维

可以自定义的场景与方式

  • 容器场景:基于官方 Ubuntu 基础镜像,使用 Dockerfiledocker commit 添加/删除软件包、复制配置与脚本,生成满足特定运行环境的自定义镜像。适合开发、测试与部署的标准化交付。
  • 安装盘场景:对 Ubuntu Live ISO 进行裁剪与预装,例如预装常用软件、修改默认源、调整启动菜单与壁纸等,生成可直接引导安装或体验的自定义镜像。适合培训、演示与批量装机。

快速上手示例

  • 容器镜像自定义(Dockerfile)

    • 新建文件 Dockerfile:
      FROM ubuntu:22.04
      RUN apt-get update && apt-get install -y \
          curl vim htop \
          && rm -rf /var/lib/apt/lists/*
      CMD ["/bin/bash"]
      
    • 构建与运行:
      docker build -t my-ubuntu:22.04 .
      docker run -it my-ubuntu:22.04
      
    • 说明:通过 Dockerfile 的层叠与缓存机制,可稳定复现环境并便于版本化管理。
  • 安装盘自定义(Cubic 图形化)

    • 安装 Cubic:
      sudo apt-add-repository ppa:cubic-wizard/release
      sudo apt update
      sudo apt install cubic
      
    • 使用步骤:启动 Cubic → 选择官方 ISO → 进入 chroot 环境安装/删除软件、修改配置与文件 → 生成自定义 ISO。适合无需手写脚本的可视化定制。
  • 安装盘自定义(命令行全流程)

    • 准备工具与解包:
      sudo apt install squashfs-tools genisoimage xorriso
      mkdir -p ~/custom-iso ~/squashfs
      sudo mount -o loop ubuntu-22.04.iso ~/custom-iso
      rsync -a ~/custom-iso/ ~/livecd/
      sudo unsquashfs -d ~/squashfs ~/livecd/casper/filesystem.squashfs
      sudo mount --bind /dev ~/squashfs/dev
      sudo mount -t proc none ~/squashfs/proc
      sudo chroot ~/squashfs
      
    • 在 chroot 中定制(示例):
      apt-get update
      apt-get install -y vim zsh
      # 可同步更新 initramfs(如更换内核)
      update-initramfs -u
      exit
      
    • 重新打包与生成 ISO:
      sudo umount ~/squashfs/dev ~/squashfs/proc
      sudo mksquashfs ~/squashfs ~/livecd/casper/filesystem.squashfs -comp xz
      sudo bash -c "du -sx --block-size=1 ~/squashfs > ~/livecd/casper/filesystem.size"
      # 注意:发行版可能使用不同校验方式(如 sha256sum),请按实际 ISO 目录下的校验文件为准
      find ~/livecd -type f -print0 | xargs -0 md5sum > ~/livecd/md5sum.txt
      xorriso -as mkisofs -D -r -V "Custom 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 \
        -o ~/custom-ubuntu.iso ~/livecd
      
    • 说明:上述流程涵盖解包、chroot、定制、重打包与生成引导 ISO 的关键环节,适用于深度定制与自动化脚本化改造。

注意事项

  • 空间与权限:构建过程通常需要 15GB+ 磁盘空间;涉及挂载、chroot、打包等步骤需使用 sudo
  • 引导兼容:同时兼顾 BIOS(如 isolinux/isolinux.bin)与 UEFI(如 efi/boot/bootx64.efi)两种引导路径,确保目标硬件可启动。
  • 内核与 initramfs:更换或修改内核后,务必在 chroot 中执行 update-initramfs -u,避免启动失败。
  • 校验与发布:不同发行版 ISO 的校验机制可能不同(有的使用 md5sum,也有使用 sha256sum 等),请以 ISO 根目录下的校验文件为准,并在量产前充分测试。

0