使用dd指令备份和恢复Linux系统(硬盘级)

害,谁不是个DD (誰でも 大好き)了呢!

但是这玩意儿太慢了。。。

起因#

使用UOS的时候经常需要备份镜像并分享给其他部门或者办事处的人。传统的方法是进入系统自带的Recovery分区,打开备份软件制作镜像,但是这存在两个问题:A. 镜像特别巨大,系统多大镜像就占多大。B. 必须先拥有系统,才能恢复镜像。最新版的系统中已经去掉了Recovery分区,而LiveCD镜像还不是很好用,于是有了这篇博客,试图寻找一个简单的方法来进行恢复和备份。

DD说明#

dd指令是一个简单的复制指令,它不管源和目标的编码、格式、数据结构,简单粗暴的把二进制数据从A复制到B。所以恢复的目标硬盘甚至不需要提前分区,因为dd会把分区信息也写入。

dd指令依然是有多少数据占多少空间,所以我们可以使用gzip进行压缩。具体代码后面贴出来。

实际使用中,发现dd指令除了方便,就没有其他优点了。它因为要读取硬盘所有数据(包括垃圾数据),即便用SSD,读盘速度还是会很慢,三刻钟才读了200GiB数据,平均75MB/s,而使用uos自带的deepin-clone,三个系统都备份完了。

DD备份#

dd if=/dev/sda of=/dev/sdb				=>    备份整个磁盘到另外一个磁盘
dd if=/dev/sdb of=sda.img				=>    备份整个磁盘为某个文件
dd if=/dev/sda | gzip > sda.img    		=>    备份并且压缩
dd if=/dev/sda bs=1M | gzip > sda.img	=>    指定块大小,备份并压缩(据说能提速)

DD复原#

dd if=/dev/sdb of=/dev/sda					=>从另一个磁盘恢复回来
gzip -dc sda.img | dd of=/dev/sda			=>从压缩的文件恢复出来
gzip -dc sda.img | dd of=/dev/sda bs=1M		=>前面指定了块大小,这里也需要

参考:#

本文参考(抄)了以下内容:

Linux 下使用 dd 和 gzip 命令来代替 Ghost 做磁盘镜像

linux dd实现磁盘完整全盘镜像备份backup,恢复recover(restore)

还有一些查找过程中作用不大的页面,就不贴出来了(诶嘿(╹ڡ╹ )

posted @   木子欢儿  阅读(1014)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
历史上的今天:
2022-04-26 【Java】复制多级文件夹
2022-04-26 【Java】复制单级文件夹
2022-04-26 Python批量重命名脚本
2020-04-26 【Python】政府工作报告词云
2020-04-26 【Python】WordCloud库的使用
2020-04-26 【Python】二维数据格式化
2020-04-26 【Python】一维数据格式化
点击右上角即可分享
微信分享提示
主题色彩