PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : cp von Dateien mit "bösen" Mac-Namen ext2->vfat



gast033
09.02.07, 11:11
:confused:
Auf einer alten NAS-Büchse (Level1 FNS-5000) wurden von Macs (OSx + OS9) Dateien (und Ordner), Mac-typisch mit Umlauten und anderem Schweinkram auf ext2 gespiegelt angelegt. Weil diese NAS-Büchse immer Probleme machte, wurde sie ausgetauscht.
Nun fängt der Ärger an:
Das Kopieren war wahnwitzig aufwändig (manuelle Prüfungen noch und nöcher) und es wurden nicht alle Dateien kopiert.
Nun soll eine der Platten in ein externes Gehäuse, damit fehlende Daten gesucht werden können. Mac OS X versteht aber kein ext2 und der erhältliche Treiber ist Beta und nicht DAU-zuverlässig.

Ich versuche nun unter knoppix 5.2 die Platte auf eine vfat-Partition (damit kann der Mac umgehen) zu kopieren, aber cp ist nicht in der Lage, die bösen Namen zu schreiben. Ich kann die Daten in einen tarball packen, aber nicht wieder auspacken. Auch ein mount mit type vfat (rw,iocharset=utf8,codepage=850) hilft mir nicht :mad:
Extrem erstaunlich ist, dass ich nach /ramdisk/blabla/ kopieren kann ( type tmpfs (rw,size=193392k) )

Ich möchte ungern die "bösen" Namen umbenennen a) weil es tausende sein werden b) weil ich die Daten eigentlich nicht verändern will, damit mir nicht die Zuordnungen (ResourceForks) um die Ohren fliegen.

Wer weiß was??

echo
09.02.07, 12:02
Hi,
ich weiß nicht ob dir das hilft, aber mal ein kleines beispiel:
- man besitzt dateien im dateisystem die mit einem - beginnen
- diese sollen gelöscht werden.
- rm würde diese dateien als parameter interpertieren
- für diesen problemfall gibs die option -- um rm zu sagen, alles was hir hinter kommt, ist eine datei und kein parameter
bsp:


rm -rf -- -kaputt


nun haben viele andere befehle auch diese möglichkeit mittels -- von den parameter die dateien zu trennen.

vielleicht hilft dir der hinweiß...

Wene
09.02.07, 12:10
Wie werden denn diese "Bösen" Zeichen in Linux dargestellt? Siehst du z.B. für ein "ä" ein "?", oder sehen die Namen gleich aus wie beim Mac?

Könnte es sein, dass in der NAS nicht UTF-8 verwendet wurde? Weisst du welcher Zeichensatz verwendet wurde?

gast033
09.02.07, 14:00
ich hab' leider keine Ahnung, wie die NAS-Büchse geschrieben hat, weiß nicht mal welcher Kernel drin steckte - aber die Vermutung, dass es nicht UTF-8 ist, liegt nahe. Die Dateien werden als z.B. "Bilder f:9fr Archiv" dargestellt. Also, wenn ich Dateisystem wäre, würde ich bei dem Doppelpunkt aus der Kurve fliegen.

gast033
09.02.07, 14:05
hmm - also alles man cp -Studium hat mir nicht weiter geholfen bei tar hab ich alles, was mir so einfiel bis hin zu --ignore-failed rein gepackt - allerdings ohne Erfolg - aber vielleicht hab ich was übersehen(?)

kreol
09.02.07, 14:49
Du kannst mit convmv den charset der Dateinamen ändern, was natürlich bei "f:9fr" nicht wirklich prickelnd ist. Bist Du sicher, daß :9 nicht für einen Umlaut o.ä. steht, der von dem jetztigen System nicht dargestellt wird? Dann wäre convmv in der Tat Dein Freund, vorausgesetzt, Du findest raus, welchen charset die NAS verwendet hat.

Ansonsten kannst Du ggf. mit Quotierung arbeiten. Beispiel zum Kopieren aller Dateien im aktuellen Verzeichnis
for i in *; do cp "$i" /neues/verz/"$i"; doneHabe es nicht getestet, aber zumindest in diese Richtung sollte es funktionieren. Ggf. müssen da noch Klammern oder dergl. gesetzt werden, das kann ich hier nicht ausprobieren.

Und ich weiss nicht, ob es so sinnvoll ist, bei der FAT32 Partiton iocharset und codepage gemeinsam zu verwenden. Was sagt denn die manpage dazu?


Kreol

P.S.
Zum kopieren sollte es reichen:
kreol@P800:~/temp> touch "e:f1" "e:f2" "e:f3"
kreol@P800:~/temp> ls
e:f1 e:f2 e:f3
kreol@P800:~/temp> for i in *; do cp "$i" "$i"_copy; done
kreol@P800:~/temp> ls
e:f1 e:f1_copy e:f2 e:f2_copy e:f3 e:f3_copy
kreol@P800:~/temp>

gast033
14.02.07, 16:18
Hat leidr nicht geklappt.


for i in *; do cp "$i" /media/hdd1/"$i"; done
cp: reguläre Datei »/media/hdd1/:2eDS_Store« kann nicht angelegt werden: Das Argument ist ungültig
cp: reguläre Datei »/media/hdd1/:2eFBCIndex« kann nicht angelegt werden: Das Argument ist ungültig
cp: Verzeichnis »:2eFBCLockFolder« ausgelassen
cp: Verzeichnis »:2eTemporaryItems« ausgelassen
cp: Verzeichnis »BackUp-Outlook« ausgelassen
cp: Verzeichnis »Backup-Problemdateien« ausgelassen
cp: Verzeichnis »Buero« ausgelassen
cp: Verzeichnis »Exchange« ausgelassen
cp: Verzeichnis »Fotoarchiv« ausgelassen
cp: Verzeichnis »Installationen« ausgelassen
cp: Verzeichnis »Network Trash Folder« ausgelassen
cp: Verzeichnis »privat« ausgelassen
cp: Verzeichnis »Temporary Items« ausgelassen
cp: Verzeichnis »TheFindByContentFolder« ausgelassen
cp: Verzeichnis »TheVolumeSettingsFolder« ausgelassen
cp: Verzeichnis »Trash« ausgelassen
cp: Verzeichnis »zum Brennen« ausgelassen

Ich werde jetzt mal versuchen, was passiert, wenn ich Netatalk installiere und mit

apple_cp zu kopieren versuche.

gast033
19.02.07, 13:15
Ein Kollege gab mir den Tipp, netatalk zu installieren und es mit apple_cp zu versuchen. Mit Knoppix 5.0 habe ich wegen nicht auflösbarer Abhängikeiten auf Granit gebissen.
Habe dann noch eine Platte in den Rechner gehängt und openSuSe 10.1 installiert (ganz schön aufwändig!). Mit netatalk.
netatalk minimal konfiguriert, aber Daumen-nach-unten. Auch apple_cp konnte Dateien mit Umlauten nicht erkennen/kopieren. ls ok, aber kopieren :mad:
~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~
Auf blöd probiert:

cp -R 2>pc_err
Und er kopiert (fast) alles:

cp: cannot create regular file `/media/hdd1/[..]/.AppleDouble/:2eDS_Store': Invalid argument
[...]
cp: cannot create regular file `/media/hdd1/[..]/:2eFBCIndex': Invalid argument
[...]
cp: cannot create directory `/media/hdd1/[..]/privat/[name] privat/Fotos [name]/[..]/F:8acherBild:2f[name]': Invalid argument

Insgesamt 3248 von 78.093 nicht kopiert.
~~~~~~~~~~~~~~
~~~~~~~~~~~~~~
Dagegen noch der Versuch mit

for i in *; do cp -R "$i" [absPath]"$i" 2>[errorfile]


cp: cannot create regular file `/media/hdd1/[..]/Buero/.AppleDouble/:2eDS_Store': Invalid argument
[...]
cp: cannot create directory `/media/hdd1/[..]/Buero/Bilderbibliothek/Broschuere-bilder/BilderInstallationen/[name]:2fTG': Invalid argument


Ich erhalte also bei den beiden, eigentlich ja sehr verwandten Aktionen unterschiedliche Fehler :confused:
Leider ist mir die Fehlerausgabe aus welchem Grund auch immer, zusammengebrochen, aber ich stelle fest, dass ich in diesem 2. Versuch 59.649 Dateien geschrieben habe, während ich beim blosen cp -R 59.716 Dateien erhalten habe.

BTW: [name] oder [...] sind Ersetzungen von mir, um den Datenschutz zu gewährleisten.

Wene
19.02.07, 22:01
Mal was ganz anderes: hast du die Platte (oder besser gesagt das Dateisystem) mal auf Fehler geprüft?

Und das Problem mit dem Zeichensatz bestünde ja auch noch wenn sich die Dateien kopieren liessen. Hast du es mal mit ein paar verschiedenen Charsets probiert?

Und kannst du die nicht kopierbaren Dateien lesen? Mit "cat" z.B.? Oder umbenennen?