64kb 블록 크기의 XFS에서 파일 가져 오기


9

RAID 1에서 사용되었던 완벽하게 작동하고 손상되지 않고 암호화되지 않은 2 개의 NAS 드라이브 중 하나에서 파일을 복구하는 임무를 수행했습니다. NAS는 Patriot Javelin S4였습니다. )는 Promise Fasttrack 가짜 레이드 컨트롤러를 사용합니다.

이에 대한 정보는 매우 드물기 때문에 동일한 상황에있는 Google 직원에게는이 NAS에 대한 몇 가지 사실이 있습니다.

  • RAID 컨트롤러 : Promise FastTrack (FakeRaid)
  • 볼륨 시스템 : LVM2
  • 파일 시스템 : 64kb 블록 크기 (65536 바이트)의 XFS
  • Arch : 800MHz AMCC PowerPC 프로세서, 256MB RAM (Matthew의 연구 덕분)

나는 이것을 할 때 Windows 10과 MacOS 컴퓨터 만 가지고 있었고 LVM2 볼륨에 XFS를 마운트 할 수있는 소프트웨어를 찾지 못했습니다 (1 예외, 아래에 더 자세히 설명되어 있음). 나는 오래된 넷북 Acer Aspire One을 꺼내서 강아지 리눅스를 설치해야했다 (특히 lxpup 맛).

강아지 리눅스에서 나는라는 도구를 사용 하여이 파일 시스템을 마운트했습니다 dmraid. 이 도구에는 Promise FastTrack의 ID 인 pdc 볼륨을 마운트하는 방법이 있습니다. 일단 마운트 후프를 뛰어 넘었을 때 실제 XFS 파일 시스템에 액세스 할 수 있었고 실망했을 때 64kb 블록 크기로 나타났습니다.

여기에서 "read xfs 64kb block size"와 같은 검색을 시작하고 아무데도 가지 않기 시작했습니다. "커널을 패치하지 않으면 리눅스가 4kb보다 큰 블록 크기를 읽을 수 없습니다"라는 몇 가지 답변 만 있습니다. 나는 커널을 패치하는 방법을 모른다. 그리고 이것을 허용하는 어떤 종류의 에뮬레이션도 없다고 당황했다.

Win / Mac에서이 파티션을 읽을 수없는 앱 중 하나의 예외를 언급했습니다. 그 예외는 ufsexplorer였습니다. 100 달러짜리 앱으로 파일을 완벽하게 보여줄 수있었습니다. 나는 그것이 효과가 있음을 증명하는 몇 가지 파일을 복사했지만 평가판은 작은 파일 만 복사 할 수 있습니다.

64kb xfs를 읽는 데 도움이되지 않는 복잡한 수준의 무료 오픈 소스 도구가 없다고 생각하지 않습니다.

내 질문은 : 아무도 그런 도구를 알고 있습니까? 하나 이상의 도구 또는 커널 패치 또는 기타 (무료)를 사용하여 데이터를 얻는 방법에 대한 구체적인 지침은 대단히 높이 평가됩니다.

한 가지 더 요점 :이 드라이브의 로컬 이미지를 만들지 않는 것이 좋습니다 (유일한 방법이 아닌 한). 결국 2TB의 데이터이므로이 공간이 부족할 수 있습니다.

추신 : 알려진 리눅스가 있다면 64kb xfs를 읽을 수있는 Acer에 설치할 수 있습니다.

업데이트 1 : 방금 https://www.cgsecurity.org/wiki/TestDisk 에 대해 배웠습니다 . 기회가 될 수도 있습니다. 내가 시도 할 시간이되면 다시보고합니다.

업데이트 2 : TestDisk가 XFS 파티션의 존재를 인식하는 것 같지만 거기에서 어떻게 진행하는지 잘 모르겠습니다. 파일을 추출하는 방법이 보이지 않으므로 지금은 파일을 버리고 Matthew의 답변에서 qemu 접근법을 시도해보십시오.


나는 두 가지 해결책을보고, 자신 만의 커스텀 커널을 만들거나 xfs 파티션으로 이미지를 만들고, fs-driver.org에
Alexander Tolkachev

@AlexanderT 안녕하세요, 답변 주셔서 감사합니다. 커스텀 커널에 대한 링크가 있습니까? 또한 파일 시스템을 즉시 변환하면서 드라이브를 내 Mac 드라이브로 복제하는 방법이 있습니까? 그리고 명확하게 : SATA-> USB 변환기를 통해 NAS 드라이브를 연결 했으므로 이미지를 만들지 않고 Windows 또는 Mac에 직접 연결할 수 있습니다.
Max Chernyak

xfsdump가 도움이되는지보십시오.
Martian

> 64kb 블록 크기로 밝혀졌습니다. 이 결론에 어떻게 도달했는지 자세히 설명하십시오.
poige

1
내가 참조. 글쎄, 내가 당신의 신발에 가려고하는 것은 해당 메일 목록에 쓰는 것입니다 : xfs.org/index.php/XFS_email_list_and_archives
poige

답변:


8

귀하의 문제에 대해 약간의 연구를 수행했습니다. 쉽지는 않지만 실현 가능해 보입니다.

코드를 깨는 영역은 다음과 같습니다 (새로운 커널에서). 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 블록 크기는 시스템 페이지 크기와 같아야합니다.

이것은 두 가지를 의미합니다.

  1. 이것은 이전에 알려지지 않은 버그의 해결 방법입니다.
  2. 시스템 페이지 크기는 원래 64k입니다.

나는 정말로 오래된 커널 (EL4)을 ​​확인했고 위의 제한은 여전히있었습니다. 이것은 기본적으로 아키텍처 (x86)에서 수행하려는 작업을 수행 할 수 없다는 것을 의미합니다.

NAS의 이름을 제공하면 인터넷 검색을 수행하여 다음을 발견했습니다. http://www.techwarelabs.com/patriot-javelin-s4-network-attached-storage/2/

PPC CPU를 사용한다는 의미입니다.

Javelin의 하드웨어는 추가 역할을 처리 할 수 ​​있습니다. 기본적으로 800MHz AMCC PowerPC 프로세서와 256MB의 RAM이있는 임베디드 Linux 시스템입니다.

실제로 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를 수행하여 드라이브에 액세스하십시오.


나는 qemu 접근을 조사 할 시간이 되 자마자 다시보고 할 것이다. 매우 희망적으로 보입니다.이 매튜에 넣은 시간을 주셔서 감사합니다.
Max Chernyak

현재 나는 실행하려고 노력하고 있습니다 virt-builder fedora-25 --arch ppc64le -o fedora-25-ppc64le.img. 저는 강아지 리눅스를 사용하고 있으며 "슈퍼 민 :이 시스템이나 배포판에서 사용하는 패키지 관리자를 감지 할 수 없습니다."라는 메시지가 나타납니다.
Max Chernyak

페도라 배포판을 사용하십시오.
Matthew Ife

아직이 시도를 끝낼 기회가 없었지만 현상금을줍니다. 나는 그것을 향해 노력하면서 여전히 후속 조치를 취할 수 있기를 바랍니다.
Max Chernyak

@hakunin 필자는 이번 주 초에 제안한 것처럼 ppc64le 아키텍처에서 64kb xfs 파일 시스템을 포맷하고 마운트 할 수 있었으므로 이것이 작동한다는 것을 알고 있습니다.
Matthew Ife
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.