web-dev-qa-db-ja.com

エラーのために外部ハードドライブにコピーできません:「無効または不完全なマルチバイトまたはワイド文字」

音楽をバックアップしたい外部USB HDがあります。

Rsyncまたはcpを使用しようとすると、ほとんどのファイルがコピーされますが、このエラーのために一部のファイルがコピーされません。

invalid or incomplete multibyte or wide character

どうすれば修正できますか?

参考のために、ソースドライブのマウント方法を次に示します。

 /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]

USB外部ドライブ(宛先)のマウント方法は次のとおりです。

 /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]

助けていただければ幸いです!

5
user2662680

好奇心any盛な人なら誰でもこれを解決しました。最初に、古いVFATドライブの文字セットがISO-8859-1(Windowsで非常に一般的)であると判断しました。次に、古い文字セットをUTF-8に変換するオプションを使用してrsyncコマンドを実行しましたが、これでうまくいきました。

例:

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

それが他の誰かを助けることを願っています!

4
user2662680

問題がシステムに固有の場合(たとえば、Windowsまたは他のGNU/Linuxディストリビューションで名前に特殊文字が含まれるファイルのコピーが機能する場合)、マウントコマンドの最後にオプションiocharset = utf8を追加することができます。これで問題は解決しました。

1
Amaranthe