如何制作自定义Ubuntu镜像
制作自定义Ubuntu镜像可根据技术熟练度选择不同工具,常见方法包括图形化工具(如Cubic)、命令行工具(如mkosi、手动解压重建)及备份工具(如respin)。以下是详细步骤:
Cubic(Custom Ubuntu ISO Creator)是专为Ubuntu设计的图形化定制工具,操作直观,适合新手及需要频繁修改的场景。
sudo apt-add-repository ppa:cubic-wizard/releases
sudo apt update
sudo apt install cubic
cubic命令,选择基础ISO文件(如Ubuntu 22.04官方ISO),设置工作目录(需预留15GB以上空间)。apt update && apt upgrade -yapt install -y vim git curl/etc/skel/.bashrc(用户模板)、/etc/default/grub(引导设置)等文件。cloud-init配置(用于自动化部署)。squashfs文件系统,并创建可引导的ISO文件(默认保存在工作目录)。mkosi是Ubuntu官方推荐的镜像构建工具,支持生成ISO、磁盘镜像(.img)等多种格式,适合需要自动化或批量部署的场景。
sudo apt update
sudo apt install mkosi systemd-container squashfs-tools grub-pc-bin
mkosi.conf,内容如下(以Ubuntu 22.04为例):[Distribution]
Distribution=ubuntu
Release=jammy  # Ubuntu 22.04代号
[Output]
Format=disk    # 输出格式(disk/img/iso)
Output=custom-linux.img  # 输出文件名
Bootable=yes   # 是否可引导
[Content]
Packages=      # 需包含的软件包(空则使用默认基础系统)
linux-image-generic
systemd-boot
bash
curl
nano
sudo mkosi build,工具会自动下载指定版本的Ubuntu基础系统,安装配置的软件包,生成custom-linux.img磁盘镜像。mkdir iso-root
sudo mount custom-linux.img iso-root
sudo mkisofs -o custom-linux.iso -b boot/grub/x86_64-efi/grub.img iso-root
sudo umount iso-root
手动定制适合需要深度修改系统结构(如修改内核、调整文件系统布局)的用户,步骤较繁琐但灵活性最高。
sudo apt install squashfs-tools genisoimage xorriso
mkdir ~/custom-iso && cd ~/custom-iso
sudo mount -o loop ubuntu-22.04.iso /mnt
rsync -a /mnt/ ./
sudo umount /mnt
解压系统文件(filesystem.squashfs是根文件系统):sudo unsquashfs ./casper/filesystem.squashfs
sudo mv squashfs-root edit
sudo mount --bind /dev edit/dev
sudo mount -t proc none edit/proc
sudo chroot edit /bin/bash
在chroot中执行定制操作(如安装软件、修改配置),完成后退出:exit
sudo umount edit/dev
sudo umount edit/proc
squashfs:sudo mksquashfs edit ./casper/filesystem.squashfs -comp xz
sudo mv filesystem.squashfs ./casper/
sudo bash -c "du -sx --block-size=1 edit > casper/filesystem.size"
find . -type f -print0 | xargs -0 md5sum > md5sum.txt
mkisofs创建可引导ISO:sudo mkisofs -o ../custom-ubuntu.iso \
-V "My 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 \
.
respin是remastersys的替代工具,适合快速备份当前系统(包括用户数据)或生成纯净系统镜像,但不支持最新Ubuntu版本(如24.04)。
sudo add-apt-repository ppa:sergiomejia666/respin
sudo add-apt-repository ppa:sergiomejia666/xresprobe
sudo apt update
sudo apt install respin isolinux
sudo respin backup(输出至~/respin/respin/)sudo respin distsudo respin dist cdfs && sudo respin dist iso custom.isosudo,避免权限不足导致失败。isolinux/isolinux.bin文件;efi/boot/bootx64.efi路径是否存在。update-initramfs -u更新initramfs,避免启动失败。