Ich war auf der Mission, Dateien von einem meiner 2 perfekt funktionierenden, nicht beschädigten, nicht verschlüsselten NAS-Laufwerke wiederherzustellen, die sich früher in RAID 1 befanden. Das NAS war Patriot Javelin S4, wie ich aus meinen Recherchen herausgefunden habe ) verwendet Promise Fasttrack Fake Raid Controller.
Informationen hierzu sind sehr knapp, daher gibt es für Googler in der gleichen Situation einige Fakten zu diesem NAS:
- RAID-Controller: Promise FastTrack (FakeRaid)
- Volumensystem: LVM2
- Dateisystem: XFS mit einer Blockgröße von 64 KB (65536 Byte)
- Bogen: 800 MHz AMCC PowerPC-Prozessor, 256 MB RAM (dank Matthews Forschung)
Ich hatte dabei nur Windows 10- und MacOS-Computer und fand keine Software, die XFS in LVM2-Volume mounten kann (mit einer Ausnahme, mehr dazu weiter unten). Ich musste mein altes Netbook Acer Aspire One herausnehmen und Puppy Linux darauf installieren (speziell LXPup-Geschmack).
Unter Puppy Linux gelang es mir, dieses Dateisystem mit einem Tool namens zu mounten dmraid
. Dieses Tool bietet die Möglichkeit, ein PDF-Volume zu mounten. Dies ist die ID für Promise FastTrack. Nachdem ich es geschafft hatte, durch einige Rahmen zu springen, die es montierten, erhielt ich Zugriff auf das eigentliche XFS-Dateisystem, und zu meiner Bestürzung stellte sich heraus, dass es eine Blockgröße von 64 KB hatte.
Hier habe ich angefangen, Dinge wie "xfs 64kb Blockgröße lesen" zu googeln und nichts zu erreichen. Nur ein paar Antworten, die besagen: "Linux kann keine Blockgrößen lesen, die größer als 4 KB sind, es sei denn, Sie patchen den Kernel." Ich habe keine Ahnung, wie ich den Kernel patchen soll, und ich bin verblüfft, dass es keine Emulation gibt, die dies zulässt.
Ich habe eine Ausnahme unter Apps erwähnt, die diese Partition unter Win / Mac nicht lesen können. Diese Ausnahme war ufsexplorer. Es ist eine 100-Dollar-App, die mir die Dateien nahtlos zeigen konnte. Ich habe ein paar Dateien kopiert, um zu beweisen, dass es funktioniert, aber die Testversion erlaubt nur das Kopieren winziger Dateien.
Ich weigere mich zu glauben, dass es kein kostenloses Open-Source-Tool gibt, das so komplex ist, dass ich 64kb xfs nicht lesen kann.
Meine Frage ist: Kennt jemand ein solches Werkzeug? Alle spezifischen Anweisungen zum Abrufen der Daten mit einem oder mehreren Tools, Kernel-Patches oder etwas anderem (kostenlos) sind sehr willkommen.
Noch ein Punkt: Ich würde es sehr vorziehen, keine lokalen Images dieser Laufwerke erstellen zu müssen (es sei denn, dies ist der einzige Weg). Immerhin sind es 2 TB Daten, ich habe möglicherweise nicht so viel Speicherplatz.
PS Wenn es ein bekanntes Linux gibt, das ich auf meinem Acer installieren kann und das 64 KB xfs lesen kann, ist dies auch eine praktikable Lösung.
Update 1 : Ich habe gerade von https://www.cgsecurity.org/wiki/TestDisk erfahren . Könnte einen Versuch wert sein. Ich melde mich wieder, sobald ich Zeit hatte, es zu versuchen.
Update 2 : TestDisk scheint das Vorhandensein einer XFS-Partition zu erkennen, aber ich bin mir nicht sicher, wie ich dort vorgehen soll. Ich sehe keine Möglichkeit, eine Datei zu extrahieren, deshalb habe ich sie vorerst aufgegeben und den Qemu-Ansatz in Matthews Antwort ausprobiert.
Antworten:
Ich habe ein bisschen nach Ihrem Problem gesucht. Nicht einfach, sieht aber machbar aus.
Der Bereich, in dem Sie Code brechen, ist folgender (nun, in neueren Kerneln):
fs/xfs/libxfs/xfs_sb.c
Grundsätzlich muss die XFS-Blockgröße mindestens der Seitengröße des Systems entsprechen.
Dies bedeutet zwei Dinge.
Ich habe einen wirklich alten Kernel (EL4) überprüft und diese Einschränkung war immer noch vorhanden. Dies bedeutet, dass es grundsätzlich nicht möglich ist, das zu tun, was Sie auf Ihrer Architektur (x86) tun möchten.
Nachdem Sie den Namen des NAS angegeben haben, habe ich gegoogelt und Folgendes entdeckt: http://www.techwarelabs.com/patriot-javelin-s4-network-attached-storage/2/
Dies bedeutet, dass eine PPC-CPU verwendet wird.
Auf PowerPC können Kernel so erstellt werden, dass sie entweder 64.000 Seiten oder 4.000 Seiten verwenden. Dies würde erklären, warum der Block 64 KB groß ist und warum Sie das Dateisystem nicht auf Ihrem Computer ausführen können, auf dem es zuvor auf einem eigenen NAS funktioniert hat.
Wenn Sie versuchen möchten, das Dateisystem zu öffnen - Ich denke, Ihre beste Option ist es, eine Instanz einer virtuellen Maschine in einem Hypervisor mit PPC64LE auszuführen (ich denke, das ist die eigentliche Architektur dieser CPU). Fedora erstellt ihr PPC64LE mit 64.000 Seiten.
https://alt.fedoraproject.org/alt/
Sie können dazu qemu verwenden. Dieser Typ scheint einige (nicht getestete) Anweisungen zu geben, wie Sie dies tun würden.
https://rwmj.wordpress.com/tag/ppc64le/
Legen Sie von dort aus die Festplatte (n) direkt in der VM frei und führen Sie Ihre normale dmraid / lvm / mount aus, um Zugriff auf das Laufwerk zu erhalten.
quelle
virt-builder fedora-25 --arch ppc64le -o fedora-25-ppc64le.img
. Ich bin auf Puppy Linux und bekomme "Supermin: konnte den von diesem System oder der Distribution verwendeten Paketmanager nicht erkennen."