Ubuntu 20.04 系统备份和还原

2023-10-26

最近大家Ubuntu开发环境,经常出现搭着搭着系统就挂了,于是开始琢磨了Ubuntu系统的备份和还原,以备不时之需,Linux环境搭建实在是有点太细,好多情况下,就算曾经搭建过一遍,再次搭建有些包还是忘了安装,做好备份是十分必要的。

经过了一番研究,Ubuntu备份有很多方式:根目录tar、dd、Systemback(1.0版本已经不维护了,2.0版本收费)等等,最终决定使用 —— Timesift, 因为方便一些。

文章参考:小马虎的救星——Timeshift

Timeshift

Timeshift,是Linux下的是一款自由开源工具,可让你创建文件系统的增量快照。你可以使用 RSYNC 或 BTRFS 两种方式创建快照。这里这个快照其实和虚拟机的快照差不多,说白了这个软件就是为我们实体机创建了一份专属于我们实体机的快照,可以方便我们后期进入系统使用这个快照进行还原操作。

1.sudo apt-add-repository -y ppa:teejee2008/ppa
这一步是因为TimeShift 尚未正式托管在 Ubuntu 和 Debian 仓库中。考虑到这一点,我们将运行该命令命令来添加 PPA

2.sudo apt-get update
更新一下

3.sudo apt-get install timeshift
安装Timeshift

打开后就是这样:
在这里插入图片描述

选择一个方式
这里的两种方式有个简介
在这里插入图片描述
在这里插入图片描述

注:
我个人选择的是RSYNC,BTRFS我试了一下,貌似需要磁盘支持BTRFS文件格式,我的系统盘不支持,就选择了RSYNC。
我在电脑硬盘和外挂U盘(需要把U盘格式话成ext4文件系统)都备份了一份,以备不时之需。

BTRFS是和系统盘共存的,要是系统盘坏掉没事,可以恢复,但是你把系统盘删了,那你就别想了,这个模式可以说是最像虚拟机快照的。因为它恢复起来十分的快速且与系统盘共存。

RSYNC则是可以将快照存在linux文件系统的磁盘(windows和linux是不一样的,这个大家可以自行了解,文件格式是不一样的),也就是只要是个linux的格式盘就行,所以我们可以保存在除了系统盘外的盘或是直接外接一个磁盘将它在linux下格式化,这样我们就能在里面保存我们的快照了而且是彻底和系统盘分开的,但该模式的缺点是比较慢。

这里必须要提一下,RSYNC这个备份方式为我们提供了一种快速迁移系统并部署的可能性,我们在备份完之后相当于在备份盘有了一个一摸一样的系统,虽然不能直接用,但是我们可以用它直接在任意符合条件的电脑直接重新部署一个一模一样的系统,举个例子:我在我的电脑上的Ubuntu装好了各种环境,然后我把这个系统备份,然后其他人需要这个系统,我们就可以直接在其他人的电脑用这个备份重新部署一个一模一样的系统。

这就是快速迁移部署,有点docker的意思了,但是又不像docker方便。迁移服务器信息资料啥的都十分的方便。

接下来就是下一步,然后根据提示选择备份的位置信息等……
在这里插入图片描述

备份时间。
在这里插入图片描述

之后就遇到一个不太一样的地方RSYNC和BTRFS的用户这里其实是不一样的,大家不要看错了

RSYNC:在这里插入图片描述

BTRFS:
在这里插入图片描述
设置完之后就是:
在这里插入图片描述

然后完成之后它就会进行自己的第一次备份了,不过第一次时间会长一点而且文件内容看你存了多少东西,最好找个大点的盘。备份后是这样的:
在这里插入图片描述

还原主要针对情况有这么几类:

一.因为错误操作导致系统出现问题,这时我们可以安全进入系统,且正常操作,这样的话我们直接进入系统打开Timeshift选择我们的快照点击恢复根据提示选择还原磁盘进行还原就好。
在这里插入图片描述
选择好设备:
在这里插入图片描述

二.如果不能进入系统了,那么这个时候我建议你拿出自己之前安装系统的U盘系统来,然后进入live CD系统连接网络安装Timeshift,然后进入软件进入设置找到保存的快照(如果在外接盘,记得插上盘),然后点击快照点回复进行还原即可。

提一嘴上文提到的,在另外的一台电脑上部署,也可以这样,我们把这台电脑当做不能进入系统的系统就好了。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Ubuntu 20.04 系统备份和还原 的相关文章

  • apt-get 无法在 ubuntu dockerfile 中工作

    我对 docker 相当陌生 正在尝试通过编写自己的镜像来学习 并且目前正在阅读 Docker 的实际操作 ISBN 1633430235 在我自己的代码和书中的示例 第 146 页 中 我想通过 dockerfile 安装 git My
  • 为什么内核需要虚拟寻址?

    在Linux中 每个进程都有其虚拟地址空间 例如 32位系统为4GB 其中3GB为进程保留 1GB为内核保留 这种虚拟寻址机制有助于隔离每个进程的地址空间 对于流程来说这是可以理解的 因为有很多流程 但既然我们只有 1 个内核 那么为什么我
  • 无法从 jenkins 作为后台进程运行 nohup 命令

    更新 根据下面的讨论 我编辑了我的答案以获得更准确的描述 我正在尝试从詹金斯运行 nohup 命令 完整的命令是 nohup java jar home jar server process 0 35 jar prod gt gt var
  • 如何有效截断文件头?

    大家都知道truncate file size 函数 通过截断文件尾部将文件大小更改为给定大小 但是如何做同样的事情 只截断文件的尾部和头部呢 通常 您必须重写整个文件 最简单的方法是跳过前几个字节 将其他所有内容复制到临时文件中 并在完成
  • 无法在 mysql-apt-config [Ubuntu 14.04] 中选择“确定”

    我使用的是 Ubuntu 14 04 sudo apt get update总是给我这个选项来配置 mysql apt config 我尝试选择版本 按 tab gt 在 确定 上突出显示的键 按 Enter 但没有任何反应 它再次返回并突
  • vector 超出范围后不清除内存

    我遇到了以下问题 我不确定我是否错了或者它是一个非常奇怪的错误 我填充了一个巨大的字符串数组 并希望在某个点将其清除 这是一个最小的例子 include
  • 尝试安装 LESS 时出现“请尝试以 root/管理员身份再次运行此命令”错误

    我正在尝试在我的计算机上安装 LESS 并且已经安装了节点 但是 当我输入 node install g less 时 出现以下错误 并且不知道该怎么办 FPaulMAC bin paul npm install g less npm ER
  • 无法使用 wget 在 CentOS 机器上安装 oracle jdk

    我想在CentOS上安装oracle java jdk 8 我无法安装 java jdk 因为当我尝试使用命令安装 java jdk 时 root ADARSH PROD1 wget no cookies no check certific
  • Linux 内核标识符中前导和尾随下划线的含义是什么?

    我不断遇到一些小约定 比如 KERNEL Are the 在这种情况下 是内核开发人员使用的命名约定 还是以这种方式命名宏的语法特定原因 整个代码中有很多这样的例子 例如 某些函数和变量以 甚至 这有什么具体原因吗 它似乎被广泛使用 我只需
  • 交叉编译armv5,但它创建v7二进制文件

    我设法为arm926ej s创建了一个目标文件我在 qemu 上使用 Debian Arm arm linux gnueabi gcc 4 4 static O c mcpu arm926ej s hello c o hello root
  • Linux 可执行文件与 OS X“兼容”吗?

    如果您在基于 Linux 的平台上用 C 语言编译一个程序 然后将其移植以使用 MacOS 库 它会工作吗 来自编译器的核心机器代码在 Mac 和 Linux 上兼容吗 我问这个问题的原因是因为两者都是 基于 UNIX 的 所以我认为这是真
  • ubuntu:升级软件(cmake)-版本消歧(本地编译)[关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 我的机器上安装了 cmake 2 8 0 来自 ubuntu 软件包 二进制文件放置在 usr bin cmake 中 我需要将 cmake 版本至少
  • C语言中如何通过内存地址映射函数名和行号?

    如何用 GCC 中的内存地址映射回函数名称和行号 即假设一个 C 语言原型 void func Get the address of caller maybe this could be avoided MemoryAddress get
  • 为什么我可以直接从 bash 执行 JAR?

    我是一个长期从事 Java 工作的人 并且知道运行带有主类的 JAR 的方法MANIFEST MFJar 中的文件很简单 java jar theJar jar 我用它来启动 Fabric3 服务器 包含在bin server jar在其标
  • 在我的 index.php 中加载 CSS 和 JS 等资源时出现错误 403

    我使用的是 Linux Elementary OS 并在 opt 中安装了 lampp My CSS and JS won t load When I inspect my page through browser The console
  • docker容器大小远大于实际大小

    我正在尝试从中构建图像debian latest 构建后 报告的图像虚拟大小来自docker images命令为 1 917 GB 我登录查看尺寸 du sh 大小为 573 MB 我很确定这么大的尺寸通常是不可能的 这里发生了什么 如何获
  • 多处理:仅使用物理核心?

    我有一个函数foo它消耗大量内存 我想并行运行多个实例 假设我有一个有 4 个物理核心的 CPU 每个核心有两个逻辑核心 我的系统有足够的内存来容纳 4 个实例foo并行但不是 8 个 此外 由于这 8 个核心中的 4 个是逻辑核心 我也不
  • jq中如何分组?

    这是 json 文档 name bucket1 clusterName cluster1 name bucket2 clusterName cluster1 name bucket3 clusterName cluster2 name bu
  • ftrace:仅打印trace_printk()的输出

    是否可以只转储trace printk 输出于trace文件 我的意思是过滤掉函数跟踪器 或任何其他跟踪器 中的所有函数 一般来说 您可以在选项目录中关闭选项 sys kernel debug tracing options Use ls显
  • 查找哪个程序运行另一个程序

    我有一个 NAS 运行在 Redhat Linux 的有限版本上 我按照指示破解了它 这样我就可以访问 shell 这很有帮助 我还做了一些修改 其他人也做过修改 除了一个问题之外 它们似乎都工作得很好 不知何故 每隔 22 天 系统就会关

随机推荐

  • 如何检测手机当前为“桌面”(desktop)状态

    介绍 一些桌面软件会在用户把手机切换到桌面 desktop 时显示一些特定的信息 如图片 滚动文字等 达到一种个性桌面的效果 这里就介绍一种检测 桌面 的方法 S60 2nd的 桌面 是电话应用 S60 3rd的 桌面 是Idle exe
  • 声明式事务源码解析--- Spring源码从入门到精通(二十六)

    上篇文章介绍了事务代码的实例 声明式事务 Spring源码从入门 到精通 二十五 这篇文章主要介绍事务源码解析 一 EnableTransactionManagerment 里面import一个TransactionManagementCo
  • 【RDMA】技术详解(一):RDMA概述

    目录 0 前言 一 技术背景 1 传统的 TCP IP 网络通信的弊端 2 新的网络通信技术 TOE and RDMA 2 1 TOE TCP IP协议处理工作从CPU转移到网卡 2 2 RDMA 绕过CPU 数据直接 传 到对端内存 二
  • linux命令 uname -r 和 uname -a 的详解

    1 uname r 显示操作系统的发行版号2 uname a 显示系统名 节点名称 操作系统的发行版号 内核版本等等 系统名 Linux 节点名称 qyw 操作系统的发行版号 3 10 0 957 21 3 el7 x86 64 命名规则
  • Nginx负载均衡session会话保持方法

    负载均衡时 为了保证同一用户session会被分配到同一台服务器上 可以使用以下方法 1 使用cookie 将用户的session存入cookie里 当用户分配到不同的服务器时 先判断服务器是否存在该用户的session 如果没有就先把co
  • Java 秒杀方案(下)

    技术点 前端 Thymeleaf Bootstrap Jquery 后端 SpringBoot MyBatisPlus Lombok 中间件 Redis RabbitMQ 秒杀方案简介 本短文完成项目搭建 分布式 Session 和秒杀功能
  • Linux DDR3寻址地址映射

    1 相关原理 DDR3内部相当于存储表格 和表格的检索相似 需要先指定 行地址 row 再指定列地址 column 这样就可以准确的找到需要的单元格 对于DDR3内存 单元格称为基本存储单元 也就是每次能从该DDR3芯片读取的最小数据 存储
  • C语言编译过程详解

    前言 C语言程序从源代码到二进制行程序都经历了那些过程 本文以Linux下C语言的编译过程为例 讲解C语言程序的编译过程 编写hello world C程序 hello c include
  • 【mmYOLO】促进视觉项目落地,主打工程经验和实用。从原理配置到属性设置,从模型训练到模型评测

    MMYOLO 是一个基于 PyTorch 和 MMDetection 的 YOLO 系列算法开源工具箱 它是 OpenMMLab 项目的一部分 目前支持的任务有目标检测 旋转框目标检测 具有如下三个特性 统一便捷的算法评测 MMYOLO 统
  • MYSQL 根据不同字段的汇总相同字段的总数

    需求 汇总一个用户不同支付方式的购买的总杯数 buy num 杯数 pay code 支付方式 pay name 支付名称 pay status 支付状态 ms order 订单表 ms user 用户表 SELECT u id pay n
  • 微信小程序开发之视频video组件报错:渲染层网络层错误

    微信小程序开发之视频video组件报错 渲染层网络层错误 视频正常播放 暂停 使用正常 但报错 From server 61 147 235 115 console error VM1074 1 anonymous VM1101 2 VM1
  • LCP概念

    http blog csdn net zzfcnc article details 6660456 对于PPP协议 可以讲解的内容非常多 这个协议的应用也非常的广泛 那么这里我们就重点讲解一下LCP的内容 首先我们需要来哦接一下ppp协议的
  • python实现跨excel的工作表sheet之间的复制

    python 将test1的Sheet1通过 跨文件 复制到test2的Sheet2里面 包括谷歌没有能搜出这种问题答案 我们贴出代码 我们加载openpyxl这个包来解决 from openpyxl import load workboo
  • 【数据库 Mysql查询系列】--检索出stu表中‘计算机工程’或‘软件工程’专业的学生的记录,结果集按学号升序排序。

    涉及到的两个表 代码如下 select sno as 学号 sname as 姓名 sex as 性别 mname as 专业 from stu major where stu mno major mno and mname in 计算机工
  • nodejs快速上手编写程序

    module export 和 exports 的区别 根本上的区别 exports 返回的是模块函数 module exports 返回的是模块对象本身 返回的是一个类 使用上的区别是 exports 的方法可以直接调用 module e
  • 普通树转二叉树

    实现方法 对于普通树转二叉树 要记住6个字口诀 左儿子 右兄弟 实现的步骤是这样的 将树的根节点直接作为二叉树的根节点 将树的根节点的第一个子节点作为根节点的左儿子 若该子节点存在兄弟节点 则将该子节点的第一个兄弟节点 方向从左往右 作为该
  • H无穷控制

    H无穷优化控制问题可归纳为 求出一个使系统内部稳定的控制器K s 使闭环传函Tzw的无穷范数极小 LQG的弱点 对控制的一个主要挑战使多变量控制系统设计 因为MIMO系统的传函是一个矩阵 LQG是一种在状态空间的框架内 对MIMO系统进行设
  • 灰度世界算法(Gray World Algorithm)

    转自 http blog csdn net u010839382 article details 41789261 utm source tuicool 人的视觉系统具有颜色恒常性 能从变化的光照环境和成像条件下获取物体表面颜色的不变特性
  • JDBC连接MySQL数据库及示例

    JDBC是Sun公司制定的一个可以用Java语言连接数据库的技术 一 JDBC基础知识 JDBC Java Data Base Connectivity java数据库连接 是一种用于执行SQL语句的Java API 可以为多种关系数据库提
  • Ubuntu 20.04 系统备份和还原

    最近大家Ubuntu开发环境 经常出现搭着搭着系统就挂了 于是开始琢磨了Ubuntu系统的备份和还原 以备不时之需 Linux环境搭建实在是有点太细 好多情况下 就算曾经搭建过一遍 再次搭建有些包还是忘了安装 做好备份是十分必要的 经过了一