Lấy tệp ra khỏi XFS với kích thước khối 64kb


9

Tôi đã thực hiện nhiệm vụ khôi phục các tệp từ một trong 2 ổ đĩa NAS không mã hóa, không bị hỏng, không mã hóa của tôi đã từng có trong RAID 1. NAS là Patriot Javelin S4, mà tôi đã tìm thấy từ nghiên cứu của mình ) sử dụng bộ điều khiển đột kích giả Promise Fasttrack.

Thông tin rất khan hiếm về điều này, vì vậy đối với những người làm việc trong tình huống tương tự, đây là một số sự thật về NAS này:

  • Bộ điều khiển RAID: Promise FastTrack (FakeRaid)
  • Hệ thống âm lượng: LVM2
  • Hệ thống tập tin: XFS với kích thước khối 64kb (65536 byte)
  • Arch: Bộ xử lý AMCC PowerPC 800 MHz, RAM 256 MB (nhờ nghiên cứu của Matthew)

Tôi chỉ có máy tính Windows 10 và MacOS khi thực hiện việc này và tôi không tìm thấy phần mềm nào có khả năng gắn XFS trong âm lượng LVM2 (với 1 ngoại lệ, nhiều hơn về điều này bên dưới). Tôi đã phải lấy ra chiếc Acer Acer Aspire One cũ của mình và cài đặt linux linux trên nó (cụ thể là hương vị lxpup).

Trên puppy linux tôi đã quản lý để gắn kết hệ thống tập tin này bằng cách sử dụng một công cụ được gọi là dmraid. Công cụ này có cách gắn khối lượng pdc, là id của Promise FastTrack. Khi tôi xoay sở để nhảy qua một số vòng quay, tôi đã có quyền truy cập vào hệ thống tập tin XFS thực tế và đến lúc mất tinh thần, hóa ra nó có kích thước khối 64kb.

Đây là nơi tôi bắt đầu googling những thứ như "đọc kích thước khối xfs 64kb" và không đi đến đâu. Chỉ có một vài câu trả lời rằng: "linux không thể đọc kích thước khối lớn hơn 4kb, trừ khi bạn vá kernel". Tôi không biết làm thế nào để vá kernel và tôi gặp khó khăn rằng không có bất kỳ loại mô phỏng nào để cho phép điều này.

Tôi đã đề cập đến 1 ngoại lệ trong số các ứng dụng không thể đọc phân vùng này trên Win / Mac. Ngoại lệ đó là ufsexplorer. Đó là một ứng dụng 100 đô la, nó có thể hiển thị liền mạch cho tôi các tập tin. Tôi đã sao chép một vài tệp chứng minh rằng nó hoạt động, nhưng phiên bản dùng thử chỉ cho phép sao chép các tệp nhỏ.

Tôi từ chối tin rằng không có một công cụ nguồn mở miễn phí nào ngoài mức độ phức tạp không thể giúp tôi đọc 64kb xfs.

Câu hỏi của tôi là: có ai biết bất kỳ công cụ như vậy? Bất kỳ hướng dẫn cụ thể nào về cách lấy dữ liệu bằng một hoặc nhiều công cụ hoặc vá nhân, hoặc một cái gì đó khác (miễn phí) đều được đánh giá cao.

Một điểm nữa: Tôi rất muốn không phải tạo hình ảnh cục bộ của các ổ đĩa này (trừ khi đó là cách duy nhất). Rốt cuộc, đó là 2TB dữ liệu, tôi có thể không có nhiều dung lượng này.

PS Nếu có một linux đã biết tôi có thể cài đặt trên Acer có thể đọc 64kb xfs, đó cũng là một giải pháp khả thi.

Cập nhật 1 : Tôi vừa tìm hiểu về https://www.cgsecurity.org/wiki/TestDisk . Có thể đáng giá một shot. Sẽ báo cáo lại khi tôi có thời gian để thử nó.

Cập nhật 2 : TestDisk dường như nhận ra sự hiện diện của phân vùng XFS, nhưng tôi không chắc cách tiến hành biểu mẫu ở đó. Tôi không thấy cách trích xuất một tập tin, vì vậy tôi đã từ bỏ nó ngay bây giờ và thử cách tiếp cận qemu trong câu trả lời của Matthew.


Tôi thấy hai giải pháp, xây dựng hạt nhân tùy chỉnh của riêng bạn hoặc tạo một hình ảnh với phân vùng xfs của bạn và cố gắng mở nó dưới cửa sổ bởi fs- ấn.org
Alexander Tolkachev

@AlexanderT Xin chào, cảm ơn bạn đã phản hồi. Bất kỳ liên kết về kernel tùy chỉnh? Ngoài ra, có lẽ có một cách để sao chép ổ đĩa vào ổ đĩa mac của tôi trong khi chuyển đổi hệ thống tập tin đang hoạt động? Và để rõ ràng: Tôi có ổ NAS được nối thông qua SATA -> bộ chuyển đổi USB, vì vậy tôi có thể cắm trực tiếp vào windows hoặc mac mà không cần tạo hình ảnh.
Max Chernyak

Hãy thử và xem nếu xfsdump giúp đỡ.
Sao Hỏa

> hóa ra là kích thước khối 64kb. Xây dựng về cách bạn đi đến kết luận này, xin vui lòng
poige

1
Tôi hiểu rồi. Chà, điều tôi muốn ở trong đôi giày của bạn là viết vào danh sách thư tương ứng: xfs.org/index.php/XFS_email_list_and_archives
poige

Câu trả lời:


8

Tôi đã thực hiện một chút nghiên cứu về vấn đề của bạn. Không dễ dàng nhưng có vẻ khả thi.

Khu vực phá vỡ mã của bạn là thế này (tốt, trong các nhân mới hơn): 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         }

Về cơ bản, nó yêu cầu kích thước khối XFS ít nhất bằng kích thước trang của hệ thống.

Điều này có nghĩa là hai điều.

  1. Đây là một cách giải quyết của một lỗi mà trước đây không biết.
  2. Kích thước trang hệ thống ban đầu là 64k.

Tôi đã đi và kiểm tra một hạt nhân thực sự cũ (EL4) và hạn chế ở trên vẫn còn đó. Điều này có nghĩa là về cơ bản không khả thi để làm những gì bạn muốn làm trên kiến ​​trúc của bạn (x86).

Cho bạn cung cấp tên của NAS, tôi đã làm một số việc và phát hiện ra điều này: http://www.techwarelabs.com/patriot-javelin-s4-network-attached-st Storage / 2 /

Điều đó ngụ ý rằng nó sử dụng CPU PPC.

Phần cứng của Javelin không chỉ có khả năng xử lý các vai trò bổ sung. Nó thực chất là một hệ thống Linux nhúng với bộ xử lý AMCC PowerPC 800 MHz và RAM 256 MB.

Thật vậy, trên các nhân PowerPC có thể được xây dựng để sử dụng các trang 64k hoặc 4k. Điều này sẽ giải thích tại sao khối là 64k và cũng là lý do tại sao bạn không thể chạy hệ thống tệp trên máy của mình, nơi nó hoạt động trên NAS của chính nó trước đó.

Nếu bạn muốn thử mở hệ thống tập tin - Tôi nghĩ tùy chọn tốt nhất của bạn là chạy một cá thể máy ảo trong một trình ảo hóa bằng PPC64LE (Tôi nghĩ đó là kiến ​​trúc thực tế của CPU đó), Fedora xây dựng PPC64LE của họ với 64k trang.

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

Bạn có thể sử dụng qemu để làm điều này. Anh chàng này dường như đưa ra một số hướng dẫn (chưa được thử nghiệm) về cách bạn sẽ thực hiện việc này.

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

Từ đó, trực tiếp hiển thị (các) đĩa trong VM và thực hiện thao tác bình thường / lvm / mount để có quyền truy cập vào ổ đĩa.


Tôi sẽ báo cáo lại ngay khi có thời gian để xem xét phương pháp tiếp cận qemu. Trông rất hy vọng, đánh giá cao thời gian bạn dành cho Matthew này.
Tối đa

Hiện tại tôi đang cố gắng chạy virt-builder fedora-25 --arch ppc64le -o fedora-25-ppc64le.img. Tôi đang sử dụng linux linux và nhận được "Supermanin: không thể phát hiện trình quản lý gói được sử dụng bởi hệ thống hoặc bản phân phối này."
Max Chernyak

Sử dụng một distro fedora để làm điều đó.
Matthew Ife

Tôi chưa có cơ hội để hoàn thành nỗ lực này, nhưng tôi sẽ cho bạn tiền thưởng. Tôi hy vọng tôi vẫn có thể theo dõi khi tôi đang làm việc với nó.
Max Chernyak

@hakunin Tôi đã có thể định dạng và gắn kết hệ thống tập tin xfs 64kb trong kiến ​​trúc ppc64le như tôi đã đề nghị bạn làm vào đầu tuần này vì vậy tôi biết điều này sẽ hoạt động.
Matthew Ife
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.