我通常使用实时 USB 来使用 dd 备份分区(通常是 sda2)。我可以在实际系统中执行此操作吗?
我是 Linux 新手,但无法挂载分区(我正在备份的分区挂载在根目录上)
sudo dd bs=64K if=/dev/sda2 | gzip > /mnt/backup/backup_sda2_020420_1.img.gz
非常感谢
答案1
您可以dd
在已安装的分区上使用,但这对于备份来说不是一个好主意,如果它安装在文件系统的根目录下,那就更不建议了。据我所知:
dd
是一个低级工具,它将逐字节复制整个分区,包括所有没有文件的“空”空间,这些空间实际上可能包含随机或旧数据(在硬盘中)。例如,dd
240 GB 分区的映像大小将是 240 GB,即使该分区有 200 GB 的可用空间。您可能会获得一些压缩,gzip
但效果可能不够好。- 如果在已挂载分区上运行时使用文件系统
dd
,则映像可能会因一些损坏的文件而处于不一致状态。
对于备份,最好使用rsync
或其他文件复制或文件同步工具。
答案2
是的,但使用实时会话的整个想法是防止在您执行磁盘转储时有人或某物写入分区。如果有更改,则结果可能是磁盘转储不完全相同。还要注意,根系统的磁盘转储也会转储虚拟文件系统。您通常不想 dd 这些。
rsync
可能是更好的选择:rsync
第一次复制所有文件,但第二次只复制差异部分。在其他系统上,你只需要提取差异部分。
如果在 gzip 之前添加pv |
(pv
= 管道查看器),您将看到 dd 命令的进度(sudo apt install pv
)。