- 本文适用于具有一定基础和动手能力的 Linux 用户, 不清楚之处还请自行百度
- 系统的备份与恢复具有很大风险,在操作之前还请备份重要数据先。
以 Ubuntu18.04 系统为例
系统配置
- OS: Ubuntu 18.04
- mem: 16G
- disk1: TOSHIBA 256G 2280 m.2 sata
- disk2: HS-C2000Pro 1024
- Display: NVIDIA GTX 1050 (cuda 已配置)
磁盘分区表
1 | root@l: lsblk |
对于整个系统进行备份与恢复
- 删除不必要的日志文件
- 取消不重要 盘/分区 的挂载
开始备份
- 同理,您也可以将压缩以后的文件任意移动到一个足够大的分区中,然后使用U盘引导,进入 live 桌面
- 当然你也可以通过网络实现实时远程备份,如使用
netcat(nc)
和ssh
,或者先备份,之后再通过网络发送压缩包。
- 进入了单人模式,首先将不必要的挂载分区给取消挂载
- 挂载要存放文件的分区
- 压缩根目录
1 | #备份系统 |
- c:创建压缩包
- v:输出压缩信息
- p:保持文件原有的权限和属性
- z:压缩文件为
.gz
- f:指定文件名
- –exclude=/example/path:不压缩指定路径下面的文件
- -one-file-system:不备份其他文件系统中的文件(只备份和系统根分区一样分区类型的文件)
- 如果您希望其他文件系统(例如 /home分区或安装在 /media备份中的外部介质),您需要单独备份它们,或省略此标志。如果省略此标志,则需要添加几个 –exclude= 参数以避免您不想要的文件系统。
- /proc 和 /sys 是虚拟文件系统,它为正在运行的内核的变量提供接口,因此没有必要尝试备份或还原它们。 /dev 是一个tmpfs,其内容由udev动态创建和删除,因此您也没有必要尝试备份或还原它。同样,/run 是一个 tmpfs,它保存有关系统运行的一些变量.
- For more: Here
注意:
--exclude=
的排除是递归的,把相对越长的目录写在前面。要不然就不会备份或者排除该目录
- For more: Here
分卷压缩
- 注意:因为 FAT32 最大支持文件大小为4G而且系统备份 一般 比较大(一般 30G 起步),不强制要求,自行抉择
压缩后分卷
split -d -b 3900m /path/to/backup.tar.gz /name/of/backup.tar.gz
- 简单地拆分由/path/to/backup.tar.gz指定的现有文件。
压缩前分卷
tar -cvpz <put options here> / | split -d -b 3900m - /name/of/backup.tar.gz
- 直到管道(|)的前半部分与我们之前的例子相同,但是省略了 f 选项。去掉 f 参数,tar会将存档输出到标准输出,然后通过管道输出到split命令。
-d
此选项表示存档后缀将是数字而不是字母,每个拆分将从01开始顺序,并随每个新的拆分文件而增加。-b
此选项指定要拆分的大小,在此示例中,已将其设置为 3900MB 以适合FAT32分区。-
连字符是输入文件的占位符(通常是已创建的实际文件),并指示拆分以使用标准输入。/name/of/backup.tar.gz
是将应用于所有生成的拆分文件的前缀。它应该指向您希望放置存档的文件夹。在这个示例中,第一个拆分归档文件将位于/name/of/
目录中,并命名为backup.tar.gz.01
合并分卷文件
- cd 进入文件所在的目录
- 使用
cat *tar.gz* |tar -xvpzf - -C /
提取到根目录(也可以修改为其他目录)
开始恢复
- 对于同一台电脑进行备份直接跟着教程走
- 不同的电脑实现备份的话,可以先做一个启动盘,然后U盘启动进入live桌面,接下来操作是一样的
- 对于已有系统想替换掉的话,可以和第二点进行一样的做法,不过记得 备份和格式化分区
- 重启,正常进入系统
- 挂载要安装系统的分区
- 解压
- 创建缺少的文件夹
- 挂载启动分区
- 安装
grub
- reboot
1 | root@l: mount /dev/sdb4 /media/D |
x
解压文件- -C
解压至指定路径 - –numeric-owner - 此选项告诉tar恢复归档文件的数字所有者,而不是匹配要还原的环境中的任何用户名。因为这是您要恢复的系统中的用户
id:s
不一定与您用于恢复的系统匹配(例如: live CD )
参见
- Ubuntu Documentation: TAR
- Install Grub from chroot
- +实践