In Ubuntu und NTFS für seltene Verzeichnisse und Dateinamen 'Kein Platz auf dem Gerät'

636
Paolo

Ich habe das seltsamste Problem auf einem Ubuntu-Computer (ziemlich altes Ubuntu 10.04.1 LTS, das aus bestimmten Gründen nicht bereit ist, ein Upgrade durchzuführen) und auf einem externen USB-Laufwerk, das NTFS formatiert ist. Bitte beachten Sie, dass die Maschine seit Jahren als Datei- und Webserver verfügbar ist und trotz der starken Beanspruchung, abgesehen von den unten beschriebenen, keine offensichtlichen Mängel auftreten. Da ich mehrere Stunden mit dem Versuch verbracht habe, das Problem ohne Erfolg zu verstehen, hoffe ich, dass jemand Hinweise geben kann, was passieren könnte (außer dem Vorschlag, auf eine neuere Version von Ubuntu zu wechseln - was ich trotzdem tun werde, aber ich kann es nicht jetzt tun)

Hier ist ein Beispiel für etwas, das nicht funktioniert ("/ media / paolo \ 's \ # 3" ist natürlich das betreffende USB-Gerät):

rm -rf /media/paolo\'s\ #3/audio id3v2 --list "/media/paolo's #3/01 -- Psalm 108 vs. 2 - Psalm 100.mp3" id3v2 tag info for /media/paolo's #3/01 -- Psalm 108 vs. 2 - Psalm 100.mp3: TALB (Album/Movie/Show title): Chichester Psalms, for Boy Soprano, Mixed Chorus, Organ, Harp, and Percussion (1965) TCOM (Composer): Bernstein, Leonard (1918-1990) [...] mkdir -p "/media/paolo's #3/audio/mp3/Classical/Bernstein, Leonard (1918-1990)/4. Vocal/Chichester Psalms, for Boy Soprano, Mixed Chorus, Organ, Harp, and Percussion (1965) -- Kelly, Franklin-Kitchen, Nayeler, Budd, Charrier, Bournemouth Symphony Chorus and Orchestra, Alsop" cp "/media/paolo's #3/01 -- Psalm 108 vs. 2 - Psalm 100.mp3" "/media/paolo's #3/audio/mp3/Classical/Bernstein, Leonard (1918-1990)/4. Vocal/Chichester Psalms, for Boy Soprano, Mixed Chorus, Organ, Harp, and Percussion (1965) -- Kelly, Franklin-Kitchen, Nayeler, Budd, Charrier, Bournemouth Symphony Chorus and Orchestra, Alsop" cp: cannot create regular file `/media/paolo\'s #3/audio/mp3/Classical/Bernstein, Leonard (1918-1990)/4. Vocal/Chichester Psalms, for Boy Soprano, Mixed Chorus, Organ, Harp, and Percussion (1965) -- Kelly, Franklin-Kitchen, Nayeler, Budd, Charrier, Bournemouth Symphony Chorus and Orchestra, Alsop/01 -- Psalm 108 vs. 2 - Psalm 100.mp3': No space left on device 

Das heißt, ich möchte einfach rekursiv einen tiefen Pfad erstellen und dort eine gültige Datei aus dem Stammverzeichnis des Geräts kopieren. Das Problem ist natürlich, dass auf der Festplatte viel Speicherplatz frei ist (100 GB).

Nun ist es wichtig zu erwähnen, dass ich die Pfade nicht vereinfachen kann, da praktisch jeder andere Name gut funktionieren würde. Genauer gesagt habe ich das Problem beim Ausführen eines Perl-Skripts entdeckt, das einige GB an Daten kopiert, und aus Tausenden von Verzeichnissen, die den obigen ähnlich sind, haben nur ein Dutzend das Problem (hier gezeigt, als würden sie einzeln verwendet.) Zitate in der Schale):

/media/paolo's #3/audio/mp3/Classical/Bach, Carl Philipp Emanuel (1714-1788)/5. Opera/Oratorio '\''Die Auferstehung und Himmelfahrt Jesu'\'' for 3 Soli, SATB Chorus, and Orchestra, Wq240 (1777-1778) -- Schlick, Prégardien, Varcoe, Rheinische Kantorei, Das Kleine Konzert, Max /media/paolo's #3/audio/mp3/Classical/Bach, Johann Sebastian (1685-1750)/4. Vocal/Cantata no. 211 '\''Schweigt stille, plaudert nicht'\'' for Soprano, Tenor, Bass, Choir, and Orchestra, BWV211 (1734-1735) -- Hansmann, Equiluz, van Egmond, Concentus Musicus Wien, Harnoncourt /media/paolo's #3/audio/mp3/Classical/Bernstein, Leonard (1918-1990)/4. Vocal/Chichester Psalms, for Boy Soprano, Mixed Chorus, Organ, Harp, and Percussion (1965) -- Kelly, Franklin-Kitchen, Nayeler, Budd, Charrier, Bournemouth Symphony Chorus and Orchestra, Alsop /media/paolo's #3/audio/mp3/Classical/Bruhns, Nicolaus (1665-1697)/4. Vocal/Cantate '\''Muss nicht der Mensch'\'', for Soprano, Alto, Tenor, Bass, 2 Trumpets, Bassoon, 2 Violins, 2 Gambas, Cello, and Continuo -- De Reyghere, Bowman, De Mey, van Egmond, Ricercar Consort /media/paolo's #3/audio/mp3/Classical/Caresana, Cristofaro (c1640-1709)/4. Vocal/Cantata '\''L'\''adoratione de'\'' Maggi'\'' for 6 Voices and Instruments '\''Per la nascita di nostro Signore'\'' (1676) -- Schiavo, Varriale, Mineccia, De Vittorio, Totaro, Naviglio, I Turchini, Florio /media/paolo's #3/audio/mp3/Classical/Fux, Johann (1660-1741)/1. Orchestral/Serenada à 8 for 2 Trumpets, 2 Oboes, Bassoon, 2 Violins, Viola, and Continuo in C major from '\''Concentus musico-instrumentalis'\'', op. 1, K.352 (1701) -- Concentus Musicus Wien, Harnoncourt /media/paolo's #3/audio/mp3/Classical/Handel, George Frideric (1685-1759)/4. Vocal/Motet '\''Saeviat tellus inter rigoris'\'' for Soprano, 2 Oboes, Strings, and Continuo in D major, HWV240 (1707) -- Massis, Choeur des Musiciens du Louvre, Les Musiciens du Louvre, Minkowski /media/paolo's #3/audio/mp3/Classical/Schumann, Robert (1810-1856)/4. Vocal/Requiem for Mignon from Goethe'\''s '\''Wilhelm Meister'\'', op. 98b (1849) -- Bonney, Poschner, Schaechter, Hintermeier, Pita, Schmidt, Wiener Staatsopernchor, Chamber Orchestra of Europe, Abbado /media/paolo's #3/audio/mp3/Classical/Telemann, Georg Philipp (1681-1767)/4. Vocal/Cantata '\''Ein Mensch ist in seinem Leben wie Gras'\'' for Soli ATB, Choir SATB, and Orchestra, TWV4:18 -- Wessel, Jochens, Schreckenberger, Rheinische Kantorei, Das Kleine Konzert, Max /media/paolo's #3/audio/mp3/Classical/Telemann, Georg Philipp (1681-1767)/5. Opera/Oratorio '\''Betrachtung der 9. Stunde an dem Todestage Jesu'\'' for Soli ATBB, Choir SATB, and Orchestra, TWV5:5 -- Chordier, Jochens, Wimmer, van der Kamp, Rheinische Kantorei, Das Kleine Konzert, Max /media/paolo's #3/audio/mp3/Classical/Verdi, Giuseppe (1813-1901)/4. Vocal/Messa da Requiem for 4 Solo Voices, Chorus, and Orchestra (1874) -- Tomowa-Sintow, Baltsa, Carreras, van Dam, Konzertvereinigung Wiener Staatsopernchor, Wiener Philharmoniker, von Karajan /media/paolo's #3/audio/mp3/Classical/Waxman, Franz (1906-1967)/5. Opera/Joshua, Dramatic Oratorio for Soloists, Narrator, Mixed Chorus, and Orchestra (1959) -- Schnell, Gilfry, Hallenberg, Buchi, Poole, Prague Philharmonic Choir, Prague Philharmonia, Sedares /media/paolo's #3/audio/mp3/Classical/Zelenka, Jan Dismas (1679-1745)/4. Vocal/Missa Divi Xaverii, for Soloists SATB, Choir SATB, 2 Flutes, 2 Oboes, 4 Trumpets, Timpani, Strings, and Continuo in D major, ZWV12 (1729) -- Collegium Vocale 1704, Collegium 1704, Luks 

Ein paar Anmerkungen zu dem, was ich für einen Fehler hielt, ist meines Erachtens nicht: (1) Keiner dieser Pfade, auch nicht der Name der darin zu kopierenden Dateien, ist der längste, den ich kopiere - es gibt viele längere, die perfekt funktioniert. (2) Obwohl viele von ihnen UTF-8-Nicht-ASCII-Zeichen und milde Sonderzeichen wie einfache Anführungszeichen enthalten, weisen die meisten anderen erfolgreich erstellten Verzeichnisse und Dateien genau die gleichen Eigenschaften auf. (3) Kleinere Änderungen in den Verzeichnisnamen können dazu führen, dass der Prozess erfolgreich ist. Im ersten Fall der obigen Liste habe ich festgestellt, dass das Entfernen eines der beiden Felder vor "Schlick" zum Erfolg führt, das Hinzufügen eines dritten jedoch immer noch fehlschlägt. Bitte beachten Sie auch, dass Tausende von anscheinend sehr ähnlichen Verzeichnissen kein Problem haben. (4) Nach der ersten fehlgeschlagenen Kopie (aufgrund eines "Kein Speicherplatz auf dem Gerät") schlagen weitere Kopierversuche (derselben oder anderer Dateien) aufgrund eines "Eingabe- / Ausgabefehlers" tatsächlich fehl. Ich bin nicht sicher, ob es wichtig ist, aber dmesg scheint absolut nichts zu zeigen. (5) Das Verhalten ist ziemlich deterministisch und ich habe es für mehr als eine Woche für dieselben Verzeichnisse beobachtet und konnte das Aufheben der Bereitstellung des USB-Datenträgers viele Male überleben.

Um den obigen Punkt (2) zu zeigen, hier ein Arbeitsbeispiel:

rm -rf /media/paolo\'s\ #3/audio mkdir -p "/media/paolo's #3/audio/mp3/Classical/Bach, Johann Sebastian (1685-1750)/4. Vocal/Cantata no. 17 'Wer Dank opfert, der preiset mich' for Soprano, Alto, Tenor, Bass, Choir, and Orchestra, BWV17 (1726) -- Soloist of the Wiener Sängerknaben, Esswood, Equiluz, van Egmond, Wiener Sängerknaben, Concentus Musicus Wien, Harnoncourt" cp "./mp3/Classical/Bach, Johann Sebastian (1685-1750)/4. Vocal/Cantata no. 17 'Wer Dank opfert, der preiset mich' for Soprano, Alto, Tenor, Bass, Choir, and Orchestra, BWV17 (1726) -- Soloist of the Wiener Sängerknaben, Esswood, Equiluz, van Egmond, Wiener Sängerknaben, Concentus Musicus Wien, Harnoncourt/01 -- Coro; Wer Dank opfert, der preiset mich.mp3" "/media/paolo's #3/audio/mp3/Classical/Bach, Johann Sebastian (1685-1750)/4. Vocal/Cantata no. 17 'Wer Dank opfert, der preiset mich' for Soprano, Alto, Tenor, Bass, Choir, and Orchestra, BWV17 (1726) -- Soloist of the Wiener Sängerknaben, Esswood, Equiluz, van Egmond, Wiener Sängerknaben, Concentus Musicus Wien, Harnoncourt" 

Man kann feststellen, dass es hier Buchstaben mit Akzent und doppelte Leerzeichen gibt und dass der Gesamtpfadname der ersten kopierten Datei hier länger ist als für eines der fehlerhaften Verzeichnisse:

echo "/media/paolo's #3/audio/mp3/Classical/Bernstein, Leonard (1918-1990)/4. Vocal/Chichester Psalms, for Boy Soprano, Mixed Chorus, Organ, Harp, and Percussion (1965) -- Kelly, Franklin-Kitchen, Nayeler, Budd, Charrier, Bournemouth Symphony Chorus and Orchestra, Alsop/01 -- Psalm 108 vs. 2 - Psalm 100.mp3" | wc -c 303 echo "/media/paolo's #3/audio/mp3/Classical/Bach, Johann Sebastian (1685-1750)/4. Vocal/Cantata no. 17 'Wer Dank opfert, der preiset mich' for Soprano, Alto, Tenor, Bass, Choir, and Orchestra, BWV17 (1726) -- Soloist of the Wiener Sängerknaben, Esswood, Equiluz, van Egmond, Wiener Sängerknaben, Concentus Musicus Wien, Harnoncourt/01 -- Coro; Wer Dank opfert, der preiset mich.mp3" | wc -c 379 

Hier ist ein weiteres seltsames Beispiel für das, was passiert. Das funktioniert eigentlich gut:

rm -rf /media/paolo\'s\ #3/audio mkdir -p "/media/paolo's #3/audio/mp3/Classical/Bernstein, Leonard (1918-1990)/4. Vocal/Chichester Psalms, for Boy Soprano, Mixed Chorus, Organ, Harp, and Percussion (1965) -- Kelly, Franklin-Kitchen, Nayeler, Budd, Charrier, Bournemouth Symphony Chorus and Orchestra, Alsop" touch "/media/paolo's #3/audio/mp3/Classical/Bernstein, Leonard (1918-1990)/4. Vocal/Chichester Psalms, for Boy Soprano, Mixed Chorus, Organ, Harp, and Percussion (1965) -- Kelly, Franklin-Kitchen, Nayeler, Budd, Charrier, Bournemouth Symphony Chorus and Orchestra, Alsop/TEST" cp "/media/paolo's #3/01 -- Psalm 108 vs. 2 - Psalm 100.mp3" "/media/paolo's #3/audio/mp3/Classical/Bernstein, Leonard (1918-1990)/4. Vocal/Chichester Psalms, for Boy Soprano, Mixed Chorus, Organ, Harp, and Percussion (1965) -- Kelly, Franklin-Kitchen, Nayeler, Budd, Charrier, Bournemouth Symphony Chorus and Orchestra, Alsop" id3v2 --list "/media/paolo's #3/audio/mp3/Classical/Bernstein, Leonard (1918-1990)/4. Vocal/Chichester Psalms, for Boy Soprano, Mixed Chorus, Organ, Harp, and Percussion (1965) -- Kelly, Franklin-Kitchen, Nayeler, Budd, Charrier, Bournemouth Symphony Chorus and Orchestra, Alsop/01 -- Psalm 108 vs. 2 - Psalm 100.mp3"  id3v2 tag info for /media/paolo's #3/audio/mp3/Classical/Bernstein, Leonard (1918-1990)/4. Vocal/Chichester Psalms, for Boy Soprano, Mixed Chorus, Organ, Harp, and Percussion (1965) -- Kelly, Franklin-Kitchen, Nayeler, Budd, Charrier, Bournemouth Symphony Chorus and Orchestra, Alsop/01 -- Psalm 108 vs. 2 - Psalm 100.mp3: TALB (Album/Movie/Show title): Chichester Psalms, for Boy Soprano, Mixed Chorus, Organ, Harp, and Percussion (1965) TCOM (Composer): Bernstein, Leonard (1918-1990) [...] 

Der einzige Unterschied zum ersten Beispiel besteht darin, dass ich vor dem Kopieren eine zufällige Datei im Verzeichnis anfasse. Dann funktioniert die Kopie und (im obigen Beispiel nicht gezeigt) kann ich die berührte Datei entfernen, wobei alles gesund bleibt. Wenn ich jedoch die Datei TEST sofort entferne, nachdem sie berührt wurde, schlägt die nachfolgende Kopie fehl. Beachten Sie, dass ich versucht habe, diese Technik zu verwenden, um eine schnelle Problemumgehung in meinem Skript zu erreichen: Während es bei einfachen Testfällen gut funktioniert hat, funktioniert es nicht überall. Leider habe ich an diesem Punkt nicht viel mehr Informationen.

Ich habe keine Ahnung, was los ist und was ich tun könnte (wieder einmal die Ubuntu-Version ändern), um das Problem zu umgehen.

1
Ist es möglich, dass diese nicht druckbare Zeichen enthalten, die nicht zulässig sind? Sie erwähnten das Löschen eines "Leerzeichens" und das Problem wurde für diese Datei behoben, das Hinzufügen eines anderen Leerzeichens hat das Problem jedoch nicht behoben. Ist es möglich, dass das gelöschte Leerzeichen überhaupt kein Leerzeichen (ANSI 32) war? Es würde auch den letzten sonderbaren Fall erklären und warum andere, scheinbar ähnliche Pfade funktionieren. Wenn dies der Fall ist, können Sie durch einen Regex alle Zeichen außer den Zeichen für Zeichen / erlaubte Zeichen in jedem Datei- / Pfadnamen durch ein einziges Leerzeichen in Ihrem Skript ersetzen, um einen Zielpfad für den Kopiervorgang zu erstellen. Cliff Armstrong vor 6 Jahren 1
Klippe, ausgezeichnete Idee, danke. Ich habe leider nur nachgesehen und alle Felder sind normal. Außerdem ist alles UTF-8-konform, daher sollte es meiner Meinung nach auch mit nicht zerbrechlichen Räumen usw. funktionieren. Jedenfalls war keiner der Schuldigen, die ich gerade überprüft habe. Paolo vor 6 Jahren 0
Könnte damit zusammenhängen: https://stackoverflow.com/a/15971467/2625090. Ihr Test-Dateiname '/ media / paolo \' s # 3 / audio / mp3 / ... 'ist 303 Zeichen lang. Das ntfs-Backend wirft möglicherweise eine Ausnahme für einen so langen Pfad aus und Ubuntu übersetzt es wahrscheinlich nur als " Kein Platz übrig "Fehler. arielnmz vor 6 Jahren 0
@arielnmz: Ich glaube nicht, dass es ein Längenproblem ist, weil ich viele längere Pfadnamen habe, die perfekt funktionieren. Sie sind insgesamt sowohl länger (siehe 379 im obigen Beispiel, was kein Problem hat) als auch die längste Komponente des Pfads (siehe das obige Beispiel, obwohl es weniger klar ist, sofort zu sehen). Nein, ich glaube nicht, dass Länge das Problem sein kann - es war meine erste Annahme, weil ich in der Vergangenheit immer Probleme dieser Art hatte. Paolo vor 6 Jahren 0
Möglicherweise ist es nur ein nicht zusammenhängender Fehler, der als Leerzeichenfehler übersetzt wird. arielnmz vor 6 Jahren 0
@arielnmz: Vielleicht, aber ich wüsste nicht, welche Art von Fehler es ist, da es ein deterministisches Verhalten ist, wenn ich die obigen Beispiele ausführen und sowohl die Verzeichnisse als auch die zu erstellenden Dateien legitim sind (wie die Problemumgehung mit Touch bestätigt). Paolo vor 6 Jahren 0
Haben Sie versucht, mit deaktiviertem Cache / Puffer zu kopieren? oder eine synchronisierte Kopie? rsync? arielnmz vor 6 Jahren 0

0 Antworten auf die Frage