> CentOS > CentOS故障 >

centos挂载ntfs格式的U盘或移动硬盘的会出错

本文整理自51CTO上fine102的博客
centos挂载ntfs格式的优盘或者移动硬盘的时候会出错,这时候需要安装ntfs-3g解决。

NTFS-3G的目的是为那些用户需要与NTFS可靠互通的硬件平台和操作系统提供可信任的、功能丰富的高性能解决方案。
更多信息请参阅NTFS-3G主页:http://www.ntfs-3g.org
2. 安装NTFS-3G
2.1 系统环境
redhat rh5 (kernel 2.6.18-8.el5)
2.2 软件及支持库
NTFS-3G http://www.ntfs-3g.org
FUSE http://fuse.sourceforge.net
2.3 软件下载及安装
2.3.1 安装FUSE
下载源码包:
wget http://nchc.dl.sourceforge.net/sourceforge/fuse/fuse-2.7.1.tar.gz
解压源码包:
tar zxvf fuse-2.7.1.tar.gz
配置编译环境:
cd fuse-2.7.1
./configure
编译:
make
安装:
make install
2.3.2 安装NTFS-3G
下载源码包:
wget http://www.ntfs-3g.org/ntfs-3g-1.1104.tgz
解压源码包:
tar zxvf ntfs-3g-1.1104.tgz
配置编译环境:
./configure
编译:
make
安装:
make install
3. 使用NTFS-3G
正确安装后,我们需要通过ntfs-3g来加载NTFS分区。
3.1 获得NTFS分区设备名
执行下面的命令
fdisk -l | grep NTFS
结果如下所示:
/dev/sdb1 1 10443 83883366 7 HPFS/NTFS
其中第一个字段/dev/sdb1即为所需要的分区设备名
3.2 建立装载点
mkdir /mnt/ntfs-p1 建立个目录
如果需要,请给予特定的访问权限
chmod 755 /mnt/ntfs-p1
3.3 临时装载NTFS分区
可以使用下面的命令以读写方式临时装载一个NTFS分区到装载点
mount -t ntfs-3g
其中:
—— NTFS所在分区的设备名,如3.1中的/dev/sdb1
—— 装载点,如3.2中的/mnt/ntfs-p1
例如:
mount -t ntfs-3g /dev/sdb1 /mnt/ntfs-p1 或者: ntfs-3g /dev/sdb1 /mnt/ntfs-p1
更多的选项及例子请用下面的命令参见mount命令和ntfs-3g的文档
man mount
man ntfs-3g
3.4 系统启动时装载NTFS分区
编辑/etc/fstab
vi /etc/fstab
在文件最后增加如下格式的行
ntfs-3g defaults 0 0
其中:
—— NTFS所在分区的设备名,如3.1中的/dev/sdb1
—— 装载点,如3.2中的/mnt/ntfs-p1
例如:
/dev/sdb1 /mnt/ntfs-p1 ntfs-3g defaults 0 0
保存文件后重启系统或简单的执行下面的命令,即可装载NTFS分区到指定的装载点
mount -a


--------------------------------------------------------------------------------

上面介绍的一般是双系统下centos中挂载ntfs,实现读取windows文件的功能,下面介绍的是挂载优盘的方法。
与挂载硬盘类似,安装好ntfs-3g。

创建所要挂载的路径,将硬盘挂载到桌面的temp文件夹下
mkdir /home/temp
查看硬盘所在的位置(会显示路径,我的是在/dev/sdb路径下)
fdisk -l
挂载
mount -t ntfs-3g /dev/sdb /home/temp/
解挂
umount /home/temp/


--------------------------------------------------------------------------------

注意问题:
1.有时候,挂载优盘不成功,常见的原因是上次挂载后没有顺利解挂,导致重新挂载时与之前的挂载点冲突.
解决方法为:(1)df -k 命令查看已经挂载的磁盘情况,若的确已经挂载,利用解挂命令进行解挂,然后重新挂载。(2)根据提示强行挂载,也就是在后面加force。
2.挂载好硬盘或者优盘后,常常出现不能在移动硬盘或者优盘创建中文文件,也不能对中文文件进行复制。
错误提示:“………………:无效或不完整的多字字节或宽字节”
解决方法:
查看系统编码:在mount时加上系统编码就可以。
具体如下:

# echo $LANG  //查看编码

显示如下:

zh_CN.UTF-8
1
在mount后面加上编码:

# mount -t ntfs-3g /dev/sdb /home/temp/ -o iocharset=utf8
1
这样就行了。

(责任编辑:IT)