当前位置: 首页 > news >正文

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 aria2aria2c -s 10 https://nchc.dl.sourceforge.net/project/cdrtools/alpha/cdrtools-3.02a07.tar.gztar -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盘,重启系统即可。

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

​​​​​​​

相关文章:

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

简单记录使用Systemback工具打包Ubuntu系统得到iso镜像文件,并在物理机上进行还原(安装)的流程。测试结果发现,使用打包的iso文件安装得到的Ubuntu系统继承了我之前的Ubuntu系统,包括并不限于如下内容:Home…...

requestAnimationFrame 和 requestIdleCallback API

requestAnimationFrame window.requestAnimationFrame() 方法告诉浏览器您希望执行动画并请求浏览器在下一次重绘之前调用指定的函数来更新动画。该方法使用一个回调函数作为参数,这个回调函数会在浏览器重绘之前调用。 ⚠️ 注意:若您想要在下一次重绘…...

SpringBoot启动原理

背景 1> 大家都知道SpringBoot是通过main函数启动的,这里面跟踪代码到处都没有找到while(true),为什么启动后可以一直跑? 2> SpringBoot默认使用tomcat作为web容器。大家也可以通过在pom文件中exclusion掉tomcat,denpendenc…...

区间预测 | MATLAB实现QRBiLSTM双向长短期记忆神经网络分位数回归时间序列区间预测

区间预测 | MATLAB实现QRBiLSTM双向长短期记忆神经网络分位数回归时间序列区间预测 目录 区间预测 | MATLAB实现QRBiLSTM双向长短期记忆神经网络分位数回归时间序列区间预测效果一览基本介绍模型描述程序设计参考资料 效果一览 进阶版 基础版 基本介绍 MATLAB实现QRBiLS…...

看一看吧,面试真的卷......

大家好,最近有不少小伙伴在后台留言,今年面试实在是太卷了,不知道从何下手! 不论是跳槽涨薪,还是学习提升!先给自己定一个小目标,然后再朝着目标去努力就完事儿了! 为了帮大家节约…...

Python——1

一、注释 (1)单行注释:#需要注释的内容(#) (2)多行注释:需要注释的内容(三引号) 二、变量及变量类型 1.变量 语法定义:变量名 变量值&#…...

bgp团体属性配置案例一

RouterA的配置 sysname RouterA interface GigabitEthernet1/0/0 ip address 192.168.0.1 255.255.255.0 interface LoopBack0 ip address 1.1.1.1 255.255.255.255 bgp 10 router-id 1.1.1.1 //Router ID,建议配置为LoopBack0的IP地址 peer 192.168.0.2 as-number …...

mybatis-plus配置日志实现方式

Mybatis-plus是一个基于Mybatis的强大框架,可以帮助开发者快速地开发高质量的数据库应用程序。Mybatis-plus提供了许多配置项,其中一个重要的配置项是log-impl。 log-impl配置项定义了Mybatis-plus的日志实现方式,有两种可选的方式&#xff…...

Cy5.5 NHS ester 氨基反应性荧光染料Cyanine5.5 -NHS

Cy5.5 NHS ester是一种常用的荧光探针,可用于细胞或组织的荧光标记,也可用于蛋白质或核酸的标记。Cy5.5 NHS ester的荧光峰位于近红外区域,波长为675nm,具有较强的荧光强度和较长的荧光寿命,适合于生物分子在体内或组织…...

深度思考:在 AI 时代,你会被放大一千倍的能力是什么?

Datawhale干货 作者:艾芙,复旦大学,百姓AI教育负责人 前言 大家晚上好,我是艾芙,百姓 AI 的 AI 教育负责人。 先做一下自我介绍,我是一个在技术圈和教育圈反复横跳的斜杠中年了。大约在 5 年前&#xff0c…...

蚂蚁实时低代码研发和流批一体的应用实践

摘要:本文整理自蚂蚁实时数仓架构师马年圣,在 Flink Forward Asia 2022 流批一体专场的分享。本篇内容主要分为四个部分: 实时应用场景与研发体系低代码研发流批一体规划展望 点击查看原文视频 & 演讲PPT 一、实时应用场景与研发体系 蚂蚁…...

5 创建映射

5 映射 上边章节安装了ik分词器,如果在索引和搜索时去使用ik分词器呢?如何指定其它类型的field,比如日期类型、数 值类型等。 本章节学习各种映射类型及映射维护方法。 5.1 映射维护方法 1、查询所有索引的映射: GET&#xf…...

windows注册表参数(%1,%2,%v) windows注册表是不区分大小写的.

windows注册表是不区分大小写的. 参数 含义 %1 文件路径 %2 系统默认的打印机 %3 文件扇区 %4 端口 %D 文件路径 %L 文件长路径 %V 文件路径 %W 当前文件的父目录的路径 参考:https://blog.csdn.net/meng_suiga/article/details/79485855 ————…...

基于SpringBoot的大学生租房系统

背景 大学生租房系统设计的目的是建立一个高效的平台,采用简洁高效的Java语言与Mysql数据库等技术,设计和开发了本大学生租房系统设计。该系统主要实现了用户和房主通过系统注册用户,登录系统后能够编辑自己的个人信息、查看首页&#xff0c…...

NetApp 利用适用于混合云的实时解决方案解决芯片设计方面的数据管理挑战

电子设计自动化 (EDA) 成本持续增加,而周期时间缩短。这些都为 EDA 设计带来了前所未有的挑战,对现代高性能工作流的需求变得从未如此巨大。 联想凌拓芯片设计行业存储解决方案及最佳实践 联想凌拓芯片行业数据存储与管理解决方案,针对EDA…...

Rust + WASM 入门

一、参考资料 参考官方技术文档 https://rustwasm.github.io/ 二、安装脚手架 cargo-generate # cargo-generate 用于快速生成 WASM 项目的脚手架(类似 create-react-app) cargo install cargo-generate 三、下载安装 wasm-pack.exe 打包工具 双击安装…...

【操作系统】内存空间

最小的操作系统Hello world 想要pmap这个进程,需要进程号 但是这个进程在启动的一瞬间就执行完了 用GDB把程序暂停下来,然后用pmap观察地址空间 用info inferiors得到gdb里的进程号 ro 可读 :只读数据 rx 可读可执行 :代码 rw 可…...

详解静态、动态代理以及应用场景

一篇不太一样的代理模式详解,仔细阅读,你一定会获取不一样的代理见解,而不是人云亦云。 查看了社区里关于代理模式描述,发现很多博客千篇一律甚至存在共性错误,写此文提出自己对代理的见解。 静态代理动态代理 JDKCGLi…...

ChatGLM-6B本地cpu部署

ChatGLM-6B是清华团队研发的机器人对话系统,类似ChatGPT,但是实际相差很多,可以当作一个简单的ChatGPT。 ChatGLM部署默认是支持GPU加速,内存需要32G以上。普通的机器无法运行。但是可以部署本地cpu版本。 本地部署,需…...

算法修炼之练气篇——练气七层

博主:命运之光 专栏:算法修炼之练气篇 前言:每天练习五道题,炼气篇大概会练习200道题左右,题目有C语言网上的题,也有洛谷上面的题,题目简单适合新手入门。(代码都是命运之光自己写的…...

vscode常用快捷方式

基本编辑 Ctrl X:剪切当前行或选定内容 Ctrl C:复制当前行或选定内容 Ctrl V:粘贴当前行或剪切板内容 Ctrl Z:撤销上一步操作 Ctrl Y:恢复上一步撤销的操作 Ctrl F:在当前文件中查找内容 Ctrl H&am…...

如何压缩mp3文件大小,5分钟学会4种方法

如何压缩mp3文件大小?我们在开车的时候都很喜欢听歌,一般歌曲库里的mp3文件都很多,小编的就有上千首。如果我们还想要增加更多mp3文件,有时候就会出现内存不足的情况啦。所以我们需要压缩mp3文件大小,这样才能在我们手…...

从0搭建Vue3组件库(十二):引入现代前端测试框架 Vitest

Vitest 是个高性能的前端单元测试框架,它的用法其实和 Jest 差不多,但是它的性能要优于 Jest 不少,还提供了很好的 ESM 支持,同时对于使用 vite 作为构建工具的项目来说有一个好处就是可以公用同一个配置文件vite.config.js。因此本项目将会使用 Vitest 作为测试框架。 安装 …...

使用Handler创建一个Android秒表应用

本文所有代码都放在以下链接中:https://github.com/MADMAX110/Stopwatch 0、应用是一个有活动、布局和其他资源组成的集合。其中一个活动是应用的主活动。每个应用都有一个主活动,在文件AndroidManifest.xml中指定。 1、默认地,每个应用都在…...

node-sass安装失败解决方法总结

node-sass 安装失败的原因 npm 安装 node-sass 依赖时,会从 github.com 上下载 .node 文件。由于国内网络环境的问题,这个下载时间可能会很长,甚至导致超时失败。 解决方法一:使用淘宝镜像源(推荐) npm …...

C++特殊类设计

文章目录 1.设计一个类,不能被拷贝2.设计一个类,只能在堆上创建对象3.设计一个类,只能在栈上创建对象4.设计一个类,不能被继承5.设计一个类,只能创建一个对象5.1 单例模式5.2 饿汉模式5.3 懒汉模式5.4 两种模式的析构函…...

常用的python gpu加速方法

在使用 PyCharm进行机器学习的时候,我们常常需要自己创建一些函数,这个过程中可能会浪费一些时间,在这里,我们为大家整理了一些常用的 Python加速方法,希望能给大家带来帮助。 在 Python中,我们经常需要创建…...

SpringCloud-Gateway

什么是网关? 网关是一个服务,是访问内部系统的唯一入口,提供内部服务的路由中转,额外还可以在此基础上提供如身份验证、监控、负载均衡、限流、降级与应用检测等功能。 Spring Cloud Gateway 与 Zuul 对比 zuul1.x与zuul2.x Zu…...

【C++ qt4】操作json学习笔记

本博文源于笔者在学习c qt4操作json文件,qt4不支持json,里面的函数是json.h与jsoncpp.cpp我已经附在文末,大家可复制重命名用,里面的案例可以自己拿来敲或者直接copy也行.,一定利用好目录拖动,不然很长。 文章目录 1.从…...

【牛客刷题专栏】0x25:JZ24 反转链表(C语言编程题)

前言 个人推荐在牛客网刷题(点击可以跳转),它登陆后会保存刷题记录进度,重新登录时写过的题目代码不会丢失。个人刷题练习系列专栏:个人CSDN牛客刷题专栏。 题目来自:牛客/题库 / 在线编程 / 剑指offer: 目录 前言问…...