UOS Server V20 系统镜像制作完整方案
一、镜像制作原理
关键结论:使用系统制作ISO镜像的方法制作的镜像,在重新安装系统时,已经部署的软件不需要重新部署,因为所有软件和配置都会被完整打包到镜像中。
二、准备工作
2.1 环境要求
- 已安装UOS Server V20的系统
- 系统已部署所需软件并完成配置
- 至少20GB可用磁盘空间
- root权限或sudo权限
2.2 安装必要工具
sudoaptupdatesudoaptinstall-ysquashfs-tools genisoimage syslinux-utils xorriso三、完整镜像制作方案
3.1 方案一:使用live-build工具(推荐)
步骤1:安装live-build
sudoaptinstall-ylive-build步骤2:创建构建目录
mkdir-p~/uos-custom-imagecd~/uos-custom-image步骤3:初始化配置
sudolb config\--binary-images iso-hybrid\--architectureamd64\--distribution"UOS"\--modedebian\--bootappend-live"boot=live components locales=zh_CN.UTF-8 keyboard-layouts=cn"步骤4:复制当前系统状态
# 创建chroot环境目录mkdir-pchroot# 使用rsync复制当前系统(排除特定目录)sudorsync-av\--exclude=/proc\--exclude=/sys\--exclude=/dev\--exclude=/tmp\--exclude=/run\--exclude=/mnt\--exclude=/media\--exclude=/lost+found\--exclude=/home/*/.cache\--exclude=/var/cache\--exclude=/var/tmp\/ chroot/步骤5:配置引导文件
# 创建引导配置mkdir-pconfig/bootloaders/syslinuxcat>config/bootloaders/syslinux/syslinux.cfg<<EOF DEFAULT live LABEL live MENU LABEL Start UOS Server V20 Custom Edition KERNEL /live/vmlinuz APPEND initrd=/live/initrd.img boot=live components quiet splash EOF步骤6:构建ISO
# 创建必要的目录结构mkdir-pbinary/live# 创建系统squashfs映像sudomksquashfschrootbinary/live/filesystem.squashfs\-compxz\-eboot/initrd.img*\-eboot/vmlinuz*\-eboot/*.efi# 复制内核和initrdcpchroot/boot/vmlinuz-* binary/live/vmlinuzcpchroot/boot/initrd.img-* binary/live/initrd.img# 创建ISO文件sudoxorriso-asmkisofs\-r-V"UOS Server V20 Custom"\-o~/uos-server-custom.iso\-J-joliet-long\-cache-inodes\-isohybrid-mbr /usr/lib/syslinux/mbr/isohdpfx.bin\-bisolinux/isolinux.bin\-cisolinux/boot.cat\-boot-load-size4-boot-info-table -no-emul-boot\-eltorito-alt-boot\#引用UEFI引导:-e EFI/BOOT/BOOTX64.EFI \-eboot/grub/efi.img\-no-emul-boot\-isohybrid-gpt-basdat\binary3.2 方案二:使用Systemback工具
步骤1:添加Systemback源并安装
# 添加Systemback源sudotee/etc/apt/sources.list.d/systemback.list<<EOF deb http://ppa.launchpad.net/nemh/systemback/ubuntu xenial main EOFsudoapt-key adv--keyserverkeyserver.ubuntu.com --recv-keys 73C62A1Bsudoaptupdatesudoaptinstall-ysystemback步骤2:创建Live系统
- 运行Systemback:
sudosystemback图形界面操作:
- 点击"Live system create"
- 设置名称:UOS-Server-Custom
- 选择包含用户数据(如果需要)
- 设置工作目录(至少15GB空间)
- 点击"Create new"
等待创建完成(时间取决于系统大小)
步骤3:转换为可引导ISO
# 在Systemback界面中:# 1. 选择创建的Live系统# 2. 点击"Convert to ISO"# 3. 设置ISO保存路径# 4. 等待转换完成# 或使用命令行(如果支持):sudosystemback-sustart --create-live-iso ~/uos-server-custom.iso3.3 方案三:手动制作ISO
步骤1:准备目录结构
mkdir-p~/custom-iso/{live,isolinux,boot/grub}步骤2:创建系统squashfs
# 清理不需要的文件sudoaptcleansudorm-rf/tmp/*# 创建squashfs文件系统sudomksquashfs / /home/custom-iso/live/filesystem.squashfs\-compxz\-progress\-wildcards\-eproc\-esys\-edev\-etmp\-erun\-emnt\-emedia\-ehome/*/.cache\-evar/cache/apt/archives/*.deb\-evar/log/*.log\-evar/tmp/*# 另一个终端界面查看制作进度watch-n10"ls -lh /home/custom-iso/live/filesystem.squashfs"步骤3:复制引导文件
mkdir/home/custom-iso/live/vmlinuzcp/boot/vmlinuz-* /home/custom-iso/live/vmlinuzmkdir/home/custom-iso/live/initrd.imgcp/boot/initramfs-*.img /home/custom-iso/live/initrd.img步骤4:配置引导菜单
cat>/home/custom-iso/isolinux/isolinux.cfg<<EOF UI vesamenu.c32 MENU TITLE UOS Server V20 Custom Edition TIMEOUT 300 LABEL live MENU LABEL Install UOS Server V20 (Custom) MENU DEFAULT KERNEL /live/vmlinuz APPEND initrd=/live/initrd.img boot=live quiet splash LABEL live-nomodeset MENU LABEL Install UOS Server V20 (Safe Graphics) KERNEL /live/vmlinuz APPEND initrd=/live/initrd.img boot=live nomodeset quiet splash EOF步骤5:创建GRUB配置
cat>/home/custom-iso/boot/grub/grub.cfg<<EOF set timeout=10 set default=0 menuentry "Install UOS Server V20 Custom Edition" { linux /live/vmlinuz boot=live quiet splash initrd /live/initrd.img } menuentry "Install UOS Server V20 (Safe Graphics)" { linux /live/vmlinuz boot=live nomodeset quiet splash initrd /live/initrd.img } EOF步骤6:生成ISO
cd/home/custom-iso# 创建ISOcd/home/custom-isosudoxorriso-asmkisofs\-r-V"UOS_SERVER_V20"\-iso-level3\-J-joliet-long\-isohybrid-mbr /home/custom-iso/isolinux/isohdpfx.bin\-bisolinux/isolinux.bin\-cisolinux/boot.cat\-boot-load-size4-boot-info-table -no-emul-boot\-eltorito-alt-boot\-eboot/grub2/efi.img\-no-emul-boot\-isohybrid-gpt-basdat\-o/home/uos-server-custom.iso.四、镜像验证和使用
4.1 验证ISO
# 检查ISO大小ls-lh~/uos-server-custom.iso# 检查ISO内容xorriso-indev~/uos-server-custom.iso-toc# 测试引导(使用qemu)sudoaptinstall-yqemu-system qemu-system-x86_64-cdrom~/uos-server-custom.iso-m20484.2 制作USB安装盘
# 查看USB设备sudofdisk-l# 写入USB(假设USB设备为/dev/sdb)sudoddif=~/uos-server-custom.isoof=/dev/sdbbs=4Mstatus=progress4.3 安装后验证
安装后检查:
- 已部署的软件是否存在
- 配置文件是否保留
- 系统服务是否正常
- 网络配置是否正确
五、注意事项
5.1 系统清理建议
制作镜像前建议:
# 清理包缓存sudoaptcleansudoaptautoclean# 清理日志sudojournalctl --vacuum-time=3d# 清理临时文件sudorm-rf/tmp/* /var/tmp/*# 清理用户缓存sudorm-rf/home/*/.cache/* /root/.cache/*5.2 可能的问题及解决方案
镜像过大
- 使用更高效的压缩:
-comp xz -Xbcj x86 - 排除不必要的文件
- 使用更高效的压缩:
引导问题
- 确保复制了正确的内核和initrd
- 检查引导配置语法
EFI引导支持
- 确保包含EFI引导文件
- 使用isohybrid使ISO支持UEFI和BIOS
5.3 自动化脚本示例
创建一键制作脚本:
#!/bin/bash# make-iso.shset-eISO_NAME="uos-server-custom-$(date+%Y%m%d).iso"WORK_DIR="/tmp/iso-build"OUTPUT_DIR="$HOME"echo"开始制作UOS Server V20自定义镜像..."# 清理和准备sudorm-rf"$WORK_DIR"mkdir-p"$WORK_DIR"# 制作镜像(使用方案一简化版)cd"$WORK_DIR"# ... 这里放置上述制作步骤 ...echo"镜像制作完成:$OUTPUT_DIR/$ISO_NAME"echo"可以使用dd命令写入USB设备: sudo dd if=$ISO_NAMEof=/dev/sdX bs=4M status=progress"六、总结
使用上述任一方案制作的ISO镜像,在重新安装系统时都会包含所有已部署的软件和配置。用户只需像安装原版UOS一样安装系统,安装完成后即可获得与制作镜像时完全相同的系统环境,无需重新部署软件。
推荐方案:对于UOS Server V20,建议使用方案一(live-build)或方案二(Systemback),这些工具更成熟且支持更好。