系统备份最重要的作用实际上是数据备份,但对我来说代码都存在github上,需要备份的主要就是系统的配置,虽说有了自动化的脚本配置linux,但是一方面需要网络下载另一方面一些软件需要自己编译,都很花时间,所以寻找一种适合自己的“无脑”备份和还原的方法还是很重要的。
Linux的备份方法主要有三种
- 基于tar或者Rsync的文件级备份
- 基于dd的硬盘级备份
- 基于第三方开源工具CloneZilla的硬盘级备份
这三种方法我都实验了一下,基于方便至上的原则,最终还是选择了dd的方式备份,下面简述方法
1. 查看自己的文件系统状况
命令:sudo fdisk -l
输出如下
[用户名@计算机名 ~]$ sudo fdisk -l
[sudo] 用户名 的密码:
Disk /dev/nvme0n1:119.2 GiB,128035676160 字节,250069680 个扇区
Disk model: KBG30ZPZ128G TOSHIBA
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:gpt
磁盘标识符:35BA9E9F-D49A-4811-983D-4CE93C3B19D5
设备 起点 末尾 扇区 大小 类型
/dev/nvme0n1p1 4096 618495 614400 300M EFI 系统
/dev/nvme0n1p2 618496 250067789 249449294 119G Linux 文件系统
Disk /dev/sda:14.3 GiB,15376318464 字节,30031872 个扇区
Disk model: Ultra USB 3.0
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x00000000
设备 启动 起点 末尾 扇区 大小 Id 类型
/dev/sda1 2048 30031871 30029824 14.3G 7 HPFS/NTFS/exFAT
[用户名@计算机名 ~]$
其中/dev/nvme0n1
就是要保存的系统盘,/dev/sda1
是我插入的U盘用于保存备份
2. dd命令
基本命令格式: sudo dd if=/dev/nvme0n1 of=/run/media/用户名/LinuxBackup/Surface/surface.img.bk
注意:这个备份命令是无压缩的,也就是说你的源盘有128G那么备份出来的镜像也有128G,这样对空间是极大的浪费,因此需要使用压缩的方式进行备份
sudo dd if=/dev/nvme0n1 | gzip > /run/media/用户名/LinuxBackup/Surface/surface.img.gz
这样U盘中的surface.img.gz就是镜像文件了,系统还原的时候我们可以再从压缩文件中还原
sudo gzip -dc /run/media/用户名/LinuxBackup/Surface/surface.img.gz | dd of=/dev/nvme0n1
备份和还原的时间都比较长可以再开启一个bash窗口使用如下命令查看进度
sudo watch -n 5 pkill -USR1 ^dd$
网友评论