为网络位置创建设备映像

为网络位置创建设备映像

我有一个专用的 Ubuntu 服务器和 hetzner.de。 hetzner 还提供了一个单独的备份空间,可通过samba/ftp/sftp/scp.

在他们有关备份的支持文档中,提到了以下行。

“直接使用 rsync 是不可能的。但是,可以使用 smbfs、sshfs 或 ftpfs 本地挂载备份空间,从而允许有限地使用 rsync。要充分利用 rsync(例如使用硬链接的增量备份),映像文件必须被创建,应该通过环回安装。”

我想将 rsync 与使用硬链接的增量备份一起使用。我认为环回的意思是http://en.wikipedia.org/wiki/Loop_device。任何人都可以帮助我如何从网络位置创建图像吗?

答案1

  1. 使用您正在使用的协议安装您的网络位置:

    # smbfs example:
    mount -o username=your_hetzner_username //server.or.ip.addr/sharename /mnt/server-mountpoint
    
  2. 在该共享上的文件内创建 ext2fs 映像(或其他文件系统,如果您愿意)。仅第一次执行此操作,因为它会擦除以下数据backup-fs.image

    # create a 1000 MB file for the backup disk image (you will need to choose a size that works for you)
    dd if=/dev/zero of=/mnt/server-mountpoint/backup-fs.image bs=1048076 count=1000 
    
    # create an ext2 filesystem inside the image
    mke2fs /mnt/server-mountpoint/backup-fs.image
    
  3. 将新创建的映像挂载为环回设备。

    mount -o loop /mnt/server-mountpoint/backup-fs.image /mnt/backup-mountpoint/
    

使用完毕后,您可以umount /mnt/backup-mountpointumount /mnt/server-mountpoint,然后要稍后更新备份,请重复步骤 1 和 3。

您链接的维基百科页面是正确的主题,但实际的环回设备过程比看起来更简单。处理服务器安装更为复杂,可能需要一些实验。该网站上还有许多其他问题可用于处理上述每个步骤,以防您遇到困难。

答案2

这应该是对 mrb 答案的评论。但我不允许添加评论,因此将其添加为另一个答案。

我们可以使用以下dd命令来创建 100GB 的映像以节省一些时间。

dd if=/dev/zero of=/mnt/hetzner_backup/backup-fs.image bs=1024 count=0 seek=$[1024*1024*100]

这在不到一秒的时间内完成,而 mrb 的答案则需要很长时间。此外,vinos 似乎还存在dd命令未完成的问题。

参考:http://www.cyberciti.biz/faq/howto-create-lage-files-with-dd-command/

还值得注意的是,当使用 格式化这些图像时mke2fs,我们应该对它提出的是否要继续格式化的问题回答“是”非块特殊设备

相关内容