使用 dd 获取并恢复分区映像

使用 dd 获取并恢复分区映像

我在服务器 /dev/sda4 上创建了一个新分区,其文件系统基于 ext3。

我将新分区 /dev/sda4 安装在 /mnt/sda4/ 上,并使用分区 /dev/sda3 的 dd 创建了一个映像。 sda3 安装在根文件夹 (cd /) 上,因此它包含最重要的文件。

图像的创建:

dd if=/dev/sda3 of=/mnt/sda4/backup.img

然后我删除了分区 sda3 上 /var/www/html/ 上的一个文件。我尝试恢复图像并且它有效,但是我之前删除的文件没有恢复原位。

恢复:

dd if=/mnt/sda4/backup.img of=/dev/sda3

输出:

[root@h9999 sda4]# dd if=backup.img of=/dev/sda3
982128+0 records in
982128+0 records out
502849536 bytes (503 MB) copied, 1.13645 s, 442 MB/s

所以实际上它应该有效,不是吗?

答案1

这可能失败的原因有几个: /var/www/html 实际上可能是到文件系统中其他位置的符号链接(尝试ls -la /var/www/查看是否有像 之类的行html -> /foo/bar/html。如果 /dev/sda3 在您的 dd 期间安装进程,文件系统可能已损坏,因此您再也看不到该文件。

在大多数情况下,使用 dd 并不是制作磁盘备份映像的最佳方法,因为 dd 会复制包括空扇区在内的所有内容,并且只能恢复到完全相同大小的磁盘/分区。尝试部分图像相反,它将仅复制已使用的扇区。

在多数情况下,使用焦油实际上是创建 Linux 文件系统备份的最佳选择,因为这使您可以独立于原始分区中使用的文件系统和分区大小,从而使恢复过程更加灵活。如果您担心丢失引导加载程序,我上面给出的链接还解释了如何在恢复过程中使用 live CD 恢复引导加载程序,除了创建分区之外,这只是几行额外的代码。

相关内容