您的位置:首页 > 其它

安装ntfs-3g后插上移动硬盘仍提示“无法识别的文件系统”,无法自动挂载而只能手动挂载?已解决

2013-03-10 21:28 1361 查看
linux可以自动挂载热插拔的存储设备。

当检测到磁盘插入时,linux会获得这个磁盘上的文件系统信息,假如检测到了磁盘上的文件系统是 "abc" 格式,系统就会在 /sbin 下找mount.abc程序,如果找到,就用这个程序来挂载磁盘;找不到,则会提示无法识别的文件系统。

安装ntfs-3g后,可以看到 /sbin 目录下已经有 mount.ntfs-3g 可执行文件,但是并没有 mount.ntfs,因此当系统检测到ntfs格式的分区后仍然提示无法识别,(系统认名不认盘,它只认识ntfs-3g,而不认识 ntfs)。

这样问题就好解决了。既然mount.ntfs-3g可以挂载ntfs分区,那我们直接让它改名就行了!但是用mv来重命名并不是什么好的做法,因为这样一来,系统又不认识ntfs-3g了。所以我们最好留着3g,把mount.ntfs-3g复制一份再命名成mount.ntfs即可。但还有一个更好的做法,更省事儿省空间,我们直接把mount.ntfs写成shell脚本,这个脚本只占几十个字节。在脚本中用mount.ntfs-3g来执行挂载,我就是按这个方法做的。

脚本内容如下(记得加可执行权限):

#!/bin/sh

/sbin/mount.ntfs-3g $@ #别忘了传进来的参数。这里mount.ntfs-3g必须指定绝对路径,我试了,不指定会出错,不知为何。

不管用哪种方法,做好mount.ntfs这个文件之后,这时再插进ntfs格式的移动硬盘,会发现系统已经可以自动挂载ntfs分区了!而当我们高兴的打开这些磁盘时,就会发现情况不妙:糟糕!怎么丢了那么多文件!(当然如果你的移动硬盘里没有中文目录,这时你还不会受到惊吓)

我刚开始就被吓了一跳,两年来攒的各种软件和自己的代码都在里面啊!我赶紧重新手动挂载了一下我的硬盘分区,发现有惊无险,文件们都还在。这时仔细一看才发现,丢失的内容都是中文目录,后来经谷歌大仙儿指点,知道还需要进行语言设置,但直接用mount.ntfs-3g命令无法指定语言,于是索性在脚本里又用了一次mount命令。修改后的脚本如下:

#!/bin/sh

mount -t ntfs-3g -o locale=zh_CN.UTF-8 $@ #增加了locale选项。这里mount可以不指定绝对路径,同样不知为何。

到这里总算搞定了,ntfs分区已可以正常挂载使用。但还有一个问题不是太明白,当在命令行里手动挂载ntfs分区时,直接 "mount -t ntfs-3g .... "即可,不用指定locale;但在mount.ntfs脚本中,就必须指定,否则中文目录都看不见。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐