我一直在从我的2个完美工作,没有损坏,未encryption的NAS驱动器之一恢复文件的任务,曾经是在RAID 1。NAS是爱国者标枪S4,(我从我的研究中发现)使用Promise Fasttrack假冒RAID控制器。
这方面的信息非常稀缺,所以对于同样情况下的谷歌来说,这里是关于这个NAS的一些事实:
我这样做的时候只有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等于系统页面大小。
这意味着两件事。
我去检查一个真正的老内核(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来访问驱动器。