Mendapatkan file dari XFS dengan ukuran blok 64kb

9

Saya telah menjalankan misi untuk memulihkan file dari salah satu dari 2 drive NAS saya yang berfungsi dengan baik, tidak rusak, tidak dienkripsi yang dulu berada di RAID 1. NAS adalah Patriot Javelin S4, yang (seperti yang saya temukan dari penelitian saya ) menggunakan pengontrol serangan palsu Promise Fasttrack.

Informasi mengenai hal ini sangat langka, jadi bagi orang Google dalam situasi yang sama, berikut adalah beberapa fakta tentang NAS ini:

  • Pengontrol RAID: Promise FastTrack (FakeRaid)
  • Sistem volume: LVM2
  • Filesystem: XFS dengan ukuran blok 64kb (65536 bytes)
  • Arch: Prosesor AMPC PowerPC 800MHz, RAM 256MB (berkat riset Matthew)

Saya hanya memiliki komputer Windows 10 dan MacOS ketika melakukan ini, dan saya tidak menemukan perangkat lunak yang mampu memasang XFS dalam volume LVM2 (dengan 1 pengecualian, lebih lanjut tentang ini di bawah). Saya harus mengeluarkan netbook lama saya Acer Aspire One, dan menginstal puppy linux di atasnya (khusus rasa lxpup).

Di puppy linux saya berhasil me-mount sistem file ini menggunakan alat yang disebut dmraid. Alat ini memiliki cara untuk memasang volume pdc, yang merupakan id untuk Promise FastTrack. Setelah saya berhasil melompati beberapa simpai yang memasangnya, saya memperoleh akses ke sistem file XFS yang sebenarnya, dan yang membuat saya kecewa, ternyata ukuran bloknya 64 kb.

Di sinilah saya mulai googling hal-hal seperti "baca ukuran blok xfs 64kb" dan tidak mendapatkan apa-apa. Hanya beberapa jawaban yang mengatakan: "linux tidak bisa membaca ukuran blok lebih besar dari 4kb, kecuali Anda menambal kernel". Saya tidak tahu bagaimana menambal kernel, dan saya bingung bahwa tidak ada jenis emulasi yang memungkinkan ini.

Saya menyebutkan 1 pengecualian di antara aplikasi yang tidak dapat membaca partisi ini di Win / Mac. Pengecualian itu adalah ufsexplorer. Ini adalah aplikasi $ 100, ia bisa menunjukkan kepada saya file dengan mulus. Saya menyalin beberapa file yang membuktikan bahwa itu berfungsi, tetapi versi percobaan hanya memungkinkan menyalin file kecil.

Saya menolak untuk percaya bahwa tidak ada alat open source gratis di luar sana dari setiap tingkat kompleksitas yang tidak dapat membantu saya membaca xfs 64kb.

Pertanyaan saya adalah: apakah ada yang tahu alat seperti itu? Setiap instruksi khusus tentang cara mendapatkan data menggunakan satu atau lebih alat, atau patching kernel, atau yang lainnya (gratis) sangat dihargai.

Satu hal lagi: Saya lebih suka tidak harus membuat gambar lokal dari drive ini (kecuali itu satu-satunya cara). Bagaimanapun, ini adalah 2TB data, saya mungkin tidak memiliki ruang sebanyak ini.

PS Jika ada linux yang dikenal yang dapat saya instal pada Acer saya yang dapat membaca 64kb xfs, itu juga solusi yang layak.

Pembaruan 1 : Saya baru belajar tentang https://www.cgsecurity.org/wiki/TestDisk . Mungkin layak dicoba. Akan melaporkan kembali begitu saya punya waktu untuk mencobanya.

Pembaruan 2 : TestDisk tampaknya mengenali keberadaan partisi XFS, tapi saya tidak yakin bagaimana untuk melanjutkan formulir di sana. Saya tidak melihat cara untuk mengekstrak file, jadi saya hanya meninggalkannya untuk saat ini, dan mencoba pendekatan qemu dalam jawaban Matthew.

Max Chernyak
sumber
Saya melihat dua solusi, membangun kernel kustom Anda sendiri atau membuat gambar dengan partisi xfs Anda dan mencoba untuk membukanya di bawah windows oleh fs-driver.org
Alexander Tolkachev
@AlexanderT Hai, terima kasih telah merespons. Adakah tautan tentang kernel khusus? Juga, apakah mungkin ada cara untuk mengkloning drive ke drive mac saya saat mengonversi sistem file on-the-fly? Dan untuk lebih jelasnya: Saya memiliki drive NAS yang terhubung melalui SATA -> USB converter, jadi saya dapat menghubungkannya langsung ke windows atau mac tanpa membuat gambar.
Max Chernyak
Coba dan lihat apakah xfsdump membantu.
Mars
> ternyata ukuran blok 64kb. Tolong
jelaskan
1
Saya melihat. Nah, hal yang ingin saya lakukan adalah menulis ke daftar surat yang sesuai: xfs.org/index.php/XFS_email_list_and_archives
poige

Jawaban:

8

Saya telah melakukan sedikit riset tentang masalah Anda. Tidak mudah tetapi terlihat layak.

Area pemecah kode Anda adalah ini (well, dalam kernel yang lebih baru): 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         }

Ini pada dasarnya mensyaratkan bahwa ukuran blok XFS setidaknya sama dengan ukuran halaman sistem.

Ini berarti dua hal.

  1. Ini adalah solusi dari bug yang sebelumnya tidak diketahui.
  2. Ukuran halaman sistem awalnya adalah 64k.

Saya pergi dan memeriksa kernel yang benar-benar tua (EL4) dan pembatasan di atas masih ada. Ini berarti pada dasarnya tidak layak untuk melakukan apa yang ingin Anda lakukan pada arsitektur Anda (x86).

Mengingat Anda memberikan nama NAS, saya melakukan beberapa pencarian di Google dan menemukan ini: http://www.techwarelabs.com/patriot-javelin-s4-network-attached-storage/2/

Yang berarti menggunakan CPU PPC.

Perangkat keras Javelin lebih dari mampu menangani peran tambahan. Ini pada dasarnya adalah sistem Linux tertanam dengan prosesor AMCC 800 MHz AMPC dan 256 MB RAM.

Memang, pada kernel PowerPC dapat dibangun untuk menggunakan halaman 64k atau 4k. Ini akan menjelaskan mengapa blok tersebut 64k dan juga mengapa Anda tidak dapat menjalankan sistem file pada mesin Anda, di mana ia bekerja pada NAS sendiri sebelumnya.

Jika Anda ingin mencoba untuk membuka filesystem - saya pikir pilihan terbaik Anda adalah menjalankan mesin virtual dalam hypervisor menggunakan PPC64LE (saya pikir itulah arsitektur sebenarnya dari CPU itu), Fedora membangun PPC64LE mereka dengan halaman 64k.

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

Anda dapat menggunakan qemu untuk melakukan ini. Orang ini tampaknya memberikan beberapa instruksi (tidak diuji) tentang bagaimana Anda akan melakukan ini.

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

Dari sana, langsung letakkan disk di VM dan lakukan dmraid / lvm / mount normal Anda untuk mendapatkan akses ke drive.

Matthew Ife
sumber
Saya akan melaporkan kembali segera setelah saya punya waktu untuk melihat pendekatan qemu. Terlihat sangat penuh harapan, hargai waktu yang Anda masukkan ke dalam Matius ini.
Max Chernyak
Saat ini saya sedang asyik mencoba lari virt-builder fedora-25 --arch ppc64le -o fedora-25-ppc64le.img. Saya menggunakan puppy linux dan mendapatkan "supermin: tidak dapat mendeteksi paket manager yang digunakan oleh sistem atau distro ini."
Max Chernyak
Gunakan distro fedora untuk melakukannya.
Matthew Ife
Saya belum memiliki kesempatan untuk menyelesaikan upaya ini, tapi saya memberi Anda hadiah. Saya harap saya masih bisa menindaklanjuti karena saya sedang berusaha untuk itu.
Max Chernyak
@ Hakunin Saya bisa memformat dan me-mount filesystem xfs 64kb dalam arsitektur ppc64le seperti yang saya sarankan Anda lakukan awal minggu ini jadi saya tahu ini akan berhasil.
Matthew Ife