首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是否可以动态地挂载gzip压缩的dd映像?

是否可以动态地挂载gzip压缩的dd映像?
EN

Unix & Linux用户
提问于 2012-02-14 17:38:43
回答 3查看 100.2K关注 0票数 91

我喜欢在第一次备份系统时创建图像备份。之后,我第一次使用rsync进行增量备份。

我通常的图像备份如下:

安装并清除空空间:

dd if=/dev/zero of=temp.dd bs=1M

rm temp.dd

在压缩驱动器的同时进行压缩

dd if=/dev/hda conv=sync,noerror bs=64K | gzip -c > /mnt/sda1/hda.ddimg.gz

为了使系统恢复正常,我通常会做一个

gunzip -c /mnt/sda1/hda.img.gz | dd of=/dev/hda conv=sync,noerror bs=64K

这是非常简单的,并允许我保存‘整个驱动器’,但实际上只是节省了使用的空间。

这就是问题所在。假设我做了上面的工作,但不是在一个干净的系统上,并且没有足够快地进行rsync备份,并且有一些文件是我想要访问的。假设我没有实际解压缩映像到驱动器的存储空间,但我希望挂载映像以获取单独的文件.这个是可能的吗?

通常,不压缩dd映像,这将允许您只使用-o loop挂载映像.但这不是我的案子..。

有任何建议,以安装压缩img在飞行?

会使用AVFS‘挂载’gz文件然后挂载内部dd.img工作(我不这么认为.但需要核实)?

EN

回答 3

Unix & Linux用户

发布于 2014-05-28 08:29:53

试试archivemount

代码语言:javascript
复制
root@srv1:/backup# archivemount windows-2003-S.gz /target/
Unrecognized archive format

root@srv1:/backup# archivemount -o formatraw windows-2003-S.gz /target/
Calculating uncompressed file size. Please wait.

root@srv1:/backup# ls /target/
data

root@srv1:/backup# file /target/data
/target/data: DOS/MBR boot sector; partition 1 : ID=0x7, start-CHS (0x0,1,1), end-CHS (0x3ff,254,63), startsector 63, 58717512 sectors, extended partition table (last)

archivemount是一个面向Unix变体(包括Linux )的基于熔断器的文件系统。其目的是挂载档案(如tar、tar.gz等)到一个挂载点,在那里它可以像任何其他文件系统一样被读取或写入。这使得访问存档的内容(可能是压缩的)对其他程序是透明的,而无需解压缩它们。

http://linuxaria.com/howto/how-to-mounts-an-archive-for-access-as-a-file-system

挂载存档后,您可以像普通文件一样使用它的内容。可以使用qemu工具获取分区表或转换挂载映像。

squashfs用于从映像引导,但对于备份非常复杂。

票数 34
EN

Unix & Linux用户

发布于 2012-02-14 22:39:02

不怎么有意思。如果不首先解压整个文件,就不能真正地寻找压缩文件中的特定块,这使得将压缩图像用作块设备很困难。

您可以使用类似dumprestore (或tar,实际上)的东西,所有这些都使用流format...so,您可以通过对未压缩的流进行有效扫描来访问个人文件。这意味着如果您想要的文件位于压缩存档的末尾,您可能有很长的时间等待,但它并不要求您将所有内容实际解压缩到磁盘上。

使用tar进行备份似乎有点过时,但您可以获得大量的可伸缩性。

票数 11
EN

Unix & Linux用户

发布于 2017-11-20 17:26:40

克里斯蒂安·丘比特( Cristian Ciupitu的答复)的另一份增编:

如果使用nbdkit挂载完整的磁盘映像(相对于分区映像),则在连接到NBD服务器时可能需要指定块大小(磁盘扇区大小),因为它默认为1024字节。要使用512字节,请改为:

代码语言:javascript
复制
nbd-client 127.0.0.1 /dev/nbd0 -b 512 -n

之后,磁盘将以/dev/nbd0的形式出现,您应该能够使用fdisk -l查看分区表。但是,分区还不能挂载--使用kpartx (来自65536‘S回答)为分区创建设备,例如:

代码语言:javascript
复制
kpartx -arv /dev/nbd0

最后,分区将出现在/dev/mapper/中,您可以像往常一样挂载它们。确保使用只读模式(-o ro),因为xz插件只支持读取:

代码语言:javascript
复制
mount -o ro /dev/mapper/nbd0p3 /mnt
票数 3
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/31669

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档