e2fsck für Datenvolumes durchführen

Status
Für weitere Antworten geschlossen.

hajolino

Benutzer
Mitglied seit
18. Sep 2010
Beiträge
8
Punkte für Reaktionen
0
Punkte
0
Hallo,
Ich verwende eine DS207+ mit DSM3.0 als Backupmedium (rsanapshot) und habe vermutlich Fehler im Dateisystem.

Ich habe daher den Vorschlag von itari nur für /dev/md2 umgesetzt (siehe hier):
http://www.synology-forum.de/showthread.html?2271-e2fsck-f%FCr-alle-Laufwerke

Der Test wird ausgeführt, aber ich bekomme bei beiden Durchläufen eine Fehlermeldung, dass der Superblock nicht stimmt.
Mit Sicherheit liegt das daran, dass der Artikel von itari schon etwas älter ist und heutzutage das Dateisystem nicht mehr ext2 ist, sondern ext3 oder ext4.

Wie bekomme ich das Dateisystem heraus? "fd" kenne ich nicht

fdisk liefert mir
Rich (BBCode):
Partition 2 does not end on cylinder boundary
/dev/sda3             588      243201  1948793440+ fd Linux raid autodetect

Kann ich den Test gefahrlos sowohl mit /sbin/fschk.ext3 bzw. /sbin/fschk.ext4 durchführen und fschk macht das dann schon richtig?

Gruß,
Hajolino
 

Trolli

Benutzer
Mitglied seit
12. Jul 2007
Beiträge
9.848
Punkte für Reaktionen
1
Punkte
0
Wenn Du Dir z.B. mit 'mount' die gemounteten Partitionen ansiehst, steht dort auch das Format in dem sie vorliegen.
 

itari

Benutzer
Mitglied seit
15. Mai 2008
Beiträge
21.900
Punkte für Reaktionen
14
Punkte
0
fd steht für RAID (egal ob da nun ext2/3/4 drauf ist)

die fsck's sind eigentlich alle Links:

Rich (BBCode):
Syno> ll /sbin/fsc*
lrwxrwxrwx    1 root     root             6 May  6  2011 /sbin/fsck.ext3 -> e2fsck
lrwxrwxrwx    1 root     root             6 May  6  2011 /sbin/fsck.ext4 -> e2fsck

Du kannst ja auch immer einen Probelauf machen mit der Option '-n'

Rich (BBCode):
Syno> /sbin/fsck.ext4 -?
/sbin/fsck.ext4: invalid option -- ?
Usage: /sbin/fsck.ext4 [-panyrcdfvtDFV] [-b superblock] [-B blocksize]
                [-I inode_buffer_blocks] [-P process_inode_size]
                [-l|-L bad_blocks_file] [-C fd] [-j external_journal]
                [-E extended-options] device

Emergency help:
 -p                   Automatic repair (no questions)
 -n                   Make no changes to the filesystem
 -y                   Assume "yes" to all questions
 -c                   Check for bad blocks and add them to the badblock list
 -f                   Force checking even if filesystem is marked clean
 -v                   Be verbose
 -b superblock        Use alternative superblock
 -B blocksize         Force blocksize when looking for superblock
 -j external_journal  Set location of the external journal
 -l bad_blocks_file   Add to badblocks list
 -L bad_blocks_file   Set badblocks list

Itari
 

udius

Benutzer
Mitglied seit
15. Apr 2010
Beiträge
494
Punkte für Reaktionen
0
Punkte
0
Hallo,
Ich verwende eine DS207+ mit DSM3.0 als Backupmedium (rsanapshot) und habe vermutlich Fehler im Dateisystem.

Ich habe daher den Vorschlag von itari nur für /dev/md2 umgesetzt (siehe hier):
http://www.synology-forum.de/showthread.html?2271-e2fsck-f%FCr-alle-Laufwerke

Der Test wird ausgeführt, aber ich bekomme bei beiden Durchläufen eine Fehlermeldung, dass der Superblock nicht stimmt.
Mit Sicherheit liegt das daran, dass der Artikel von itari schon etwas älter ist und heutzutage das Dateisystem nicht mehr ext2 ist, sondern ext3 oder ext4.

Wie bekomme ich das Dateisystem heraus? "fd" kenne ich nicht

fdisk liefert mir
Rich (BBCode):
Partition 2 does not end on cylinder boundary
/dev/sda3             588      243201  1948793440+ fd Linux raid autodetect

Kann ich den Test gefahrlos sowohl mit /sbin/fschk.ext3 bzw. /sbin/fschk.ext4 durchführen und fschk macht das dann schon richtig?

Gruß,
Hajolino

das problem ist, dass es zu dem zeitpunkt, da du ein e2fsck /dev/md2 durchführen willst, es das device /dev/md2 noch gar nicht gibt (das volume ist noch nicht aufgesetzt). ich hatte genau das gleiche problem (siehe meine posts in dem von dir zitierten itari-thread). dort steht auch dei lösung für das problem: im hochgefahrenen zustand alle unnötigen services stoppen (dafür gibt es auch einen thread) und dann auf der shell ein e2fsck /dev/md2
 

hajolino

Benutzer
Mitglied seit
18. Sep 2010
Beiträge
8
Punkte für Reaktionen
0
Punkte
0
Hallo,

den Thread konnte ich nicht finden, daher musste das selber herausfinden.
Hier die Info für Dritte, weil ich auch immer seehr ehrfürchtig bin beim killen von Prozessen.

Zuerst per Telnet auf der Shell als root einloggen.
Dann muss man alle Prozesse löschen, die auf das benötigte Volume zugreifen.
Das NAS sollte zu dem Zeitpunkt besser nicht aktiv benutzt werden...
Mit 'ps' lassen sich alle Prozesse auflisten
Mit 'killall' lassen sich dann Prozesse nach Namen löschen.
Bei mir reichten folgende Prozesse, um /volume1 auf der shell unmounten zu können:
httpd, smbd, afpd, ftpd und nmbd.
Damit sind so ziemlich alle dateibezogenen Netzwerkdienste tot.

unmounten mit
Rich (BBCode):
umount /volume1

Der folgende Befehl sagt mir, als welches Device das zu prüfende dateisystem ansprechbar ist und auch um welchen dateisystemtyp es sich handelt:
Rich (BBCode):
DS207p> more /etc/fstab
/dev/root / ext3 defaults 1 1
none /proc proc defaults 0 0
/dev/md2 /volume1 ext3 defaults 0 0

Wenn /volume1 ausgehängt ist, kann man das Dateisystem prüfen und ggf. reparieren. Die Befehle entsprechen im Wesentlichen dem aus Itaris Thread (s.o.). Die Option -f sorgt dafür, das (e2)fsck den Test in jedem Fall ausführt.
Rich (BBCode):
/sbin/e2fsck -pf /dev/md2
/sbin/e2fsck -nvf /dev/md2

Nach dem Test kann man '/volume1' wieder mounten oder besser gleich neu booten.
Rich (BBCode):
mount -w /dev/md2 /volume1

Dieses Verfahren funktioniert für alle Datenvolumes aber nicht für root '/'.


Gruß,
Hajolino
 
Zuletzt bearbeitet:

Trolli

Benutzer
Mitglied seit
12. Jul 2007
Beiträge
9.848
Punkte für Reaktionen
1
Punkte
0
Was ich in diesem Zusammenhang immer falsch mache: Wenn man die IPKG-coreutils installiert hat, verwendet man beim umount standardmässig den Befehl aus /opt/bin. Dann kann man das Volume natürlich nicht mehr aushängen. Lösen kann man das ganz einfach, indem man explizit den /bin/umount aufruft (wenn man denn dran denkt... :eek:).
 
Zuletzt bearbeitet:

hajolino

Benutzer
Mitglied seit
18. Sep 2010
Beiträge
8
Punkte für Reaktionen
0
Punkte
0
Korrektur: Es soll bei Trolli wohl /bin/mount heißen. :)

verwendet man beim umount standardmässig den Befehl aus /opt/bin.
Ich habe umount nur auf volume1 angewendet.
Daher ist bei mir /opt/bin/* während der ganzen Prozedur immer noch vorhanden.

Ich bin meiner eigenen Beschreibung gefolgt und es hat funktioniert. Später ist mir eingefalllen, das man das besser machen kann.
entweder e2fsck zuerst mi -nvf aufrufen, um erst mal zu sehen, was alles niO ist. (und ggf. vorher die Daten retten)
oder e2fsck mit -yvf aufrufen, damit man wenigstens sieht, was e2fsck gerade macht.
 

Trolli

Benutzer
Mitglied seit
12. Jul 2007
Beiträge
9.848
Punkte für Reaktionen
1
Punkte
0
Danke - habs korrigiert. Wobei es nicht /bin/mount heißen sollte, sondern /bin/umount. ;)

Das Problem tritt auch nur auf, wenn man die coreutils installiert hat, weil dann eben /opt/bin/umount verwendet wird und das liegt eben auf /volume1. Deswegen schlägt der umount dann fehl...
 

itari

Benutzer
Mitglied seit
15. Mai 2008
Beiträge
21.900
Punkte für Reaktionen
14
Punkte
0
das mit dem Standardmäßigem ... ihr ändert nicht den PATH so ab, dass die IPKG-Pfade am Ende stehen??? Würde ich schon machen ...

Itari
 

Trolli

Benutzer
Mitglied seit
12. Jul 2007
Beiträge
9.848
Punkte für Reaktionen
1
Punkte
0
Mit standardmäßig meine ich, dass es nach der ipkg-Installation automatisch so konfiguriert ist. Und ich finde es für mich auch sinnvoll, wenn die opt-Pfade vorne stehen, weil ich in der Regel lieber mit den erweiterten optware-Befehlen arbeite anstatt mit den kastrierten busybox Varianten.
 

goetz

Super-Moderator
Teammitglied
Sehr erfahren
Mitglied seit
18. Mrz 2009
Beiträge
14.015
Punkte für Reaktionen
271
Punkte
393
genau so halte ich es auch.

Gruß Götz
 

monchi

Benutzer
Mitglied seit
16. Feb 2012
Beiträge
109
Punkte für Reaktionen
0
Punkte
0
sorry das ich den alten Thread hier nochmal ausbuddeln muss.

Ich hab ein ähnliches Problem und würde gerne e2fsck über die entsprechende partition drüberlaufen lassen.
Bekomme aber folgenden Fehler:
/dev/mapper/vol2-origin is in use

Gibt es eine Möglichkeit über SSH alle Dienste die auf der DS laufen, abgesehen von dem SSH-Server zu stoppen? Oder mir anzeigen zulassen welche Dienste noch auf das Datanvolumen zugreifen?

Nachtrag:

Ich hab alle Dienste die sich per Weboberfläche abschalten lassen (timebackup, smb, nfs, ftp,..) gestoppt. "Killall httpd" stopt zwar den webserver. Dieser startet aber automatisch neu
 
Zuletzt bearbeitet:
Status
Für weitere Antworten geschlossen.
 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat