我按照说明进行操作这个帖子,使用命令
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
)。
你应该做的是:
- 重新启动到 Live CD。
- 确保您的源分区未被挂载。
- 安装不同的目标分区(例如您的外部硬盘)。
- 用于
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 上的机器上。