使用rsync备份信息以生成可安装的映像?

使用rsync备份信息以生成可安装的映像?

寻找一些程序来创建信息图像文件(.img)以便稍后能够安装它,我没有找到任何简单的东西。对于 Clonezilla,它需要额外的空间来解压缩图像然后组装它们。如果我需要访问图像文件并且大小已经超出了我的磁盘存储空间?

然后我想出了以下想法,用这些信息创建一个可安装的 .img,也许可以通过一些额外的命令或实用程序来改进它:可能我可以创建一个空的 .img 图像,使用 fsck 对其进行格式化,然后我'我不确定这是否是一个好主意,但我可以使用 rsync 将所有当前数据同步到 .img 图像(之前安装的)。您觉得这个解决方案怎么样?我相信其他人也会喜欢它,因为我看到他们后来想要安装他们的图像。

我应该如何使用 rsync 来做到这一点?

答案1

我不知道有什么软件能够实现这一点,但你可以使用循环设备来做到这一点。

# Create an image file (100 M in the example, change the count to 1000 for 1G, etc)
dd if=/dev/urandom of=/path/to/image.img bs=1M count=100
# Now we use it as a loop device
sudo losetup /dev/loop0 /path/to/image.img
# Format it using the filesystem of your choice (I'm using ext4 here for the example).
mkfs.ext4 /dev/loop0

# Mount that new filesystem.
mkdir /mnt/loop && mount /dev/loop0 /mnt/loop

# Now we can transfer things to the image using rsync (for example /var/log content)
rsync -avz /var/log/ /mnt/loop/

# Unmount the filesystem and remove the loop device.
umount /mnt/loop
losetup -D /dev/loop0

您现在可以移动 image.img 并在其他地方使用它(或者您可以将其存储在某些远程设备上,就像存储常规文件一样)。

例如,为了在其他计算机上使用它:

# Copy image.img using the tool you want (scp, etc...)
# Mount the image
mount -o loop /path/to/image.img /mnt/loop
# Alter content of the image
# Safely unmount the filesystem
umount /mnt/loop

相关内容