Ubuntu16.04环境下U盘挂载时的中文文件名乱码解决方案

一、问题的起因

    下午在用ssh挂载U盘到Ubuntu系统后,准备备份git库时,发现了挂载的U盘目录下中文文件乱码的问题:

yuhuiliu@sinc-server:~$ sudo mount dev/sdd4 vslyu-flash/
yuhuiliu@sinc-server:~$ ls /media/vslyu-flash/
??
??
???
????
??????
??????-???
??????????&??
2017.fall.???&?????
2018?SINCLab????????
! 360U????????
Android+App+????+???+-+????.rar
??????????????????.doc
FBMC_F402_v1
FBMC_LYH
FBMC_LYH -???????
FBMC_LYH  -?????FIFO??????
FBMC-OFDM??????.docx
FBMC-OFDM??????.xlsx
fbmc_receive
FBMC_SISO_demo
FBMC_SISO_demo.rar
fbmc_transmit
?????gnuradio
L003UsingService
LOST.DIR
???????_??_M201671934.doc
OFDM_SISO
OFDM_SISO????
??????--??_???.pdf
??????????????????.pdf
???.png
ServiceGoogleExample
SINCLab-2018????????????????+??(2018.03.09).pdf
System Volume Information
vslyu-SINC-Document
weekly-report
yuhuiliu@sinc-server:~$ #export LC_ALL=zh_CN.GBK
yuhuiliu@sinc-server:~$ #export.GBK
yuhuiliu@sinc-server:~$ ls /media/vslyu-flash/
??
??
???
????
??????
??????-???
??????????&??
2017.fall.???&?????
2018?SINCLab????????
! 360U????????
Android+App+????+???+-+????.rar
??????????????????.doc
FBMC_F402_v1
FBMC_LYH
FBMC_LYH -???????
FBMC_LYH  -?????FIFO??????
FBMC-OFDM??????.docx
FBMC-OFDM??????.xlsx
fbmc_receive
FBMC_SISO_demo
FBMC_SISO_demo.rar
fbmc_transmit
?????gnuradio
L003UsingService
LOST.DIR
???????_??_M201671934.doc
OFDM_SISO
OFDM_SISO????
??????--??_???.pdf
??????????????????.pdf
???.png
ServiceGoogleExample
SINCLab-2018????????????????+??(2018.03.09).pdf
System Volume Information
vslyu-SINC-Document
weekly-report

    如上所示:中文的字符一律变成了“?”号;但是同时查看其它的非挂载U盘的文件目录,发现中文字符却能够显示:

yuhuiliu@sinc-server:~$ ls /home/sinc-admin/
55         frameErrorRate_2.mat       Music           Untitled0.ipynb
cc1        frameErrorRate_test_2.mat  myipnbcert.pem  Videos
cwj        gcc                        NewFolder       WT
CXW        INSTALL                    Pictures        未命名文件夹
Desktop    matlab_crash_dump.15695-1  Public
Documents  matlab_crash_dump.5278-1   Templates
Downloads  matlab_crash_dump.5597-1   test.sh

    以上的验证说明:并不是ubuntu系统或者ssh终端不支持中文字符的显示,而很有可能是U盘本身的问题。

   二、问题的解决

    经过网上的查找,发现是U盘文件格式的问题,参考博客https://www.cnblogs.com/zhouqinxiong/p/3497293.html解决如下:

    1、卸载硬盘

yuhuiliu@sinc-server:~$ sudo umount /dev/sdd4
umount: /media/vslyu-flash: target is busy
        (In some cases useful info about processes that
         use the device is found by lsof(8) or fuser(1).)
    这时发现sdd4这块设备在被其它的程序使用,根据命令运行的提示,使用fuser命令查找出正在访问vslyu-flash文件夹的进程,进行查杀,参照https://blog.csdn.net/lengyue1084/article/details/51477872,解决如下:
yuhuiliu@sinc-server:~$ fuser -m /media/vslyu-flash/
/media/vslyu-flash:  77813c
yuhuiliu@sinc-server:~$ ps aux|grep 1338
yuhuiliu  79649  0.0  0.0  15980   988 pts/37   S+   17:03   0:00 grep --color=auto 1338
yuhuiliu@sinc-server:~$ fuser -m /media/vslyu-flash/
/media/vslyu-flash:  77813c
yuhuiliu@sinc-server:~$ ps aux|grep 77813
yuhuiliu  77813  0.0  0.0  25432  4816 pts/24   Ss+  16:33   0:00 bash
yuhuiliu  79897  0.0  0.0  15980   988 pts/37   S+   17:07   0:00 grep --color=auto 77813
yuhuiliu@sinc-server:~$ sudo kill -9 77813
yuhuiliu@sinc-server:~$ sudo umount /media/vslyu-flash
yuhuiliu@sinc-server:~$
    2、重新挂载
    成功用umount命令卸载之后,指定U盘的文件系统为vfat,编码格式为utf8,使用mount命令重新挂载:
yuhuiliu@sinc-server:~$ sudo umount /media/vslyu-flash
yuhuiliu@sinc-server:~$ mount /dev/sdd4 /media/vslyu-flash/ -t vfat -o iocharset=utf8
mount: only root can use "--options" option
yuhuiliu@sinc-server:~$ sudo mount /dev/sdd4 /media/vslyu-flash/ -t vfat -o iocharset=utf8
    使用ls -l命令查看文件信息,此时中文字符能正常显示
yuhuiliu@sinc-server:~$ ls -l /media/vslyu-flash/
总用量 121872
drwxr-xr-x  4 root root     8192 Oct 15  2017 2017.fall.奖学金&助学金申请



    

猜你喜欢

转载自blog.csdn.net/vslyu/article/details/80339249