这方面的信息非常稀缺,所以对于同样情况的谷歌来说,这里有一些关于这个NAS的事实:
> RAID控制器:承诺FastTrack(FakeRaid)
>卷系统:LVM2
>文件系统:块大小为64kb的XFS(65536字节)
> Arch:800MHz AMCC PowerPC处理器,256MB RAM(感谢Matthew的研究)
这样做时我只有Windows 10和MacOS计算机,我发现没有能够在LVM2卷中安装XFS的软件(有1个例外,下面有更多内容).我不得不拿出我的旧上网本Acer Aspire One,并在其上安装puppy linux(特别是lxpup风味).
在小狗linux上,我设法使用名为dmraid的工具安装此文件系统.这个工具有一种安装pdc卷的方法,这是Promise FastTrack的id.一旦我设法跳过安装它的一些箍,我就获得了访问实际的XFS文件系统的权限,令我沮丧的是,它的块大小为64kb.
这是我开始谷歌搜索“读取xfs 64kb块大小”和无处可寻的东西.只有几个答案说:“linux不能读取大于4kb的块大小,除非你修补内核”.我不知道如何修补内核,我很困惑,没有任何类型的模拟允许这样做.
我在Win / Mac上无法读取此分区的应用程序中提到了1个异常.那个例外是ufsexplorer.这是一个100美元的应用程序,它能够无缝地显示文件.我复制了几个文件证明它有效,但试用版只允许复制微小的文件.
我拒绝相信没有任何复杂程度的免费开源工具无法帮助我读取64kb xfs.
我的问题是:有人知道任何这样的工具吗?关于如何使用一个或多个工具,内核修补或其他(免费)获取数据的任何具体说明都非常感谢.
还有一点:我非常希望不必创建这些驱动器的本地映像(除非这是唯一的方法).毕竟,这是2TB的数据,我可能没有这么大的空间.
附:如果有一个已知的Linux我可以在我的Acer上安装,可以读取64kb xfs,这也是一个可行的解决方案.
更新1:我刚刚了解了https://www.cgsecurity.org/wiki/TestDisk.可能值得一试.一旦我有时间尝试就会报告回来.
更新2:TestDisk似乎认识到XFS分区的存在,但我不确定如何从那里继续.我没有看到提取文件的方法,所以我暂时放弃它,并在Matthew的答案中尝试qemu方法.
解决方法
打破你的代码区域就是这样(好吧,在更新的内核中):
FS / XFS / libxfs / xfs_sb.c
271 /* 272 * Until this is fixed only page-sized or smaller data blocks work. 273 */ 274 if (unlikely(sbp->sb_blocksize > PAGE_SIZE)) { 275 xfs_warn(mp,276 "File system with blocksize %d bytes. " 277 "Only pagesize (%ld) or less will currently work.",278 sbp->sb_blocksize,PAGE_SIZE); 279 return -ENOSYS; 280 }
它基本上要求XFS块大小至少等于系统页面大小.
这意味着两件事.
>这是以前不了解的错误的解决方法.
>系统页面大小最初为64k.
我去检查了一个非常老的内核(EL4),上面的限制仍然存在.这意味着它根本不可能在您的体系结构(x86)上执行您想要执行的操作.
鉴于你提供了NAS的名字,我做了一些谷歌搜索并发现了这个:
http://www.techwarelabs.com/patriot-javelin-s4-network-attached-storage/2/
这意味着它使用PPC cpu.
The hardware of the Javelin is more than capable of handling
additional roles. It is essentially an embedded Linux system with a
800 MHz AMCC PowerPC processor and 256 MB of RAM.
实际上,在PowerPC上,内核可以构建为使用64k页或4k页.这可以解释为什么块是64k,以及为什么你不能在你的机器上运行文件系统,之前它在自己的NAS上工作.
如果你想尝试打开文件系统 – 我认为你最好的选择是使用PPC64LE在虚拟机管理程序中运行虚拟机实例(我认为那是cpu的实际架构),Fedora用64k页面构建他们的PPC64LE.
https://alt.fedoraproject.org/alt/
您可以使用qemu执行此操作.这家伙似乎给出了一些关于你如何做这件事的(没有经过测试的)指示.
https://rwmj.wordpress.com/tag/ppc64le/
从那里,直接暴露VM中的磁盘并执行正常的dmraid / lvm / mount以访问驱动器.