加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

lvm – 使用64kb块大小从XFS中获取文件

发布时间:2020-12-13 18:03:20 所属栏目:Linux 来源:网络整理
导读:我一直在执行一项任务,从我的2个完美工作,未损坏,未加密的NAS驱动器中恢复文件,这些驱动器曾经是RAID 1. NAS是Patriot Javelin S4,(我从我的研究中发现) )使用Promise Fasttrack假raid控制器. 这方面的信息非常稀缺,所以对于同样情况的谷歌来说,这里有一些关
我一直在执行一项任务,从我的2个完美工作,未损坏,未加密的NAS驱动器中恢复文件,这些驱动器曾经是RAID 1. NAS是Patriot Javelin S4,(我从我的研究中发现) )使用Promise Fasttrack假raid控制器.

这方面的信息非常稀缺,所以对于同样情况的谷歌来说,这里有一些关于这个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以访问驱动器.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读