Datei laesst sich nicht loeschen

  • Ersteller linux_anfaenger
  • Erstellt am
L

linux_anfaenger

Jungspund
Hallo,

ich kann keine Dateien loeschen, die in roter Schrift mir schwarzem Hintergrund in der Konsole dargestellt werden. Diese Dateien koennen nicht gefunden werden erfahre ich als Rueckmeldung.
Ich denke, dass sind Opfer eines Festplattendefektes den ich einmal gehabt habe. Alles habe ich damals mit dd-rescue retten koenne. Habe mich aber immer gefragr, welches wohl die kaputten Dateine sind. Naja, das scheinen die wohl zu sein.

Wie kann ich diese denn aus dem Filesystem loeschen?

Vielen Dank,
Walter
 
Hi

Poste bitte mal die genaue Ausgabe von ls -l von dieser Datei. Ich vermute das dir nur die entsprechenden rechte fehlen um die Datei zu löschen.

Gruß
Psyjo
 
Hi Psyjo,

ne da kann es nicht dran liegen:
?--------- ? ? ? ? ? a.txt
?--------- ? ? ? ? ? b.txt
?--------- ? ? ? ? ? c.txt

Wenn ich versuche eine der Dateien per rm zu loeschen wird mir mitgeteilt, dass die Datei oder das Verz nicht gefunden wird.

Trotzdem danke,
Walter
 
hi,

hast du mal versucht mit {chmod 777 *.txt} die rechte zu ändern?

suche mal mit {find / -iname a.txt} den pfad der datei

geht {rm -rf a.txt} auch nicht ?

greets
 
ne da kann es nicht dran liegen:
?--------- ? ? ? ? ? a.txt
?--------- ? ? ? ? ? b.txt
?--------- ? ? ? ? ? c.txt

Na doch, da sind keinerlei Rechte und auch kein Nutzer/Gruppe auf den Files gesetzt. Mit Rootrechten könnte das funktionieren (sudo o.ä.). Du kannst aber auch die Rechte ändern wie das FoxViper vorgeschlagen hat, das dürfte als Nutzer aber auch nicht funktionieren, deswegen
Code:
chmod 644 *.txt && chown root:root *.txt
als root ausführen.

Gruß
Psyjo
 
Zuletzt bearbeitet:
Hallo Psyjo,
Hallo FoxViper,

das funktioniert auch nicht. Der Fehler ist der gleiche, naemlich, dass die Datei/Verz nicht gefunden werden kann. Ich kenne mich mit Dateisystemen nicht so richtig aus, aber da scheint wohl irgendeine Zuordung nicht korrekt zu sein.

e2fsck hilft leider auch nicht weiter.

Danke,
Walter
 
Das sieht nach einem kaputten Dateisystem aus.
Sorry, wenn das jetzt aggressiv klingt, aber das sagt der Threadersteller seit Post Nr. 1!
Auch diese "Tips" mit den Rechten kann ich nicht verstehen, wenn der Threadersteller klar gesagt hat, dass "file not found" die Fehlermeldung ist. (Auch bereits seit Post 1.) Nichts mit "permission denied" oder so.

Live-CD (z.B. knoppix) booten, dann e2fsck auf die Partition.
vs.
e2fsck hilft leider auch nicht weiter.
Irgendwie hab ich das Gefühl, dass hier nicht sonderlich gründlich gelesen wird.
(Obwohl output der Meldungen von e2fsck wohl auch nicht schlecht wären, aber da hat Niemand nach gefragt..)
 
Sorry, dass ich den Ursprungsbeitrag nicht präzise gelesen habe. Hat der TE denn nun schonmal eine Live-CD gestartet?

Gruß Aqualung
 
Okay, ich versuche es mal: Aber da brauch ich Hilfe von Profis!!!
da ein e2fsck nicht hilft, folgender Gedanke. Dein Ordner ist nix weiter als eine Datei, in der steht , wo die Dateien abgelegt wurden, welche Rechte sie haben etc.
An die Profis: ich brauch einen Hexeditor, der Ordner nicht als Ordner sieht, sondern als das, was sie sind, Dateien.
Dann, Einträge ganz genau anschauen, und die betroffenen Files einfach löschen. Dann gibt das System alles, was die Dateien betraf, auch wieder frei.
Diese Sache ist mit äusserster Vorsicht zu geniessen, ein Fehler, und der Ordner ist gar nicht mehr zu gebrauchen!!!
Ich hab sowas mal früher mit nem Atari gemacht, aber da waren die Festplatten nicht so gross, da konnte ich die ganze Platte mit nem Hexeditor bearbeiten, aber ich fürchte, Deine Platte ist grösser als 80 MB, oder? ;)
Das Prinzip ist bis heute geblieben, nur die Ablegemechanismen haben sich geändert.

Nachtrag: ich bin leider nur Maurer mit einem kleinen Hang zu Computern, leider bin ich noch nicht so tief in die Materie eingedrungen, wohl auch weil ich es noch nicht musste.

2. Nachtrag:
Versuche mal folgendes:
1. Wechsele in das Verzeichnis mit den Fehlerhaften Dateien.
2. Befehl #>tar cvfz --ignore-failed-read /failfile.tar.gz *
Mit diesem Befehl wird ein Archiv angelegt, das alles enthält, was der Ordnerinhalt war. Die Fehlerhaften Dateien sollten ignoriert werden.
Dann startest Du den Rechner mit einer Live-CD wie Knoppix neu.
3. Überprüfe, ob die Dateien sich in dem Zustand befinden, den Du möchtest, was bedeutet:
a: du öffnest das Archiv unter dem mc und überprüfst, ob dies nun leere löschbare Dateien mir 0 Byte Grösse sind, oder ob diese vielleicht schon gar nicht mehr exisieren.
b: Ist dies der Fall, löschst Du das betroffene Verzeichnis, legst es neu an, das ist wichtig, und spielst die Daten zurück.
c: Es kann aber sein, dass sich der Ordner nicht löschen lässt. Tritt dieser Fall ein, das Archiv ist aber in Ordnung, machst Du das ganze mit dem kompletten Filesystem, kostet eben mehr Zeit, geh inzwischen ein Eis essen. ;)
Scheint das Archiv die Fehler mitgenommen zu haben (unwahrscheinlich aber möglich) das ganze ohne die Option --ignore-failed-read und hoffe, dass der Vogang nicht abgebrochen wird.
so, mehr fällt mir dazu dann auch nicht ein.
 
Zuletzt bearbeitet:
Hallo,

Hat der TE denn nun schonmal eine Live-CD gestartet?

Ich sollte noch einmal erwaehnen, dass ich ein image der defekten Platte gemacht habe und die Dateien dann alle schoen auf eine neue Platte kopiert habe.

@Schwedeii: Gute Idee. Die kaputten/defekten/wieauchimmer Dateien sind alleine im Ordner und ich habe auch schon versucht den zu loeschen. Die Idee Deine Schritte mit dem gesamten Filesystem zu machen habe ich mal verworfen, weil es sich hier um 540GB/750GB handelt und ich keine Knete fuer eine weitere Platte habe.

@Gott_in_schwarz (mann, da habe ich zuerst Gott_im_schwanz gelesen): e2fsck hat keinen einzigen Fehler gefunden.

Ich habe gerade noch einmal den Herrn Google aus dem Internet gefragt. http://ubuntuforums.org/showthread.php?t=498405 hat leider auch nicht gefruchtet.

Trotzdem vielen Dank an alle,
Walter
 
Zuletzt bearbeitet:
Wenn er die Dateien nicht findet, schon mal generich mit rm -rf *.t* ... probiert ?
Manchmal sind im dateinamen unsichtbare Zeichen - wenn z. B das Charset in nem
grafischen Filemanager net so ganz passt - hab ich schon gehabt und der rm mit *
hat dann funktioniert. (dass ganze als Root wegen der Rechte)...
 
habe ich mal verworfen, weil es sich hier um 540GB/750GB handelt und ich keine Knete fuer eine weitere Platte habe.
Nicht immer gleich mit der Tür in das Haus fallen.
1. Wenn Du was gezippt in ein Tape-Archiv knüppelst nimmst Du doch nicht die ganze Platte, sondern nur den Inhalt mit allem drum und dran. Soll bedeuten, Du kannst da komplette File-systeme auf andere Platten mit anderen Dateisystemen, (vorausgesetzt, Linux-Kompatibel, wie minix, ext2, ext3 oder reiserfs wegen der Rechte und dem Zeugs) übertragen. Hab ich schon mehrmals gemacht, das gibt keinerlei Probleme!!!
Fatzit: hast Du das ganze FS auf einer Platte, mit
># df
nachschauen, wieviel Plattenplatz belegt ist.
Ist dieser nicht grösser als 8 GB, alles taren und zippen, dann passt der ganze Hafer auf eine DVD. Mit bissel Glück sogar noch mehr. (4,6GB, grösser darf die Datei net wern)
Du kannst auch stückeln.
home-Ordner extra, user-Ordner extra, var-Ordner (wegen der Cache-Dateien, sofern Du ein Debian-Derivat wie Knoppix, ubuntu oder Debian nutzt) u.s.w.
Kleiner Tipp: Rette die Daten nie wieder per dd, Du erstellst ein Abbild des FS mit allen Fehlern, die da mit drin sind!!!
 
@Schwedeii: sorry, da habe ich mich unklar ausgedrueckt, ich habe 540GB von meiner 750GB Festplatte voll

@pferdefreund: Jo, dass habe ich auch schon versucht. Auch schon das ganze Verzeichnis, aber da er die Dateien nicht findet, wird das auch nichts.

>rm *
rm: Aufruf von lstat für »a.txt« nicht möglich: Datei oder Verzeichnis nicht gefunden
rm: Aufruf von lstat für »b.txt« nicht möglich: Datei oder Verzeichnis nicht gefunden
rm: Aufruf von lstat für »c.txt« nicht möglich: Datei oder Verzeichnis nicht gefunden

Danke,
Walter
 
@schwedeli:
Mit Hexeditor rangehen ist bei den heutigen, journaled Dateisystemen schonmal nicht mehr so anzugehen wie früher bei den alten Dateisystemen. Lektüre hierzu gibts genug im Netz. Wobei im Moment unklar welches FS tatsächlich vorliegt.

@TE:
- In welchem Verz. bist Du denn? Poste mal bitte den absoluten Pfad, ich hätte da eine Idee.
- Ist das eine externe Platte, womögl. USB oder eine interne?
- Wie ist sie denn gemountet ?
 
Hallo Cyber,

Wobei im Moment unklar welches FS tatsächlich vorliegt.
ext3

- In welchem Verz. bist Du denn? Poste mal bitte den absoluten Pfad, ich hätte da eine Idee.
/mnt/extern/tmp files/test/
- Ist das eine externe Platte, womögl. USB oder eine interne?
USB extern
- Wie ist sie denn gemountet ?
Manuell: mount /dev/sdb1 /mnt/extern

Na, da bin ich ja mal gespannt :)

Danke,
Walter
 
Ok.
Also anhand Deiner Antworten hätte ich folgenden Ansatz:

- Einhängen der Platte als root unter /mnt/extern wie gehabt unter Angabe des fstype
- Wechseln in das problematische Verzeichnis ( ist da wirklich ein blank dazwischen? )
- Versuchen die Inode zu lesen (ls -i), erste Spalte ist es
- Prüfen ob Inode Systemweit evtl. doppelt (find / -inum nnn) wobei nnn die inode von ls command. Falls nicht eindeutig dann mal posten wer diese noch belegt.


- Probieren die bugged files via find zu löschen. Falls die files alleinig in diesem Verzeichnis sind reicht ein
Code:
find ./ -exec rm {} \;
falls nicht, dann suche weiter einschränken.
 
- Wechseln in das problematische Verzeichnis ( ist da wirklich ein blank dazwischen? )
Ich vermute mal, das ist die halbe Lösung.

@TE: Nimm Dir mal den richtigen Umgang mit Dateisystemen zur Brust ;) ...
"Use no blanks (and other sh...) in your FS (!)."

Grüße
W.
 
Zurück
Oben