最近更换了nuc主机作为机器人的控制主机,为了避免之前在操作系统过程中把系统搞崩了的惨状决定养成定期备份系统的好习惯,这就需要掌握制作系统镜像及烧录的能力。介绍一下我们的工作环境:
- 电脑:NUC13竞技场峡谷i7-1360P薄款
- 系统版本:Ubuntu 20.04
1、安装systemback软件
这里我使用的是一个韩国人的systemback1.9.4版本,我这里亲测可用
hamonikr/systemback: Easy to use backup and recovery on modern Ubuntu-based systems. (github.com)
# Add APT
curl -sL https://pkg.hamonikr.org/add-hamonikr.apt | sudo -E bash
# Install package
sudo apt install systemback
如果安装了别的版本的systemback,可以先卸载
sudo apt purge systemback
然后修改一下apt仓库源,把之前的systemback源给删掉
sudo gedit /etc/apt/sources.list
然后update一下重新安装即可。这样我们就完成了systemback的安装。用管理员身份启动
sudo systemback
如上图所示,这个软件除了制作镜像还可以设定还原点进行系统的还原操作,十分实用。
2、备份sblive系统
下面开始基于这个软件进行系统镜像的制作,点击创建live系统:
然后选上包含用户数据,电机创建新的。在系统名称处也可以自定义导出的sblive文件的名称,如果auto就会是如右上角一样(右上角是我已经进行了一次备份)以前缀+时间进行命名。
如图所示,开始了live系统的备份,最终会导出一个sblive格式的文件。其实这一文件在systemback上就可以制作系统启动U盘了,但是为了方便系统完全崩到开不了机的情况,还是转换为更通用的iso文件。
3、安装cdrtools
为了将在转换之前需要进行cdtools软件的安装,这里完全复制自:
Systemback制作大于4G的Ubuntu系统镜像 - 冰柠檬的夏天 - 博客园 (cnblogs.com)
这里直接贴出指令,挨个运行即可:
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
中间会有一些warning啥的,但是最后运行时候似乎也不影响。
4、转换为iso格式
下面开始真正进行格式的转换,首先解压 .sblive 文件:
mkdir sblive
tar -xf /home/systemback_live_2018-10-15.sblive -C sblive
其中那个systemback_live_2018-10-15.sblive换成你自己的sblive文件名即可。
然后重命名解压出来的部分文件,虽然也不知道为啥,但是照做就是:
mv sblive/syslinux/syslinux.cfg sblive/syslinux/isolinux.cfg
mv sblive/syslinux sblive/isolinux
最后直接生成即可
/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
这里sblive.iso是生成的iso文件名,可以自定义。
至此我们就完成了iso的转换,然后过程中一些无用的文件就可以删除了。比如解压出的sblive文件夹。sblive文件也可以删除,留着作为备份也行。另外把下载的cdrtools的压缩包给删了可以。
5、烧录启动硬盘
首先制作ventory启动u盘,这里不再赘述,没有什么值得注意的点,贴一个链接好了:
新一代多系统启动U盘 Ventoy 使用指南 - 知乎 (zhihu.com)
然后把自己上面做好的镜像拷进去就完成了启动硬盘的制作。
6、安装系统
对于系统盘是完全干净的新盘情况下,大概率摁F10u盘启动是不起作用的,需要先摁F12进入这个界面:
然后参照这个链接完成为Ventoy启用安全引导支持之后,进行下一步骤。
How To Enable Secure Boot Support For Ventoy - Tech News Today
把启动硬盘查到nuc主机上,启动时候摁F10,选择u盘作为启动盘
然后会进入这个界面,选择自己的目标iso进入。然后ventory会提供多个启动项选择,这里一定要注意选择grub启动模式!!!很多教程都让选择normal启动模式,但是根据我测试,使用systembcak制作的镜像再nuc主机上启动会黑屏卡住不动。
然后会进入systemback的引导界面,这里选择系统安装器
然后会直接进入系统,和你拷贝的系统其实一模一样,输入密码进入后会直接打开systemback的安装系统界面。这里会遇到一个大坑,正常情况(也许很多电脑和版本都是正常情况)直接安装就行,但是我这个经过测试会遇到一个蛋疼的bug——无法格式化硬盘,和这个BUG2一样
ubuntu 22使用systemback时的bug_ubuntu22 systemback-CSDN博客
最终我们也参照这个解决方法解决了这个问题,也就是手动格式化硬盘
打开gparted软件(没有自己安装,这个很简单),然后把硬盘分区并进行格式化
- fat32,512MiB
- linux-swap,32000MiB(和内存大小一致)
- ext4,其他所有空间
点对号保存我们就完成了硬盘的格式化。然后我们终于可以愉快的安装系统了。这里需要重新启动一下主机,重新选择系统安装器并,否则可能会出一些问题。
打开systemback软件,点击安装系统,首先是设定用户名密码啥的,这个按照自己需求设定即可,
然后就进入了分区环节,这里我们已经在上面用gparted分区并格式化了,所以这里其实只需要设定一下挂载点即可,而且必须注意一定不要选择格式化,也就是所有分区下格式一栏不打勾!!!
挂载点的具体设定为,(一定不要点格式!!!):
- EFI系统分区(主分区) 512MiB /boot/efi
- 交换空间(逻辑分区)32000MiB SWAP
- 挂载点
/
(主分区) 剩余所有容量 /
另外记得选择传递用户配置文件及用户数据。点击下一步就可以开始系统的安装,等待进度条结束重启就ok啦。
安装完系统开机后可能会找不到wifi,这是由于没有关闭安全模式,启动的时候摁F2进入bios关闭security boot即可:ubuntu20.04安装完没有连接wifi的选项,ubuntu网卡驱动_ubuntu没有启用wifi选项-CSDN博客
ventoy 启动盘提示 (0x1A) Security Violation 的解决方法 - 技术分享 - 微控圈(MCU Loop)
然后可以顺便把通电自启也打开
参考资料
Systemback制作大于4G的Ubuntu系统镜像 - 冰柠檬的夏天 - 博客园 (cnblogs.com)