简单记录使用Systemback工具打包Ubuntu系统得到iso镜像文件,并在物理机上进行还原(安装)的流程。测试结果发现,使用打包的iso文件安装得到的Ubuntu系统继承了我之前的Ubuntu系统,包括并不限于如下内容:Home、Desktop、Documents、Downloads、Pictures、Videos
等文件夹下的所有文件,以及ros、PX4、cartographer
等一系列的依赖环境!我在实验室的一台主机上面安装好系统之后,可以直接运行一系列的程序,体验和使用备份前的系统相同。只能说太牛了!
一. 准备工作
1 关于iso文件制作
我的Ubuntu系统制作为iso镜像前已经占用100G左右的空间(剩余60G+),制作出来的.sblive
文件约30GB,将.sblive
文件解压后约30G,然后打包为了约26G的iso文件。我当时将.sblive解压后删除了.sblive文件,然后进行的iso文件的制作。如果你有一个比较大的U盘或移动固态硬盘,是可以将.sblive文件生成到移动盘上的。当然,如果你的Ubuntu上面没有太多的环境和文件,并不会占用太大的空间。
2 关于系统安装(还原)
我们得到了iso文件后,使用U盘or移动固态制作系统盘,进行系统安装即可。需注意!务必确保使用的系统盘具有两倍以上的iso文件空间。比如我的iso文件大小26G,那用于制作系统盘的磁盘至少需要52G。我之前使用32G的U盘进行安装,安装失败的原因便是空间不够,无法挂载iso文件。
二. 上机实操
1 Systemback安装
Systemback是一个简单的系统备份和恢复应用程序。Ubuntu 16.04和14.04用户可以通过在终端中运行以下命令从PPA安装Systemback:
# Ubuntu 16.04 or 14.04, ubuntu 18及以后不可用
sudo add-apt-repository ppa:nemh/systemback
sudo apt update
sudo apt install systemback
# ubuntu18不小心添加了上面的ppa库,可以使用下面命令删除
sudo add-apt-repository --remove ppa:nemh/systemback
Systemback的作者在2016年停止了开发,因此Ubuntu 18.04及以后版本都不在支持列表中。如果你在Ubuntu 18.04上运行上述命令,将看到报错。Ubuntu 16.04的Systemback二进制文件与Ubuntu 18.04/18.10兼容,因此我们可以使用以下命令进行安装(Ubuntu20及以后版本或许也可以如此安装?)
# 1)在18.04上添加Ubuntu 16.04 PPA
sudo add-apt-repository "deb http://ppa.launchpad.net/nemh/systemback/ubuntu xenial main"
# 2)导入此PPA的GPG签名密钥
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 382003C2C8B7B4AB813E915B14E4942973C62A1B
# 3)更新包列表并安装Systemback:
sudo apt update
sudo apt install systemback
# 4)启动 Systemback
sudo systemback
2 ISO文件制作
# 启动 Systemback
sudo systemback
点击“Live system create” —> 修改系统名称,勾选“Include the user data files”—>点击“Create new”。该操作将会生成一个.sblive文件,如果文件小于4GB,可以借助该软件生成对应的.iso系统镜像文件。
生成 .sblive文件
将 .sblive文件转换为 .iso文件
如果生成的.sblive文件大于4GB,可以参考下面的步骤生成对应的.iso系统镜像文件。
步骤1:解压 .sblive 文件:
mkdir sblive
# 【systemback_live.sblive】需要更改为前面设置的名称[也可以直接到home目录下寻找对应的.sblive文件]
tar -xf /home/systemback_live.sblive -C sblive
步骤2:重命名syslinux 至 isolinux:
mv sblive/syslinux/syslinux.cfg sblive/syslinux/isolinux.cfg
mv sblive/syslinux sblive/isolinux
步骤3:安装 cdtools:
sudo apt install aria2
aria2c -s 10 https://nchc.dl.sourceforge.net/project/cdrtools/alpha/cdrtools-3.02a07.tar.gz
tar -xvf cdrtools-3.02a07.tar.gz
cd cdrtools-3.02
make
sudo make install
步骤4:生成ISO文件:
cd ~/
/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 sblive.iso sblive
这一步完成后,将会生成一个iso文件。
3 Ubuntu系统还原
有了iso文件就可以使用U盘或移动固态制作系统盘,然后进行系统安装啦~ 可以使用rufus及其他软件进行系统盘制作。或者使用Ventoy做一个系统盘,直接把iso文件复制粘贴到U盘里面就可以进行安装。推荐Ventoy,我目前的U盘里面有ubuntu18、windows、ubuntu备份 三个系统的iso文件,每一个都可用独立用于系统安装。
系统盘弄好后,就依照正常安装Ubuntu系统的方式去安装即可,只不过具体的安装界面稍微有些不一样。大概如下如图:
第一个选项将会进行U盘中的系统,第二个选项将直接进行系统安装。如果直接使用第二个选项进行系统安装时失败了,可以选择第一个选项,进入系统之后再进行安装(可以查看报错原因,知道为什么报错!)。进入U盘中的系统之后,CTRL+ALT+T打开终端,输入systemback-sustart
即可进行系统安装。我当时使用的U盘空间不够(32G的U盘装26G的系统),就出现了下面的报错,更换为64G的U盘后就能够顺利安装成功了。
1 设置用户名
进行系统安装时,需要输入系统的用户信息,推荐输入原系统的用户名和密码。安装好的系统将会使用这里输入的用户名替换掉一些系统文件中的路径,比如说~/.bashrc
中设置的工作空间路径。如果输入原系统的用户名和密码,系统是可以直接运行之前配置好的一些环境的;如果输入新的用户名,可能需要重新创建工作空间并进行编译。备份的系统会保留之前系统的一系列文件,为此工作空间中的路径也还是原来的用户名的。
2 设置分区
之后需要选择挂载的磁盘空间,也就是进行Ubuntu系统分区,只不过这里的分区操作和常规的Ubuntu系统安装流程不一样。我一般设置三个分区swap、/、/boot
:swap为交换分区(8-16G都可),/为根目录(必须设置)、/boot为引导区(物理机必须设置,200MB即可,如果有/boot/efi,优先选择)。不同的电脑,该步骤出现的可选选项不同!看着来即可。
这一步没有设置好,右下角的"Next"无法点击。如将一个500G+的磁盘分为3个区,8000MB的swap分区,500MB的boot分区,剩下的全为/分区。另外,记得勾选上左侧的"Transfer user configuration and data files",并选择'Install GRUB2 bootloader'为前面设置的/boot分区的分区号。对于虚拟机,这里的/boot分区可以不设置,并选择“AUTO”。
如此甚好,真的不考虑点个赞吗 ~