2012年10月6日星期六

自动挂载存储卡的问题

弄了一个4GB的Micro SD卡,可以把手机上2GB的升级了。把手机用USB存储模式连接到电脑,SD卡没有自动挂载,就用mount /dev/sdb1 /mnt挂载了,然后用tar把卡上的内容打包。把新卡换到手机上,再用tar把打包的内容释放到新卡上,但是发现原来的中文文件名字,在压缩包里面显示的是一串问号?,导致解压失败。

因为存储卡是VFAT文件系统的,想起默认的mount会有编码问题,但是懒得查mount选项了,就想搞定自动挂载,因为Ubuntu会对VFAT的移动设备自动挂载,会设置一系列参数,不会出现编码问题。

在Ubuntu的官方文档看到自动挂载udisks实现的,我只好手动试试:
/usr/bin/udisks --mount /dev/sdb1
结果出错,说是
Mount failed: Error mounting: mount exited with exit code 1: helper failed with:
mount: only root can mount /dev/sdb1 on /mnt/pi
看到那个/mnt/pi就知道原来是我在fstab文件里面写了/dev/sdb1的条目,所以udisks没有自动挂载,把这个条目注释后,就可以自动挂载了,而且也没有文件名乱码了。自动挂载的参数是:
/dev/sdb1 on /media/595B-BB30 type vfat (rw,nosuid,nodev,uid=1000,gid=1000,shortname=mixed,dmask=0077,utf8=1,showexec,flush,uhelper=udisks)
自动挂载设定了好多有用的参数,比手动挂载方便多了,utf8=1应该就是处理编码问题的选项。

没有评论:

发表评论