需通过三种方法将统信UOS系统封装为ISO:一、用deepin-boot-maker反向导出,定制根文件系统并重打包;二、用dd+mkisofs裸盘级构建,提取EFI与根分区文件;三、用cloud-image工具链生成云镜像再转ISO。

如果您已拥有统信UOS系统的完整安装环境,需要将当前系统状态或预装配置封装为可分发、可复用的ISO镜像文件,则需通过特定工具链与流程完成。以下是实现该目标的多种可行方法:
一、使用官方启动盘制作工具反向导出(适用于UOS桌面版预装环境)
该方法基于统信原生工具 deepin-boot-maker 的底层机制,在具备完整系统镜像源文件(如原始ISO)的前提下,结合定制化修改后的文件系统,重新打包生成新ISO。实际操作中需先构建定制根文件系统,再调用工具封装。
1、在UOS系统中完成所需软件安装、系统配置及用户数据预置,并确保所有变更已持久化至根分区与/home分区。
2、使用文件管理器进入/run/media/目录,确认原始官方ISO已挂载;若未挂载,需先挂载下载好的uniontechos-*.iso文件。
3、复制ISO内全部内容至本地临时目录,例如/tmp/custom-iso,并保留原有目录结构与引导文件(EFI/BOOT/、isolinux/、.disk/等)。
4、将定制后的系统根文件系统打包为filesystem.squashfs,执行命令:sudo mksquashfs / /tmp/custom-iso/casper/filesystem.squashfs -comp xz -e boot。
5、更新/tmp/custom-iso/isolinux/txt.cfg和/tmp/custom-iso/EFI/BOOT/grub.cfg中的内核参数与路径引用,确保指向新生成的squashfs文件。
6、进入/tmp/custom-iso目录,执行ISO生成命令:sudo xorriso -as mkisofs -r -V "UOS-CUSTOM" -o ../uos-custom.iso -J -joliet-long -cache-inodes -iso-level 3 -input-charset utf-8 -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -eltorito-alt-boot -e EFI/BOOT/efiboot.img -no-emul-boot -isohybrid-mbr /usr/lib/ISOLINUX/isohdpfx.bin .。
二、基于dd与mkisofs构建裸设备级ISO(适用于整机备份转发行镜像)
该方法适用于从已部署完成的物理机或虚拟机磁盘直接提取可启动ISO,要求源系统盘结构清晰、GRUB引导正常,且具备完整EFI分区与Linux根分区布局。
1、在目标机器上打开终端,执行lsblk -f识别系统盘设备名,例如/dev/nvme0n1,确认其包含/dev/nvme0n1p1(EFI)、/dev/nvme0n1p2(根分区)等子分区。
2、卸载所有挂载自该盘的分区:sudo umount /dev/nvme0n1p1 /dev/nvme0n1p2,确保设备处于空闲状态。
3、使用dd命令将整个磁盘复制为raw镜像:sudo dd if=/dev/nvme0n1 of=/tmp/system-disk.raw bs=4M status=progress。
4、将raw镜像转换为qcow2格式便于后续处理:qemu-img convert -f raw /tmp/system-disk.raw -O qcow2 /tmp/system.qcow2。
5、挂载qcow2镜像中的EFI与根分区:guestmount -a /tmp/system.qcow2 -m /dev/sda2 --ro /mnt/root && guestmount -a /tmp/system.qcow2 -m /dev/sda1 --ro /mnt/efi。
6、将EFI/BOOT/与根分区下的/boot/vmlinuz*、/boot/initrd*等关键文件提取至临时ISO工作目录,并按标准ISO结构组织。
7、运行xorriso命令完成最终ISO封装,参数与方法一第6步一致,仅替换源路径为当前构建目录。
三、利用cloud-image工具链生成标准化云镜像并转换为ISO(适用于服务器版或容器化部署场景)
该方法依托统信UOS对cloud-init的支持能力,通过官方提供的镜像构建框架生成符合OpenStack/Ceph/KVM标准的QCOW2镜像,再经格式转换输出为可刻录ISO。
1、安装构建依赖:sudo apt update && sudo apt install cloud-image-utils qemu-utils genisoimage -y。
2、下载统信UOS服务器版cloud image基础模板(如uniontechos-20-server-cloudimg-amd64.img),存放于/tmp/base.img。
3、调整镜像大小并注入定制化脚本:cloud-localds --distro ubuntu /tmp/user-data /tmp/meta-data && qemu-img resize /tmp/base.img +8G。
4、启动临时QEMU实例加载cloud-init数据:qemu-system-x86_64 -drive file=/tmp/base.img,format=qcow2 -cdrom /tmp/user-data -boot d -m 2048,等待初始化完成并关机。
5、将处理后的qcow2镜像转换为raw格式:qemu-img convert -f qcow2 -O raw /tmp/base.img /tmp/final.raw。
6、使用genisoimage将raw镜像嵌入ISO引导结构:genisoimage -o uos-server-custom.iso -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -J -R -v -V "UOS-SERVER" /tmp/iso-layout/,其中/tmp/iso-layout/需预先构建含引导文件与raw镜像的目录树。










