1

Я испытываю самую странную проблему на машине с Ubuntu (довольно старая Ubuntu 10.04.1 LTS, которую по некоторым причинам я не готов обновить) и на внешнем USB-накопителе в формате NTFS. Обратите внимание, что машина годами использовалась как файловый и веб-сервер, и нет явных дефектов, несмотря на довольно интенсивное использование, кроме тех, которые обсуждались ниже. Поскольку я потратил несколько часов, чтобы попытаться понять проблему без какого-либо успеха, я надеюсь, что кто-то может дать некоторые подсказки о том, что может произойти (помимо предложения перейти на более свежую версию Ubuntu - что я буду делать в любом случае, но я не могу Делай сейчас).

Вот пример чего-то, что не работает ("/media/paolo\ 's\ # 3", конечно, это USB-устройство, о котором идет речь):

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

То есть я просто хочу рекурсивно создать глубокий путь и скопировать туда действительный файл из корня устройства. Конечно, проблема в том, что на диске достаточно свободного места (100 ГБ).

Теперь важно отметить, что я не могу упростить пути, потому что практически любое другое имя будет работать нормально. Более конкретно, я обнаружил проблему во время выполнения сценария Perl, который копирует несколько ГБ данных, и из тысяч каталогов, аналогичных приведенным выше, только дюжина имеет проблему (показано здесь, как если бы они использовались в одном цитаты в оболочке):

/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

Несколько комментариев о том, что я думал, может быть причиной сбоя, и, я полагаю, это не так: (1) Ни один из этих путей, даже включая имена копируемых файлов, не является самым длинным, который я копирую - их очень много. более длинные, которые прекрасно работают. (2) Хотя многие из них содержат не-ASCII символы UTF-8 и слегка специальные символы, такие как одинарные кавычки, большинство других успешно созданных каталогов и файлов имеют точно такие же характеристики. (3) Незначительные изменения в именах каталогов могут привести к успеху процесса; в первом случае из приведенного выше списка я заметил, что удаление одного из двух пробелов перед "Schlick" приводит к успеху, но добавление третьего по-прежнему не удается. Опять же, обратите внимание, что тысячи очевидно очень похожих каталогов не имеют никаких проблем. (4) После первой неудачной копии (из-за "Нет свободного места на устройстве") дальнейшие попытки копирования (того же или другого файла) фактически терпят неудачу из-за «ошибки ввода / вывода». Я не уверен, имеет ли это значение, но dmesg, похоже, не показывает абсолютно ничего, связанного с этим. (5) Это довольно детерминированное поведение, и я наблюдал его для одних и тех же каталогов более недели, и он много раз выживал, не подключая и не перемонтируя USB-диск.

Чтобы показать точку (2) выше, вот рабочий пример:

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"

Можно заметить, что здесь присутствуют акцентированные буквы, двойные пробелы и что общий путь к первому скопированному файлу здесь длиннее, чем для одного из неисправных каталогов:

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

Вот еще один странный пример того, что происходит. Это на самом деле работает нормально:

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)
    [...]

Единственная разница с первым примером заключается в том, что перед копированием я касаюсь случайного файла в каталоге. Затем копия работает, и (не показано в примере выше) я могу удалить файл, к которому прикоснулись, все, что осталось работоспособным. Но если я сразу удаляю файл TEST после прикосновения к нему, то последующее копирование завершается неудачно. Обратите внимание, что я пытался использовать эту технику для быстрого обхода сценария: несмотря на то, что он отлично работал на простых тестовых примерах, он не работает везде - увы, на данный момент у меня не так много информации.

Я понятия не имею, что происходит и что я могу сделать (опять же, если не считать изменения версии Ubuntu), чтобы обойти проблему.

0