打开ZFS池以进行写入操作。

3

我使用QEMU模拟器成功地将FreeBSD安装到了一个原始映像文件中。 我使用ZFS文件系统(ZFS POOL)对映像文件进行了格式化。

使用下面的命令,我已经成功地挂载了映像文件,准备好被zpool打开。

sudo losetup /dev/loop0 [path-to-file].img
sudo kpartx -l /dev/loop0
sudo kpartx -av /dev/loop0

然而,通过下面的命令显示...
sudo zpool import -R [MOUNT-PATH] -d /dev/mapper

我收到了以下错误信息。
The pool can only be accessed in read-only mode on this system. It
    cannot be accessed in read-write mode because it uses the following
    feature(s) not supported on this system:
    com.delphix:spacemap_v2 (Space maps representing large segments are more efficient.)
The pool cannot be imported in read-write mode. Import the pool with
    "-o readonly=on", access the pool on a system that supports the
    required feature(s), or recreate the pool from backup.

我在网上找不到关于“spacemap_v2”功能的任何信息。我该如何安装它或如何挂载我的ZFS池以使其可写。我知道可以将其作为只读来挂载,但这违背了我想要做的事情的目的,因为我想能够在可挂载的平台界面中复制/粘贴数据。请问是否有人知道如何实现这一点。谢谢回复。
此致敬礼
1个回答

2
你正在使用哪个版本的FreeBSD?这个ZFS池来自哪里?
我猜测这是一个ZFS On Linux池,正如消息所说,它使用了FreeBSD的ZFS目前不支持的功能。
目前唯一的解决方法是在支持该功能的系统上创建另一个没有该功能的池,将其发送到新池中,然后将该池导入FreeBSD。
请注意,FreeBSD即将支持此功能。

嗨Steve,我已经使用了以下FreeBSD iso文件作为QEMU使用的cdrom文件..... FreeBSD-12.0-RELEASE-i386-dvd1.iso - greenelephant
我使用了FreeBSD设置中的格式化工具,将镜像文件格式化为ZFS。 - greenelephant
我想提出的另一个观点是,我使用了zfs-dkms来构建ZFS模块,以尝试访问镜像文件,而不是zfs-fuse。(我尝试过使用编译的zfs-fuse模块,但是我收到了一个错误消息,指出zpool无法导入,因为我需要将系统更新到较新的类型。)希望这些额外的信息对您有价值。期待能够得到任何帮助 :) - greenelephant
我认为你没有回答我的问题,即ZFS池的来源在哪里。而且我不知道zfs-dkms是什么,这可能是针对Linux上的ZFS特定命令。 - Steve Wills
ZFS池是在freebsd安装设置期间创建的。这是使用QEMU作为模拟器,在QEMU内部运行iso文件“FreeBSD-12.0-RELEASE-i386-dvd1.iso”作为cdrom完成的。这意味着(使用Freebsd iso文件)将freebsd安装到由qemu-img创建的RAW映像文件中。正是在由qemu-img创建的此RAW映像文件上,ZFS池才存在。希望我已经更清楚地说明了我的情况。如果您仍然能够帮助我,那就太好了 :) - greenelephant
显示剩余3条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接