'ไม่มีพื้นที่เหลือบนอุปกรณ์' ไม่ถูกต้องใน Ubuntu และ NTFS สำหรับไดเรกทอรีและชื่อไฟล์ที่หายาก


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

นั่นคือฉันเพียงต้องการสร้างเส้นทางที่ลึกซ้ำและคัดลอกไฟล์ที่ถูกต้องจากรูทของอุปกรณ์ แน่นอนปัญหาคือมีเนื้อที่ว่างบนดิสก์มาก (100s of GB)

ตอนนี้มันเป็นเรื่องสำคัญที่จะต้องพูดถึงว่าฉันไม่สามารถทำให้เส้นทางเรียบง่ายขึ้นได้เพราะในทางปฏิบัติชื่ออื่นจะใช้ได้ดี โดยเฉพาะอย่างยิ่งฉันค้นพบปัญหาในขณะที่เรียกใช้สคริปต์ Perl ซึ่งคัดลอกบางส่วนของข้อมูล GB และจากไดเรกทอรีหลายพันรายการที่คล้ายกับด้านบนมีเพียงโหลเท่านั้นที่มีปัญหา คำพูดในเปลือก):

/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) แม้ว่าส่วนใหญ่เหล่านี้จะมีอักขระที่ไม่ใช่ UTF-8 ASCII และอักขระพิเศษเล็กน้อยเช่นอัญประกาศเดี่ยวไดเรกทอรีและแฟ้มที่สร้างสำเร็จอื่น ๆ ส่วนใหญ่มีลักษณะเหมือนกันทุกประการ (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) เพื่อหลีกเลี่ยงปัญหา


1
เป็นไปได้หรือไม่ที่สิ่งเหล่านี้มีอักขระที่ไม่พิมพ์ซึ่งไม่อนุญาต คุณพูดถึงการลบ "ช่องว่าง" และปัญหาได้รับการแก้ไขสำหรับไฟล์นั้น แต่การเพิ่มช่องว่างอีกอันไม่สามารถแก้ไขได้ ... เป็นไปได้หรือไม่ว่าพื้นที่ที่คุณลบไม่ได้เป็นจริง space (ansi 32) เลยเหรอ? มันจะอธิบายกรณีแปลก ๆ ครั้งสุดท้ายและเหตุผลอื่น ๆ เด่นชัด เส้นทางที่คล้ายกันทำงานได้ดี หากเป็นเช่นนั้นคุณสามารถ regex แทนที่อักขระทั้งหมดยกเว้นตัวอักษร word / allow-symbol chars ในแต่ละชื่อไฟล์ / พา ธ ด้วยช่องว่างเดียวในสคริปต์ของคุณเพื่อสร้างพา ธ ปลายทางสำหรับใช้เมื่อทำการคัดลอก
Cliff Armstrong

คลิฟความคิดที่ยอดเยี่ยมขอบคุณ น่าเสียดายที่ฉันเพิ่งตรวจสอบและพื้นที่ทั้งหมดเป็นพื้นที่ปกติ นอกจากนี้ทุกอย่างเป็นไปตามมาตรฐาน UTF-8 ดังนั้นมันควรจะทำงานได้กับช่องว่างที่ไม่แตก ฯลฯ ในมุมมองของฉัน แต่อย่างไรก็ตามไม่มีผู้ใดในต้นเหตุที่ฉันเพิ่งตรวจสอบ
Paolo

อาจเกี่ยวข้องกับสิ่งนี้: stackoverflow.com/a/15971467/2625090 . ชื่อไฟล์ทดสอบของคุณ '/ media / paolo \ # # 3 / audio / mp3 / ... ' มีความยาว 303 ตัวอักษรดังนั้นแบ็กเอนด์ ntfs อาจโยนข้อยกเว้นสำหรับเส้นทางที่ยาวเกินไปและ Ubuntu อาจแปลว่าเป็น ข้อผิดพลาดไม่มีที่ว่างเหลือ
arielnmz

@ arelnmz: ฉันไม่คิดว่ามันเป็นปัญหาความยาวเพราะฉันมีชื่อเส้นทางที่ยาวกว่าซึ่งทำงานได้อย่างสมบูรณ์แบบ พวกเขามีทั้งรวมอีกต่อไป (ดู 379 ในตัวอย่างข้างต้นซึ่งไม่มีปัญหา) และส่วนประกอบที่ยาวที่สุดของเส้นทาง (ดูตัวอย่างข้างต้นแม้ว่าจะไม่ชัดเจนที่จะเห็นได้ทันที) ไม่ฉันไม่คิดว่าความยาวอาจเป็นปัญหาได้ - มันเป็นข้อสันนิษฐานแรกของฉันเพราะฉันมักจะมีปัญหาเรื่องการเรียงลำดับในอดีต
Paolo

อาจเป็นเพียงข้อผิดพลาดที่ไม่เกี่ยวข้องที่ถูกแปลเป็นข้อผิดพลาดที่ไม่มีช่องว่าง
arielnmz
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.