Ubuntu系统备份实战:用Systemback打造可移植的完整工作环境
1. 为什么你需要Systemback镜像备份每次换新电脑或者重装系统时最头疼的就是重新配置开发环境。装完系统后要安装各种软件、配置开发工具、恢复用户数据这个过程至少要花上大半天时间。我之前给团队配置新服务器时就深有体会10台机器要挨个装环境差点没把我累趴下。Systemback这个神器完美解决了这个问题。它可以把你的Ubuntu系统打包成一个完整的系统快照包括所有安装的软件、配置文件、用户数据甚至是桌面壁纸这种小细节都能完整保留。想象一下你只需要在新电脑上还原这个镜像就能立即获得一个和你原来一模一样的工作环境连终端里的命令历史记录都在。我特别喜欢它的Live系统功能。打包出来的镜像不仅能用来还原系统还可以直接当U盘启动盘用。上周同事的Ubuntu系统崩溃了我就是用之前做的Systemback镜像U盘启动他的电脑所有文件都完好无损连正在运行的Docker容器都能恢复。2. 安装Systemback的正确姿势2.1 不同Ubuntu版本的安装方法这里有个大坑要注意Systemback的安装方法会根据Ubuntu版本不同而有差异。我刚开始用时没注意这点在Ubuntu 20.04上用了16.04的安装命令结果搞出一堆依赖冲突。对于Ubuntu 14.04和16.04的用户安装很简单sudo add-apt-repository ppa:nemh/systemback sudo apt update sudo apt install systemback但如果你用的是18.04或更新版本比如20.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 sudo apt update sudo apt install systemback2.2 可能遇到的安装问题我在ARM架构的树莓派上试过安装Systemback结果根本装不上。后来查资料才知道这软件最初是为x86架构设计的。所以如果你用的是树莓派或者其他ARM设备可能要另寻他法了。另一个常见问题是snap软件包冲突。有次安装时报错发现是之前装的snap版VS Code在搞鬼。解决方法很简单sudo snap remove vscode sudo apt install systemback3. 制作完美系统镜像的实战技巧3.1 创建系统快照打开Systemback的图形界面很简单sudo systemback点击Live system create后关键是要勾选Include the user data files选项。我有次忘记勾选结果做出来的镜像没有用户数据白忙活一场。给镜像起名时建议加上日期比如Ubuntu20.04-DevEnv-20230815方便后期管理。3.2 处理大容量镜像Systemback有个4GB的文件大小限制。我第一次备份时系统装了太多开发工具生成的.sblive文件有4.7GB软件自带的转换ISO功能直接灰掉了。这时候需要手动处理cd /home sudo mkdir sblive sudo tar -xf /home/Ubuntu20.04.sblive -C sblive sudo mv sblive/syslinux/syslinux.cfg sblive/syslinux/isolinux.cfg sudo mv sblive/syslinux sblive/isolinux接下来要安装cdrtools工具来转换ISOsudo wget https://nchc.dl.sourceforge.net/project/cdrtools/alpha/cdrtools-3.02a07.tar.gz sudo tar -xzvf cdrtools-3.02a07.tar.gz cd cdrtools-3.02/ sudo make sudo make install cd .. sudo /opt/schily/bin/mkisofs -iso-level 3 -r -V sblive -cache-inodes -J -l -b isolinux/isolinux.bin -no-emul-boot -boot-load-size 4 -boot-info-table -c isolinux/boot.cat -o Ubuntu20.04.iso sblive4. 镜像还原与系统迁移的注意事项4.1 选择合适的还原方式Systemback镜像最棒的地方就是灵活。你可以直接在新机器上安装整个系统从U盘启动进入Live模式临时使用只恢复部分文件或配置我建议首次使用时先在虚拟机里测试还原过程。有次我给客户部署系统时直接在生产环境还原结果因为硬件差异导致显卡驱动出问题。后来学乖了先在虚拟机上测试确认没问题再上真机。4.2 处理硬件差异问题不同电脑的硬件配置可能不同特别是显卡和网卡。我总结了个小技巧在制作镜像前先卸载专有驱动sudo apt remove --purge nvidia* sudo apt autoremove这样还原到新机器时系统会自动适配新硬件然后再安装对应的驱动即可。5. 进阶使用技巧5.1 定期增量备份Systemback支持增量备份我设置了个每周自动备份的cron任务0 3 * * 6 sudo systemback --cli --create-backup --name Weekly_$(date \%Y\%m\%d) --description Automatic weekly backup这样既节省空间又能保留多个还原点。上个月我不小心删错了数据库就是靠一周前的增量备份恢复的。5.2 自定义Live系统你可以在打包前预先配置好Live系统的设置。比如我习惯在/etc/skel里放上我的vim配置和bashrc这样每次还原后所有新用户都会自动继承这些配置。还可以在/etc/systemback目录下放些自定义脚本在系统首次启动时自动执行。有次给团队部署开发环境我就在里面集成了自动连接内网VPN和挂载NAS的脚本同事们拿到新电脑开机就能直接工作省去了大量配置时间。