NAS-Central Blog

Lösungen für NAS Systeme

Synology NAS defekt – Datenrettung im PC erzeugt Fehler wrong fs type, bad option, bad superblock

Kann auf Daten in einem Synology NAS nicht mehr zugegriffen werden, weil beispielsweise das Synology NAS defekt ist, so besteht die Möglichkeit, Festplatten aus dem NAS auszubauen und an einem PC die Daten auszulesen..

Offizielle Anleitung zur Datenwiederherstellung von einem NAS am PC

Zur Wiederherstellung der Daten am PC stellt Synology eine offizielle Anleitung bereit:

“Wie kann ich Daten mit einem PC wiederherstellen, wenn mein Synology NAS defekt ist?”

NAS Festplatten im PC einbinden

Vereinfacht gesagt werden die md Raids neu zusammengestellt und anschließend die logischen Volumen aktiviert. Daraufhin werden die entsprechenden Geräte gemountet und die Daten sind zugreifbar. Der oben verlinkte Beitrag beschreibt das Verfahren im Detail.

				
					mdadm -AsfR 
vgchange -ay
mount ${device_path} ${mount_point} 

				
			

Auf neueren Linux Systemen funktioniert dieses Verfahren nicht

Das Verfahren ist einfach, wenn es denn funktioniert. Neuere Linux Systeme können ein mit einem Synology NAS erstelltes btrfs Volumen nicht mounten. Der Versuch, das Volumen zu mounten, läuft in folgenden Fehler:

mount: /mnt: wrong fs type, bad option, bad superblock on /dev/mapper/vg1-volume_1, missing codepage or helper program, or other error.

Dies ist eine ziemlich nichtssagende Fehlermeldung, wie an dem Zusatz “or other error” zu erkennen ist. Dieser Fehler kann viele Ursachen haben.

Ein Blick in die Meldungen des Kernel Ringpuffers liefert eine erste Spur.

				
					BTRFS info (device dm-3): has skinny extents
BTRFS critical (device dm-3): corrupt leaf: root=1 block=29360128 slot=17, invalid root flags, have 0x400000000 expect mask 0x1000000000001
BTRFS error (device dm-3): block=29360128 read time tree block corruption detected
BTRFS critical (device dm-3): corrupt leaf: root=1 block=29360128 slot=17, invalid root flags, have 0x400000000 expect mask 0x1000000000001
BTRFS error (device dm-3): block=29360128 read time tree block corruption detected
BTRFS warning (device dm-3): couldn't read tree root
BTRFS error (device dm-3): open_ctree failed

				
			

Neuere Kernel verhindern das mounten von Dateisystemen mit nicht unterstützten Flags

Diese Meldung ist irreführend, da sie auf ein korruptes Dateisystem hindeutet. Der entscheidende Teil der Meldung ist jedoch “invalid root flags“.  Die Ursache liegt in einer Änderung der Art und Weise, wie der Linux Kernel Subvolume Flags beim mounten eines btrfs Dateisytems prüft. Während ältere Kernel das mounten eines btrfs Dateisystems mit nicht unterstützten Flags zulassen, ist in den Kernel 5.4-rc1 eine Änderung eingeflossen, die dies verhindert.

				
					 btrfs: tree-checker: Add ROOT_ITEM check

This patch will introduce ROOT_ITEM check, which includes:
- Key->objectid and key->offset check
  Currently only some easy check, e.g. 0 as rootid is invalid.

- Item size check
  Root item size is fixed.

- Generation checks
  Generation, generation_v2 and last_snapshot should not be greater than
  super generation + 1

- Level and alignment check
  Level should be in [0, 7], and bytenr must be aligned to sector size.

- Flags check

committed on Sep 9. 2019, branch v5.4-rc1
				
			

Alle Synology btrfs Volumes betroffen

Hiervon sind aktuell (DSM 7.2.64570 Update 3) so ziemlich alle Synology Volumes betroffen. Von der Theorie her können diese Synology btrfs Volumes unter anderen Linux Systemen nur mit einem Kernel kleiner v5.4 gemountet werden.

Kernel Version und Distribution sind entscheidend

An dieser Stelle sind wir im Distributions Kernel Versions Dschungel angekommen. Synology empfiehlt in der oben genannten Anleitung (Letzte Aktualisierung: 13. Okt. 2023) die Verwendung von Ubuntu 18.04 (Bionic Beaver).

Ein Blick auf die Kernel Release Schedule von Ubuntu zeigt zum einen, dass diese Version seit Mai 2023 End of Life ist, außer der kostenpflichtigen PRO Version. Zum anderen trifft dieser Hinweis nur auf die LTS GA Version zu und nicht auf den Hardware Enablement Stack LTS HWE.

Um es weiter zu verkomplizieren: So weit wir das beurteilen können wurden die mit Kernel 5.4 eingeführten btrfs Änderungen unter Ubuntu 18.04 bis nach 18.04.0 LTS GA Kernel v4.15 backported.

Kernel Version < v5.4 ohne Backports erforderlich

Unter Ubuntu 15.10 mit Kernel v4.2 ändert sich der Fehler beim Versuch, ein Synology Volume zu mounten. Zunächst erscheint die gleiche Fehlermeldung:

				
					mount: wrong fs type, bad option, bad superblock on /dev/mapper/vg1-volume_1,
       missing codepage or helper program, or other error
				
			

Der Kernel Ringpuffer gibt allerdings einen anderen Fehler aus:

				
					BTRFS: has skinny extents
BTRFS: couldn't mount RDWR because of unsupported option features (3).
BTRFS: open_ctree failed
				
			

Auch der v4.2 Kernel erkennt ein Problem. Der Kernel unterbindet jedoch nur den schreibenden Zugriff auf das btrfs Dateisytem. Wird das Volumen read only gemountet erhält man vollen Zugriff.

				
					mount /dev/vg1/volume_1 /mnt -o ro
mount |grep vg1
/dev/mapper/vg1-volume_1 on /mnt type btrfs (ro,relatime,space_cache,subvolid=256,subvol=/@syno)
				
			

Das Volume kann nun ausgelesen und gesichert werden. Schreibender Zugriff kann durch ein Remount erreicht werden. Hiervon raten wir aber dringend ab, da nicht klar ist, welche Nebeneffekte die nicht bekannten und nicht unterstützen Flags hierauf haben. Bei einem Rückbau in ein Synology NAS ist ein auf diese Weise beschriebenes Volume korrupt.

				
					mount /dev/vg1/volume_1 /mnt -o remount,rw
mount |grep vg1
/dev/mapper/vg1-volume_1 on /mnt type btrfs (rw,relatime,space_cache,subvolid=256,subvol=/@syno)
				
			

Fazit

Das mounten eines mit einem Synology NAS erstellten btrfs Volumen zur Datenwiederherstellung an einem PC ist einfach, sofern man den richtigen Kernel und die richtige Distribution verwendet. Den schwierigsten Teil der Synology Datenwiederherstellung hast Du also, nachdem Du diesen Artikel gelesen hast, hinter Dir. 

Wer nicht lange rum probieren möchten nutzt einfach die von uns verwendete Ubuntu Version v15.10. Da es sich um eine sehr alte Version handelt, sollte diese Version natürlich ausschließlich für diese Aufgabe verwendet werden.

Noch ein Tip zum Schluß: Man muss keinen eigenen Linux PC für die Datenrettung aufsetzen. Die Datenträger können auch in eine virtuelle Maschine über sata oder USB eingebunden werden und die ganze Prozedur kann innerhalb der virtuellen Maschine erfolgen.

Schreiben sie uns

Kontakt

für alle Anfragen

    Kontaktinformation

    NAS Lösungen für jede Anwendung

    Bitte kontaktieren sie uns