64kb blok boyutuyla XFS'den dosya alma


9

RAID 1'de olan 2 mükemmel çalışan, bozulmamış, şifrelenmemiş NAS sürücümden birinden dosyaları kurtarmak için bir görevde bulundum. NAS, Patriot Javelin S4 idi (araştırmadan bulduğum gibi ) Promise Fasttrack sahte raid denetleyicisini kullanır.

Bu konuda bilgi çok az, bu yüzden aynı durumdaki googlerslar için bu NAS hakkında bazı gerçekler:

  • RAID denetleyicisi: Promise FastTrack (FakeRaid)
  • Ses sistemi: LVM2
  • Dosya sistemi: 64kb blok boyutuna sahip XFS (65536 bayt)
  • Arch: 800MHz AMCC PowerPC işlemci, 256MB RAM (Matthew'in araştırması sayesinde)

Bunu yaparken sadece Windows 10 ve MacOS bilgisayarım vardı ve XFS'yi LVM2 birimine monte edebilen bir yazılım bulamadım (1 istisna dışında, aşağıda daha fazla). Eski netbook Acer Aspire One'ı çıkarmak ve üzerine köpek yavrusu linux (özellikle lxpup lezzeti) kurmak zorunda kaldım.

Köpek yavrusu linux üzerinde bu dosya sistemini adlı bir araç kullanarak monte etmeyi başardım dmraid. Bu araç, Promise FastTrack için kimliği olan bir pdc birimini monte etmenin bir yoluna sahiptir. Birleştirerek bazı çemberleri atlamayı başardığımda, gerçek XFS dosya sistemine erişim kazandım ve dehşetime, 64kb blok boyutu olduğu ortaya çıktı.

Burası "xfs 64kb blok boyutunu oku" ve hiçbir yere gitmeme gibi şeyleri googlinge başladığım yer. "Çekirdek, siz çekirdeği düzeltmedikçe 4kb'den daha büyük blok boyutlarını okuyamaz" diyen birkaç cevaptır. Çekirdeği nasıl ekleyeceğime dair hiçbir fikrim yok ve buna izin verecek herhangi bir öykünme olmadığı konusunda şaşırdım.

Win / Mac'te bu bölümü okuyamayan uygulamalar arasında 1 istisnadan bahsettim. Bu istisna ufsexplorer idi. 100 dolarlık bir uygulama, dosyaları sorunsuz bir şekilde gösterebildi. Çalıştığını kanıtlayan birkaç dosyayı kopyaladım, ancak deneme sürümü yalnızca küçük dosyaların kopyalanmasına izin veriyor.

64kb xfs okumama yardımcı olabilecek herhangi bir karmaşıklık düzeyi için ücretsiz bir açık kaynak aracı olmadığına inanmayı reddediyorum.

Sorum şu: böyle bir araç bilen var mı? Bir veya daha fazla araç veya çekirdek düzeltme eki veya başka bir şey (ücretsiz) kullanarak verilerin nasıl alınacağına ilişkin özel talimatlar büyük beğeni topluyor.

Bir nokta daha: Bu sürücülerin yerel görüntülerini oluşturmak zorunda kalmamayı tercih ederim (tek yol olmadığı sürece). Sonuçta, 2 TB veri, bu kadar yerim olmayabilir.

PS 64kb xfs okuyabilen Acer'ım üzerine yükleyebileceğim bilinen bir linux varsa, bu da geçerli bir çözüm.

Güncelleme 1 : https://www.cgsecurity.org/wiki/TestDisk hakkında yeni bilgi edindim . Denemeye değebilir. Bunu denemek için zamanım olduğunda geri rapor.

Güncelleştirme 2 : TestDisk, XFS bölümünün varlığını tanıyor gibi görünüyor, ancak orada nasıl devam edeceğinden emin değilim. Bir dosyayı ayıklamanın bir yolunu göremiyorum, bu yüzden şimdilik şimdilik vazgeçtim ve Matthew'in cevabındaki qemu yaklaşımını denedim.


İki çözüm görüyorum, kendi özel çekirdeğinizi oluşturuyorum veya xfs bölümünüzle bir görüntü oluşturuyorum ve fs-driver.org
Alexander

@AlexanderT Merhaba, yanıt verdiğiniz için teşekkürler. Özel çekirdek hakkında herhangi bir bağlantı var mı? Ayrıca, dosya sistemini anında dönüştürürken diski mac'umun sürücüsüne kopyalamanın bir yolu var mı? Ve net olmak gerekirse: NAS sürücüsünü SATA -> USB dönüştürücü ile bağladım, böylece görüntü yapmadan doğrudan pencerelere veya mac'e bağlayabilirim.
Max Chernyak

Deneyin ve xfsdump yardım edip etmediğini görün.
Mars

> 64kb blok boyutu olduğu ortaya çıktı. Bu sonuca nasıl geldiğinize dikkat edin, lütfen
poige

1
Anlıyorum. Ayakkabılarında olmak için gideceğim şey, karşılık gelen posta listesine yazmak: xfs.org/index.php/XFS_email_list_and_archives
poige

Yanıtlar:


8

Sorununuzla ilgili biraz araştırma yaptım. Kolay değil ama uygulanabilir görünüyor.

Kod kırma alanı budur (yeni çekirdeklerde): 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         }

Temel olarak XFS blok boyutunun en azından sistem sayfa boyutuna eşit olmasını gerektirir.

Bu iki anlama geliyor.

  1. Bu, daha önce bilinmeyen bir hatanın çözümüdür.
  2. Sistemin sayfa boyutu başlangıçta 64 bin idi.

Gittim ve gerçekten eski bir çekirdeği (EL4) kontrol ettim ve yukarıdaki kısıtlama hala oradaydı. Bu, mimarinizde yapmak istediklerinizi yapmanın temelde mümkün olmadığı anlamına gelir (x86).

NAS adını verdiğinizde, biraz googling yaptım ve bunu keşfettim: http://www.techwarelabs.com/patriot-javelin-s4-network-attached-storage/2/

Bu da bir PPC CPU kullandığını gösterir.

Ciritin donanımı ek rolleri üstlenebilecek kapasiteden daha fazladır. Aslında 800 MHz AMCC PowerPC işlemci ve 256 MB RAM içeren gömülü bir Linux sistemidir.

Gerçekten de, PowerPC çekirdeklerinde 64 bin sayfa veya 4k sayfa kullanmak üzere oluşturulabilir. Bu, bloğun neden 64k olduğunu ve neden daha önce kendi NAS'da çalıştığı makinenizde dosya sistemini çalıştıramayacağınızı açıklar.

Dosya sistemini açmayı denemek istiyorsanız - Bence en iyi seçeneğiniz PPC64LE kullanarak bir sanal makine örneğini bir sanal makine örneğinde çalıştırmaktır (bence bu CPU'nun gerçek mimarisi budur), Fedora PPC64LE'larını 64k sayfa ile derler.

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

Bunu yapmak için qemu kullanabilirsiniz. Bu adam bunu nasıl yapacağınıza dair bazı (test edilmemiş) talimatlar veriyor gibi görünüyor.

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

Oradan, doğrudan VM'deki disk (ler) i ortaya çıkarın ve sürücüye erişmek için normal dmraid / lvm / mount'unuzu yapın.


Qemu yaklaşımına bakacak zamanım olduğunda geri rapor vereceğim. Çok umutlu görünüyor, bu Matta'ya girdiğiniz zamanı takdir edin.
Max Chernyak

Şu anda kaçmaya çalışıyorum virt-builder fedora-25 --arch ppc64le -o fedora-25-ppc64le.img. Ben köpek yavrusu linux ve alıyorum "supermin: bu sistem veya dağıtım tarafından kullanılan paket yöneticisi tespit edemedi."
Max Chernyak

Bunu yapmak için bir fedora distro kullanın.
Matthew Ife

Henüz bu denemeyi bitirme şansım olmadı, ama sana lütuf veriyorum. İnşallah hala çalıştığım gibi takip edebilirim.
Max Chernyak

@hakunin Bir ppc64le mimarisinde 64kb xfs dosya sistemini hem biçimlendirip hem de bağlayabildim.
Matthew Ife
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.