使用 dd 备份

使用 dd 备份

我按照说明进行操作这个帖子,使用命令

dd if=/dev/sda1 | gzip > disk.img.gz

但映像似乎没有停止。是不是因为 disk.img 被(默认)放在我的主文件夹中,而该文件夹与我正在映像的 /dev/sda1 分区相同?(/dev/sda1 的大小为 24GB,但 img 文件为 32GB 并且还在增加)

 Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048   484491263   242244608   83  Linux
/dev/sda2       484493310   488396799     1951745    5  Extended
/dev/sda5       484493312   488396799     1951744   82  Linux swap / Solaris

如果是这样,考虑到我的分区方案,解决方案是将其cd放到外部硬盘上然后使用上述命令?

编辑:添加了输出lsblk

 NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
 sda      8:0    0 232.9G  0 disk 
 ├─sda1   8:1    0   231G  0 part /
 ├─sda2   8:2    0     1K  0 part 
 └─sda5   8:5    0   1.9G  0 part [SWAP]

答案1

Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048   484491263   242244608   83  Linux

1 个块为 512 字节。242244608 个块为 115.5 GiB,而不是您提到的 24 个。该dd命令(您称之为“映像”)不断将数据写入您正在克隆的同一分区。这确实不是导致任何循环,但它可能会产生损坏的文件系统映像(disk.img.gz)。

应该做的是:

  1. 重新启动到 Live CD。
  2. 确保您的源分区未被挂载。
  3. 安装不同的目标分区(例如您的外部硬盘)。
  4. 用于dd将图像写入第二个分区。

更好的是,如果您不需要拥有相同的文件系统副本,只需使用它rsync来复制文件和元数据(权限)。为此,您需要备份目标具有相同的文件系统类型(ext4),以便保留权限和 ACL。请参阅https://wiki.archlinux.org/index.php/Full_System_Backup_with_rsync有关使用的详细信息rsync

答案2

是的,你是对的,通过对备份写入的磁盘进行备份,你正在创建一个无限循环!

你需要做的是将映像写入其他设备;连接外部 USB 或 SATA 硬盘,安装它,然后运行dd if=/dev/sda1 | gzip > /<mountpoint>/disk.img.gz

您也可以使用dd、gzip 和 ssh将磁盘转储到 LAN 上的机器上。

相关内容