实战:使用Systemback将Ubuntu定制系统封装为可移植ISO与U盘
1. 为什么需要Systemback封装Ubuntu系统每次重装系统都要重新配置开发环境、安装软件、调整个性化设置这个过程至少浪费半天时间。我遇到过最崩溃的情况是给团队新配的10台开发机每台都要手动安装Python环境、Docker、IDE和几十个依赖包整整折腾了两天。后来发现Systemback这个神器它能将配置好的Ubuntu系统完整打包成ISO镜像还能直接制作成U盘启动盘。Systemback特别适合这些场景批量部署开发环境团队新电脑一键安装已配置好的系统系统备份与恢复把稳定运行的系统打包随时可回滚定制系统分发给客户或学员预装好所有必要软件老旧电脑救星把轻量级定制系统做成Live USB虽然官方已停止维护但在Ubuntu 18.04上实测仍能稳定运行。下面我会手把手教你从安装到制作的完整流程包括几个我踩过坑才掌握的技巧。2. 在Ubuntu 18.04上安装Systemback2.1 处理依赖问题由于Systemback官方支持到16.0418.04需要特殊处理。先删除可能冲突的旧版PPAsudo add-apt-repository --remove ppa:nemh/systemback接着添加16.04的仓库源关键步骤sudo add-apt-repository deb http://ppa.launchpad.net/nemh/systemback/ubuntu xenial main导入签名密钥这是很多人漏掉的步骤sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 382003C2C8B7B4AB813E915B14E4942973C62A1B更新并安装建议用apt而非apt-getsudo apt update sudo apt install systemback unionfs-fuse注意如果遇到无法定位软件包错误先执行sudo apt --fix-broken install2.2 验证安装安装完成后在终端输入systemback --version如果显示版本号如1.8.4说明安装成功。也可以在应用菜单搜索Systemback打开图形界面。3. 创建系统快照与Live镜像3.1 图形界面操作指南打开Systemback选择Live system create在Live mode settings勾选Include user data包含个人文件Include user configuration files包含配置设置镜像名称如my_ubuntu点击Create new开始生成耗时约10-30分钟实测建议关闭所有其他程序能加快创建速度。我的i7笔记本生成8GB镜像大约需要15分钟。3.2 命令行高级用法对于服务器等无图形界面环境可以用命令创建sudo systemback-sustart --live --nameserver_backup --include/home,/etc参数说明--live生成Live镜像--include指定要包含的目录--exclude排除不需要的路径如缓存目录生成的文件默认保存在/home目录下扩展名为.sblive4. 将.sblive转换为ISO格式4.1 准备工作先创建解压目录并解压注意替换你的文件名mkdir sblive tar -xf /home/my_ubuntu.sblive -C sblive关键重命名操作否则无法引导mv sblive/syslinux/syslinux.cfg sblive/syslinux/isolinux.cfg mv sblive/syslinux sblive/isolinux4.2 安装cdrtools工具下载最新版cdrtools2023年更新wget https://downloads.sourceforge.net/project/cdrtools/alpha/cdrtools-3.02a09.tar.gz tar -xzvf cdrtools-*.tar.gz cd cdrtools-3.02a09 make sudo make install4.3 生成ISO镜像使用这条经过优化的命令我测试过最稳定的参数组合/opt/schily/bin/mkisofs -iso-level 3 -r -V Ubuntu_Live \ -b isolinux/isolinux.bin -no-emul-boot -boot-load-size 4 \ -boot-info-table -c isolinux/boot.cat -o ~/ubuntu_custom.iso sblive参数解析-b指定引导文件位置-no-emul-boot禁用模拟模式-V设置卷标显示在文件管理器中的名称5. 制作U盘启动盘5.1 使用Etcher的注意事项虽然官方推荐Etcher但实测发现两个坑大容量U盘64GB可能识别异常某些USB3.0接口写入会失败我的解决方案先用lsblk确认U盘设备名如/dev/sdb使用dd命令底层写入速度更快sudo dd ifubuntu_custom.iso of/dev/sdb bs4M statusprogress sync警告务必确认of参数指向正确的设备写错会毁掉其他磁盘数据5.2 验证U盘可用性制作完成后需要检查在BIOS中测试能否正常引导检查文件系统完整性sudo fsck -v /dev/sdb1对于大容量U盘建议先用GParted格式化为FAT326. 实际应用中的经验技巧6.1 缩小镜像体积的方法遇到镜像超过4GB导致无法放入FAT32 U盘时清理系统日志和缓存sudo journalctl --vacuum-time1d sudo apt clean排除虚拟机镜像等大文件sudo systemback-sustart --exclude/home/*.vdi,/var/cache使用xz压缩耗时但效果显著xz -9 -T0 ubuntu_custom.iso6.2 解决常见错误问题1启动时卡在Missing parameter解决方法检查.isolinux.cfg文件中的路径是否正确问题2U盘启动后黑屏尝试在引导时按e键在linux行末尾添加nomodeset问题3安装时提示无法挂载光盘重新生成ISO时加上-J -joliet-long参数最后提醒定期更新你的系统快照特别是安装重要安全更新后。我习惯每月备份一次保留三个历史版本。当需要给新同事配电脑时一个U盘十分钟就能搞定全套开发环境再也不用重复那些繁琐的配置工作了。