以64kb块大小从XFS获取文件

我一直在从我的2个完美工作,没有损坏,未encryption的NAS驱动器之一恢复文件的任务,曾经是在RAID 1。NAS是爱国者标枪S4,(我从我的研究中发现)使用Promise Fasttrack假冒RAID控制器。

这方面的信息非常稀缺,所以对于同样情况下的谷歌来说,这里是关于这个NAS的一些事实:

  • RAID控制器:Promise FastTrack(FakeRaid)
  • 卷系统:LVM2
  • 文件系统:64kb块大小的XFS(65536字节)
  • Arch:800MHz AMCC PowerPC处理器,256MB RAM(感谢Matthew的研究)

我这样做的时候只有Windows 10和MacOS电脑,而且我发现没有能够在LVM2卷中安装XFS的软件(有一个例外,下面更多)。 我不得不拿出我的旧上网本macros碁Aspire One,并安装小狗Linux(特别是lxpup味道)。

在小狗Linux上,我设法使用一个名为dmraid的工具来挂载这个文件系统。 这个工具有一个安装pdc卷的方法,这是Promise FastTrack的id。 一旦我设法跳过了一些安装它的箍,我获得了对实际的XFS文件系统的访问,令我沮丧的是,它变成了64kb的块大小。

这就是我开始在Google上search“读取xfs 64kb块大小”并且无处可去的地方。 只有几个答案说:“除非你修补内核,否则linux不能读取大于4kb的块大小。 我不知道如何修补内核,我很困惑,没有任何一种模拟允许这样做。

我在Win / Mac上提到了无法读取此分区的应用程序中的一个exception。 这个例外是ufsexplorer。 这是一个100美元的应用程序,它能够无缝地显示我的文件。 我复制了几个文件certificate它的工作原理,但试用版只允许复制微小的文件。

我拒绝相信没有一个免费的开源工具可以帮助我读64kb的xfs。

我的问题是:有人知道任何这样的工具? 有关如何使用一个或多个工具或内核修补程序或其他(免费)获取数据的任何具体说明,我们将不胜感激。

还有一点:我非常喜欢不必创build这些驱动器的本地映像(除非这是唯一的方法)。 毕竟这是2TB的数据,我可能没有这么多的空间。

PS如果有一个已知的Linux我可以安装在我的macros碁可以读取64kb xfs,这也是一个可行的解决scheme。

更新1 :我刚刚了解到https://www.cgsecurity.org/wiki/TestDisk 。 可能值得一试。 一旦我有时间来尝试,会报告回来。

更新2 :TestDisk似乎认识到XFS分区的存在,但我不知道如何进行forms。 我没有办法提取一个文件,所以我现在就放弃了,在马修的回答中尝试使用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块大小至less等于系统页面大小。

这意味着两件事。

  1. 这是一个以前不知道的bug的解决方法。
  2. 系统页面大小原来是64k。

我去检查一个真正的老内核(EL4),上面的限制仍然存在。 这意味着从根本上不可能做你想在你的架构(x86)上做什么。

鉴于你提供了NAS的名称,我做了一些Googlesearch,并发现这一点: http : //www.techwarelabs.com/patriot-javelin-s4-network-attached-storage/2/

这意味着它使用PPC CPU。

标枪的硬件不仅能够处理额外的angular色。 它本质上是一个embedded式Linux系统,具有800 MHz的AMCC PowerPC处理器和256 MB的RAM。

事实上,PowerPC内核可以构build为使用64k页面或4k页面。 这可以解释为什么这个块是64k的,也是为什么你不能在你的机器上运行文件系统,以前它在自己的NAS上工作。

如果你想尝试打开文件系统 – 我认为你最好的select是在一个使用PPC64LE的虚拟机pipe理程序中运行一个虚拟机实例(我认为这就是那个CPU的实际架构),Fedora用64k页build立他们的PPC64LE。

https://alt.fedoraproject.org/alt/

你可以使用qemu来做到这一点。 这家伙似乎给了一些(未经testing)的指示,你将如何去做这件事。

https://rwmj.wordpress.com/tag/ppc64le/

从那里,直接将磁盘暴露在虚拟机中,并执行正常的dmraid / lvm / mount来访问驱动器。