Bootstrap

Ubuntu18.04 制作系统ISO镜像并物理机还原(Systemback)

 简单记录使用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文件。

这个文件就可以用来安装系统了。同时还可以作为live系统来使用。

在备份过程中可能提示

The restore point creation is aborted!
There has been critical changes in the file system during this operation

这并不一定是由于系统发生了严重的更改,只要是在复制文件的过程中出现错误都会出现这个信息。 
详细的错误信息可以通过

systemback-sustart

这个指令去调试,看看具体哪一个文件复制出了问题。极有可能的是权限问题。 
也可以通过这个指令去调试

DBGLEV=3 systemback-sustart

当错误出现后会在/tmp文件夹下创建一个systemback的错误信息文件。可以方便的通过这个文件去找到错误的原因。

3 Ubuntu系统还原

​ 有了iso文件就可以使用U盘或移动固态制作系统盘,然后进行系统安装啦~ 可以使用rufus及其他软件进行系统盘制作。或者使用Ventoy做一个系统盘,直接把iso文件复制粘贴到U盘里面就可以进行安装。推荐Ventoy,我目前的U盘里面有ubuntu18、windows、ubuntu备份 三个系统的iso文件,每一个都可用独立用于系统安装

镜像安装,实现系统完整复刻

​ 系统盘弄好后,就依照正常安装Ubuntu系统的方式去安装即可,只不过具体的安装界面稍微有些不一样。

        经过实验,通过systemback制作的iso镜像文件的安装方法同Remastersys等方式不同。后者生成的iso文件同ubuntu官方直接下载的ubuntu.iso镜像一样,在虚拟机选定镜像文件xxx.iso后直接进入系统,然后安装系统即可;而systemback生成的iso镜像开机引导会是如下界面:

 第一个选项将会进行U盘中的系统,第二个选项将直接进行系统安装。如果直接使用第二个选项进行系统安装时失败了,可以选择第一个选项,进入系统之后再进行安装(可以查看报错原因,知道为什么报错!)。进入U盘中的系统之后,CTRL+ALT+T打开终端,输入systemback-sustart即可进行系统安装。我当时使用的U盘空间不够(32G的U盘装26G的系统),就出现了下面的报错,更换为64G的U盘后就能够顺利安装成功了。

​1 设置用户名

进行系统安装时,需要输入系统的用户信息,推荐输入原系统的用户名和密码。安装好的系统将会使用这里输入的用户名替换掉一些系统文件中的路径,比如说~/.bashrc中设置的工作空间路径。如果输入原系统的用户名和密码,系统是可以直接运行之前配置好的一些环境的;如果输入新的用户名,可能需要重新创建工作空间并进行编译。备份的系统会保留之前系统的一系列文件,为此工作空间中的路径也还是原来的用户名的。

点击下一步进入分区界面。首先选择需要安装系统的硬盘,点击“!Delete”按钮,会对当前选中的磁盘进行删除操作,若想撤销此delete操作,点击下方的撤销按钮即可。点击delete后的效果图如下:

2 设置分区

在此,你需要为系统切割区间。
一般设置4个区间即可,"/"(ext4), "/home"(ext4), "swap", "boot/efi"。其中

先分配"swap",大小与内存相当即可

再分配"boot/efi",大小200m即可

最后分配"/"和"/home",文件系统都选ext4即可,"/"与"/home"的大小比一般是1:10到3:10,看个人需求而定。 

按照上述的分区大小建议及上图的设置分区的操作

手动设置createNew下方的磁盘大小,
点击绿色箭头,使得分区大小生效,生效后的分区会在左侧显示
选择刚分区的好的区域,点击 挂载点,/"(ext4), "/home"(ext4), "swap", "boot/efi,
点击绿色箭头,使得挂载点设置生效
依次设置"/"(ext4), "/home"(ext4), "swap", "boot/efi"四个分区,注意检查下是否设置成功,若未设置成功请再次设置即可,

酌情选择"传递用户配置文件",一般可以勾选“传递用户配置文件”,检查"安装grub2引导程序"选项并非"禁用"。设置后的效果图如下。(勾选上左侧的"Transfer user configuration and data files",并选择'Install GRUB2 bootloader'为前面设置的/boot分区的分区号。对于虚拟机,这里的/boot分区可以不设置,并选择“AUTO”)

 

点击next。然后就会安装到硬盘了,直到提示reboot,拔出U盘,重启系统即可。

 如此甚好,真的不考虑点个赞吗 ~

;