如何在ubuntu下制作linux镜像
目录
方案一:使用 mkosi 工具(推荐)
步骤:
方案二:手动定制现有ISO(以Ubuntu为例)
步骤:
方案三:`Cubic`工具
测试镜像
关键注意事项
方案一:使用 mkosi
工具(推荐)
适用于创建基于当前系统的自定义镜像,支持多种格式(ISO、磁盘镜像等)。
步骤:
-
安装依赖:
sudo apt update sudo apt install mkosi systemd-container # 基础工具 sudo apt install squashfs-tools grub-pc-bin # ISO构建依赖
-
创建配置文件(如
mkosi.conf
):[Distribution] Distribution=ubuntu Release=jammy # Ubuntu 22.04代号[Output] Format=disk Output=custom-linux.img # 输出镜像名称 Bootable=yes[Content] Packages=linux-image-generic # 内核systemd-boot # 引导程序bashcurlnano# 添加所需软件包
-
构建镜像:
bash
sudo mkosi build # 自动下载包并生成镜像
- 输出文件:
custom-linux.img
- 输出文件:
-
转换为ISO:
bash
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
方案二:手动定制现有ISO(以Ubuntu为例)
适用于深度修改官方ISO(如预装软件、修改系统配置)。
步骤:
-
准备环境:
sudo apt install squashfs-tools genisoimage xorriso mkdir ~/custom-iso && cd ~/custom-iso
-
解压原版ISO:
sudo mount -o loop ubuntu-22.04.iso /mnt # 挂载原版ISO rsync -a /mnt/ ./ # 复制内容(排除squashfs) sudo umount /mnt
-
解压系统文件:
sudo unsquashfs ./casper/filesystem.squashfs # 解压根文件系统 sudo mv squashfs-root edit # 重命名目录
-
进入Chroot环境修改系统:
sudo mount --bind /dev edit/dev sudo mount -t proc none edit/proc sudo chroot edit /bin/bash# 在chroot中操作: apt update apt install -y your-package # 安装软件 apt clean # 清理缓存 exit # 退出chroot# 卸载虚拟文件系统 sudo umount edit/dev sudo umount edit/proc
-
重新生成squashfs文件:
bash
sudo mksquashfs edit filesystem.squashfs -comp xz sudo mv filesystem.squashfs ./casper/ # 替换原文件
-
更新校验信息:
bash
sudo bash -c "du -sx --block-size=1 edit > casper/filesystem.size" # 更新大小 find . -type f -print0 | xargs -0 md5sum > md5sum.txt # 更新MD5
-
生成新ISO:
bash
sudo mkisofs -o ../custom-linux.iso \-V "My Linux" \-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 \.
方案三:`Cubic`工具
还有一种方法是使用`Cubic`工具,它提供了一个图形界面来制作自定义的Ubuntu ISO,使用起来更简单。
使用Cubic
如果你希望使用图形化工具,可以尝试安装Cubic:
sudo apt-add-repository ppa:cubic-wizard/releasesudo apt updatesudo apt install cubic
Cubic会引导你完成选择基础ISO、解压、进入chroot环境修改,然后重新打包ISO的步骤。
Cubic问题解决
测试镜像
使用QEMU虚拟机测试:
bash
qemu-system-x86_64 -boot d -cdrom custom-linux.iso -m 2048
关键注意事项
- 空间要求:构建过程需要15GB+磁盘空间
- 权限管理:所有文件操作需用
sudo
- 引导兼容性:
- BIOS模式:确保
isolinux/isolinux.bin
存在 - UEFI模式:检查
efi/boot/bootx64.efi
路径
- BIOS模式:确保
- 内核兼容:如果修改内核版本,需同步更新initramfs:
chroot edit update-initramfs -u