Tidak dapat menyalin ke hard drive eksternal karena kesalahan: "multibyte atau lebar karakter tidak valid atau tidak lengkap"

5

Saya memiliki USB HD eksternal yang ingin saya cadangkan musiknya.

Ketika saya mencoba menggunakan rsync atau cp, sebagian besar file menyalin, tetapi beberapa tidak karena kesalahan ini:

invalid or incomplete multibyte or wide character

Bagaimana cara saya memperbaikinya?

Untuk referensi di sini adalah bagaimana drive sumber dipasang:

 /dev/sdb3 on /media/Music type vfat
 (rw,nosuid,nodev,noexec,noatime,uid=1000,gid=1000,fmask=0022,dmask=0022,codepage=437,iocharset=iso8859-1,shortname=mixed,errors=remount-ro,user)
 [Music]

Berikut adalah cara drive eksternal USB (tujuan) dipasang:

 /dev/sdf1 on /media/username/Seagate Backup Plus Drive type fuseblk
 (rw,nosuid,nodev,relatime,user_id=0,group_id=0,default_permissions,allow_other,blksize=4096,uhelper=udisks2)
 [Seagate Backup Plus Drive]

Bantuan apa pun akan dihargai!

pengguna2662680
sumber
1
Anda mungkin memiliki file dengan nama buruk .. Anda harus melihat mana di antara mereka yang memberikan Anda kesalahan dan memeriksa nama untuk masalah seperti karakter khusus atau jalur yang terlalu panjang ... Saya telah menyalin masalah di Windows karena path dan nama file terlalu panjang.
John Orion
File-file tersebut ok (setidaknya di linux). Yang menghasilkan kesalahan cenderung file bahasa asing. Tapi bukankah harus ada cara untuk memperbaikinya?
user2662680
mungkin aksen atau sesuatu seperti itu .. Anda mungkin harus mengganti nama file-file itu tanpa aksen atau karakter khusus ... cobalah .. tidak ada salahnya. menemukan salah satu file yang Anda punya masalah menyalin dan mencoba mengubah nama untuk menguji atau sesuatu yang sederhana dan melihat apakah Anda dapat menyalinnya tanpa kesalahan .. jika Anda dapat maka itu ada hubungannya dengan nama dan saya telah melihat bahwa pada pasangan saya dengan judul Spanyol.
John Orion
Mengganti nama file akan sulit. Saya memiliki perpustakaan banshee besar yang dipetakan ke nama file tertentu dan saya akan sangat curiga mengubah nama file jika memungkinkan.
user2662680
"File-file tersebut ok (setidaknya di linux)." tentu, tapi mengapa berkomentar seperti itu jika sistemnya "vfat"? Mereka tidak baik untuk "vfat". Anda perlu mengubah disk menjadi "ext" atau mengubah file ke apa yang "vfat" terima sebagai valid.
Rinzwind

Jawaban:

4

Untuk siapa pun yang penasaran saya menyelesaikan ini. Pertama saya menentukan bahwa charset pada drive VFAT lama ISO-8859-1(sangat umum untuk Windows). Saya kemudian menjalankan rsyncperintah dengan opsi untuk mengkonversi charset lama ke UTF-8dan itu berhasil.

Contoh:

rsync -vaW --size-only --iconv=ISO-8859-1,utf-8 /media/Music/* '/media/username/Seagate Backup Plus Drive/Backup - Music/Music' > ~/rsynclog.txt

Semoga itu bisa membantu orang lain!

pengguna2662680
sumber
Nama musik dapat memiliki masalah selain karakter aneh, seperti spasi, dan berpotensi lebih buruk, tanda kurung, (atau perintah bash lainnya). Mengekspos mereka di baris perintah tanpa penawaran yang tepat berisiko. Semoga salinan tersebut menggunakan nama direktori yang sudah diperiksa sebelumnya untuk masalah tersebut.
ubfan1
Ini adalah solusi yang jauh lebih baik daripada mengganti nama file - filesystem modern harus memungkinkan karakter internasional, dan jika Anda mencadangkan ke sistem file kuno Anda harus dapat membuatnya bisu. Harap diingat bahwa jika Anda harus menyalin kembali ke aslinya (HD crash, atau Anda membuat pembaruan pada salinan), Anda akan berakhir dengan nama file bodoh.
andrew lorien
1

Jika masalahnya khusus untuk sistem Anda (mis. Salinan file dengan karakter khusus dalam namanya berfungsi di Windows atau pada distribusi GNU / Linux lainnya) Anda mungkin ingin menambahkan opsi iocharset = utf8 di akhir perintah mount Anda. Itu memecahkan masalah bagi saya.

Amaranthe
sumber
Saya sangat menyukai jawaban ini.
ulatekh