一、安装systemback

先添加软件源。如果直接sudo add-apt-repository ppa:nemh/systemback的话,能看到提示:


于是参考这里的方式安装:

sudo add-apt-repository --remove ppa:nemh/systemback
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 382003C2C8B7B4AB813E915B14E4942973C62A1B
sudo add-apt-repository "deb http://ppa.launchpad.net/nemh/systemback/ubuntu xenial main"
sudo apt update
sudo apt install systemback

密钥可以在这里看到。

二、使用systemback制作镜像

启动systemback,登录之后界面如下:


点击Live system create,进入系统镜像的制作。

在这里插入图片描述
其中Working directory指的是systemback生成系统镜像的位置,所以要保证有足够大的空间。
Include the user data files勾选上,这样自己主文件夹内的文件都会被包含在系统镜像中。
点击Create new开始镜像制作,耐心等待即可。(发现在镜像制作的过程中会影响网络。)
制作完成后能在右上角看到结果文件,这个时候文件格式是.sblive

三、制作系统启动盘

一般制作系统启动盘的方法,是将iso文件刻录到U盘中。
对于小于4GB的.sblive文件,在右上方选中创建好的image,直接点击Convert to ISO即可。对于大于4GB的.sblive文件,Convert to ISO按键是暗的,无法直接转换。在这里尝试过网上普遍提到的:解压sblive,使用其他工具转换成iso,再刻录进U盘的方法。这种方法最终失败了,详细过程记录在后面。

成功的方法如下

创建好大于4GB的.sblive文件之后,插入有足够空间的U盘,点击绿色的刷新按钮,会在左下方的Write target看到插入的U盘,选中之后,点击右下方的Write to target,将image写入U盘中。

在这里插入图片描述
等待写入完成,系统启动盘就做好了。

四、在新的电脑上安装系统

将制作好的系统启动盘插入新电脑,并在开机的时候选择从U盘启动,进入系统安装界面。

在这里插入图片描述
出现上述界面之后,选择第二个Boot system installer,开始系统安装。根据提示进行即可,登录镜像的系统,输入新系统的用户名和密码等等,然后是系统的分区。
这是原始的分区。/dev/sda是电脑的硬盘,/dev/sdb是插入的启动盘。

在这里插入图片描述
把原来的分区删掉,修改分区如下(仅供参考):

在这里插入图片描述
注意一定要挂载/boot/efi,这样下面的Install GRUB 2 bootloader才会出现EFI的选项。还要勾选Transfer user configuration and data files

点击Next等待系统安装即可,安装完毕之后会提示重启电脑。


五、创建iso时坑的记录

回到iso的创建。通过其他方法将大于4GB的.sblive文件转成iso:

解压sblive文件

mkdir sblive
tar -xf /home/arthur.sblive -C sblive

重命名syslinux至isolinux:

mv sblive/syslinux/syslinux.cfg sblive/syslinux/isolinux.cfg
mv sblive/syslinux sblive/isolinux

安装cdtools
这里下载cdtools的安装包。

tar -xzvf cdrtools-3.02a07.tar.gz
cd cdrtools-3.02
make
sudo make install

生成ISO文件

/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

制作系统启动盘

在Linux系统下使用dd命令制作启动盘,参考教程

Ubuntu18.04在U盘插入之后自动挂载,需要先卸载掉再格式化。
在U盘内打开终端即可知道U盘所在的路径,然后卸载U盘:

sudo umount /media/arthur/MA

查看U盘的设备名称:

sudo fdisk -l

制作Linux系统的启动盘,建议格式化为ext4文件系统:

sudo mkfs.ext4 /dev/sdc

确认U盘已经被卸载,然后使用dd命令制作启动盘。

sudo dd if=xxxx.iso of=/dev/sdc status=progress

或者到Windows下做启动盘。

安装系统

将做好的启动盘插入新电脑中,选择从U盘启动。发现无法正确进入系统安装界面:

在这里插入图片描述
只有(hd0,msdos6)被识别出了文件系统。

一般情况下,通过执行下述命令即可正常启动系统:

grub rescue> set root=(hd0,msdos6)
grub rescue> set prefix=(hd0,msdos6)/boot/grub
grub rescue> insmod normal
grub rescue> normal

然而,在执行insmod normal之后会报错提示在(hd0,msdos6)/boot/grub/路径下找不到i386-pc/normal.mod。查看启动盘里面的文件,确实没有这个文件。使用这种方式制作的启动盘无法正确引导系统安装。

推测:systemback自带的Convert to ISOWrite to target除了写入image之外,还写入了系统引导的相关文件。对于大于4GB的image,用Write to target制作的启动盘,插入电脑时挂载了SBLIVESBROOT两个分区。而使用其他方式制作的启动盘,插入电脑时只挂载了sblive一个分区,可能确实丢失了系统引导项。

六、待解决的问题

1、听说使用Write to Target向U盘中写入33GB的.sblive时失败了。

2、上述方式做出的系统镜像,在单Ubuntu系统中能够成功地安装并运行。听说在Windows10下安装双系统失败了,不插着镜像启动盘无法进入系统。

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐