在ubuntu系统中,我们可以使用dd命令来备份整个硬盘或者分区到另一个硬盘或文件中。
一、前期工作
1、一个空的硬盘(作者在windows下使用DiskGenius格式化硬盘,如下图,同时在磁盘管理器做好分区以让电脑能识别空硬盘)、硬盘盒;
2、一块硬盘(装有Ubuntu系统,可用内存必须比需备份硬盘内存大)或者一台电脑(装有Ubuntu系统,可用内存必须比需备份硬盘内存大)。
注意:可用内存必须比需备份的硬盘内存大,但是要大多少呢?作者亲测的结果是:最终备份的文件大小一般为需备份的ubuntu系统所使用内存的一半。假设你需要备份一个256GB的ubuntu系统硬盘,该系统共使用了156GB的内存(空闲内存为100GB),则最终生成的备份文件大约为156GB的一半即80GB左右。
二、备份正式工作
1、将需要备份的硬盘拆下装入硬盘盒,若前期工作中准备了一块装有Ubuntu系统的硬盘,则将该硬盘装入原电脑中,并开机启动Ubuntu系统;若前期工作中准备了一台电脑,开机启动Ubuntu系统;
2、将装有需备份硬盘的硬盘盒插入电脑,打开终端,输入下列代码查看根分区的空间,找到需备份的硬盘名称。
df -h
输入回车,终端显示如下,找到需备份的硬盘文件名字,此处为红色框/dev/sda1,同时检查本电脑内存是否足够备份所需(绿色框),这里明显内存是不够的,作者只是做演示操作,实际备份时需准备空闲空间充足的硬盘。
注意:当然,不一定要将备份文件存入自己的电脑,可以另辟蹊径,找一个空间大的硬盘和硬盘盒,插入电脑,正式备份工作时修改一下路径即可。
3、开始备份
终端输入下列代码。
sudo dd if=/dev/sad1 conv=sync,noerror bs=4M | gzip -c > ~/backup_image.img.gz
/dev/sad1:需换成需备份的硬盘文件名字;
conv=sync,nerror:sync表示读取错误时填充0,noerror表示遇到错误时不停止继续复制;
bs=4M:每次复制4兆字节;
gzip -c > ~/backup_image.img.gz:GNU压缩工具,将备份文件输出到~/backup_image.img.gz路径下(可改成插入的大空间硬盘路径)。
4、查看备份进度
另开一个终端,输入下列代码。
sudo watch -n 5 pkill -USR1 ^dd$
该命令可每5s输出一次dd备份进度,如下图:
等待dd备份完成,最终会在~/目录下生成一个backup_image.img.gz文件,这就是备份好的文件。
三、系统恢复的方法(不仅可做系统恢复,还可配置一个同样环境的ubuntu系统)
1、ubuntu系统中系统恢复方法:
1.1、前期需准备一块空硬盘(内存大小与原备份硬盘大小要一致)、一个硬盘盒、一个带有备份文件的ubuntu系统电脑。
注意:空硬盘的内存比原备份硬盘大行吗,当然可以,但是系统刷入后会存在内存占用问题。比如:256g硬盘的备份文件刷入512g的空硬盘中,512g的内存会被全部占用,目前作者还没找到解决办法,为了避免不必要的麻烦,建议使用内存大小一致的硬盘进行操作。
1.2、打开Ubuntu系统终端,输入下列代码,以将本bash窗口权限提升至root权限。
sudo su
1.3、输入下列代码,以恢复备份系统。
gunzip -c ~/backup_image.img.gz | dd of=/dev/sda bs=4M
~/backup_image.img.gz:表示备份文件路径;
/dev/sda:表示目标硬盘设备。
1.4、查看系统刷入进度
另开一个终端,输入下列代码。
sudo watch -n 5 pkill -USR1 ^dd$
该命令可每5s输出一次dd备份进度,如下图:
备份完成后,重新打开该硬盘,如下图所示