L

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

肉松 笔记 2022-07-17

1,dd操作就是简单的按字节复制,什么分区表啊,MBR(master boot record)啊统统照搬;

  1. 磁盘克隆

也就是把整个硬盘复制一份。当然你首先需要在计算机上在接上一块新硬盘,并让系统识别。例如这块硬盘可能被识别为/dev/sdb,原有硬盘叫/dev/sda. 然后你可以在linux命令行上简单地执行:

​​dd if=/dev/sda of=/dev/sdb​​

对就这么简单,此命令完成后,你的第二块硬盘上将有一个和第一块硬盘一模一样的副本,也是可以启动的。因为dd操作就是简单的按字节复制,什么分区表啊,MBR啊统统照搬。

当然你也可以做一些微调,来定制一下克隆操作。例如你可能希望把硬盘上的内容全部备份到一个磁盘文件中,而不是另一块新硬盘,你可以

​​dd if=/dev/sda of=~/disk1.img​​

之后,disk1.img就是备份好的磁盘映像文件,你可以复制或转移到其他介质也可以压缩一下:

​​gzip disk1.img #generates disk1.img.gz​​

或者在创建磁盘映像文件的同时就执行压缩:

​​dd if=/dev/sda | gzip > disk.img.gz
dd if=/dev/sda | bzip2 > disk.img.bz2​​

不错吧!ghost的功能都有了。

2.分区克隆

如果我们不想克隆整块磁盘,只想把某些存放数据的分区备份一下,你会需要克隆一个分区。正如预备知识所述,分区在linux下也是一个文件。例如

​​dd if=/dev/sda1 of=~/part1.img​​

将把第一块磁盘的第一个分区备份到名为part1.img的文件中。

也可以进行分区复制:

​​dd if=/dev/hda1 of=/dev/hda3​​

将把分区一原样复制到分区3.

  1. 从镜像文件恢复磁盘或分区

很简单,把上面命令中,of和if指向的文件名互换一下即可实现恢复。例如

​​dd if=disk1.img of=/dev/sda​​

把保存在disk1.img中的映像恢复到第一块磁盘

​​dd if=part1.img of=/dev/hda2​​

把保存在part1.img中的映像恢复到第一块硬盘的第二个分区

最后,需要注意一点是,无论备份还是恢复,都需要保证 of 指向的文件或磁盘空间要大于 if 指向的内容,因为是按字节复制如果没有足够的空间去存储内容,备份自然会失败。


*©著作权归作者所有:来自51CTO博客作者mb61b9f9821005c
https://blog.51cto.com/u_15460722/4861190*

PREV
docker安装的nextcloud优化上传速度
NEXT
拖延症

评论(3)

发布评论
  1. 之前有全盘搬运的需求来着,没想到还有更方便的办法

  2. dd很强大

    1. 是的,非常强大,配合NAS备份软路由的配置太方便了。