restic 恢复 deepin 系统 备忘录
restic 恢复系统 备忘录
引子: 去年硬盘就崩过一次(Lenovo的 QLC 颗粒盘, 都是眼泪), 关键位置有备份, 但不是所有地方都备份了
遂搞了个 google drive 无限盘, 每天中午吃饭时间 使用 rclone 配合 restic 经由 crontab 自动备份
年后复工, 果不其然, SSD 崩之
一、 准备工作
- 想用 google drive, 那怎么说也得学会上网新姿势, 前两篇备忘录有涉及
- 不建议使用 live 系统,慢的一批
- 准备安装 U 盘, 重新安装 deepin 到 原 hhd 中
- 那我为什么不把 备份放到 hhd 中呢, 你猜
- 不要把 deepin 安装到 ssd 中, 对, 说的就是你, 别作死
二、 安装 deepin
安装到 hhd 中
安装到 hhd 中
安装到 hhd 中
过程 略
三、 安装 rclone, restic
https://github.com/rclone/rclone/releases
https://github.com/restic/restic/releases
自己动手丰衣足食,有 *.deb 就下, 没有就下 linux 二进制文件, 根据系统位数和处理器来,略
不要使用 sudo apt install rclone restic
三(1)、 配置代理
参照前两篇;
socks5 代理 转 http 工具: sudo apt install privoxy
具体方法使用百度即得, 简略描述就是 改配置文件 重启服务
命令行中 export http_proxy=http://127.0.0.1:8118
则接下来的命令就是走的代理 (前提是命令支持 http_proxy 环境变量)
四、 配置 rclone
以下操作均使用 root 身份
rclone config
# 根据提示一步一步来, 5.1 版本的 google drive 的数字是 13
# 我这边设置的 name 是 gd
# 测试
rclone lsd gd:/
五、 备份恢复
我们当前的环境是这样的:
deepin 安装在 hhd 中, 新加入的 ssd 已经格式为 ext4 格式(deepin 15 默认磁盘格式)
接下来就是一条命令之后的漫长等待
请一定确认, 不要直接将 备份 恢复到当前系统的 / 目录下
restic -r rclone:gd:/mybackup restore latest --target /
不要执行
restic -r /repo init
命令, 会死的很惨
restic -r rclone:gd:/mybackup restore latest --target /media/user/ssd
# 输出:
enter password for repository:
repository xxxxxxxx opened successfully, password is correct
created new cache in /root/.cache/restic
restoring <Snapshot xxxxxx of [/] at 2020-02-18 12:00:02.239049968 +0800 CST by root@xxxx> to /media/user/ssd/
/media/user/ssd
是我当前的 ssd 挂载路径
上面这条命令敲完之后, 会让你输入 repo 的密码, 约莫 30秒 左右,
如果长时间没有返回, 请检查 上网姿势 是否正确
六、 等待完成
等待时间总结了下操作流程
七、 grub 修复
cd /media/user/ssd
chroot .
sudo apt install grub
sudo update-grub
如果 grub 修复有问题,可以尝试 桌面版 grub 管理工具: https://launchpad.net/grub-customizer
八、 重启查看修复结果
九、 不能正确启动
进入 live 系统
将新安装的 deepin 内的全部文件, 拷贝到 恢复的镜像中
重启即可
原文地址:https://www.cnblogs.com/gettolive/p/12559306.html
- Java基础——数据类型之间的转换
- Java程序员面试宝典——重要习题整理
- Java8读文件方法代码学习
- .NET ORM 的 “SOD蜜”--零基础入门篇
- 【Spark研究】用Apache Spark进行大数据处理之入门介绍
- DataSet的灵活,实体类的方便,DTO的效率:SOD框架的数据容器,打造最适合DDD的ORM框架
- Java 内部类种类及使用解析
- JSON与XML的区别比较
- 无需开启宏即可渗透:在Office文档中利用DDE执行命令
- SQLiv:一款批量SQL注入漏洞扫描工具
- 【Python环境】监督学习之KNN算法
- 【数据科学】什么是数据科学家与数据科学
- Android基础总结(12)——XML和JSON解析
- 【Python环境】scikit-learn的线性回归模型
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 霸气!开源项目名字就叫BAT,具有语法高亮的Cat类命令
- 【Python基础系列】常见的数据预处理方法(附代码)
- 机器学习基础:类别不平衡问题处理方法汇总及实际案例解析
- 机器学习与统计学:R方代表什么?和P值的关系是什么?
- 机器学习基础:缺失值的处理技巧(附Python代码)
- 七夕限定,致程序员的专属浪漫
- 使用 Docker Multi-stage 高效构建镜像
- vue(typescript) 使用webpack-bundle-analyzer
- 2020年学习Python-爬取百度图片
- 自动化运维 | Ansible lookup
- 【TBase开源版测评】Hello, TBase
- linux定位问题常用命令
- 聊聊claudb的zset command
- 腾讯云语音识别v1签名算法详解
- MySQL案例:关于JSON的一个bug