您的位置:首页 > 运维架构 > Linux

Linux系统下挂载exFAT和NTFS格式硬盘的驱动安装和配置

2014-02-19 16:53 1356 查看
先说挂载exFAT格式的移动硬盘,最近刚刚做了个双系统,一个盘是Windows7,硬盘的格式是exFAT的,

想在Linux系统下面访问Windows7下面的文件,问题出现了:mount不了。

# mount –t exfat /dev/sda2 /mnt/d

mount: unknown filesystem type ‘exfat’

这是由于RedHat 6.0上无法识别exFAT格式的分区。

对于移动硬盘或者U盘,FAT32支持的文件不能大于4G,所以只能格式化成exFAT,

如下记录一下怎样在Linux下挂载exFat格式的各种硬盘.

1.安装

sudo apt-get install subversion scons libfuse-dev gcc

svn co http://exfat.googlecode.com/svn/trunk/ exfat-read-only

cd exfat-read-only

scons

sudo scons install

rm –rf exfat-read-only

2.挂载

sudo mount -t exfat -o iocharset=cp936 /dev/sda2 /mnt/d

3.卸载

sudo umount /mnt/d

 

下面是挂载NTFS格式的,

其中要使用一个开源软件NTFS-3g,它支持在Linux下面读写NTFS格式的分区。它非常的快速,同时也很安全。它支持Windows 2000、XP、2003和Vista,并且支持所有的符合POSIX标准的磁盘操作。ntfs-3g的目的是为了持续的发展,各硬件平台和操作系统的用户需要可靠的互通与支持ntfs的驱动,ntfs-3g可以提供可信任的、功能丰富的高 性能解决方案。经过了12年多的发展,ntfs-3g已经逐渐稳定。(官网翻译出来)

 

#wget http://tuxera.com/opensource/ntfs-3g_ntfsprogs-2011.4.12.tgz
编译安装ntfs-3g

# tar zxvf  ntfs-3g_ntfsprogs-2011.4.12.tgz

# cd ntfs-3g_ntfsprogs-2011.4.12

# ./configure

# make

# make install

mount文件

# fdisk -ll

... ....

Device Boot      Start         End      Blocks   Id  System

/dev/sda1   *           1       2600      204800   83  HPFS/NTFS

/dev/sda2            5223       1459*    75272557+   f  extFAT

/dev/sda3            ****        ****    37544960   83  Linux

/dev/sda4            700*        522*     4194304   82  Linux SWAP

... ....

通过上面的查看,我们知道/dev/sda1是NTFS格式

1. 我们要建一个挂载点的目录,比如是在/mnt/目录下建一个c 的目录:

# mkdir /mnt/c

2. 把/dev/sda1 挂载到/mnt/c 中,这样我们如果查看/dev/sda1磁盘内容时,就会在/mnt/c 中找得到

# mount -t ntfs-3g -o nls=utf8,umask=000 /dev/sda1 /mnt/c

开机分区自动挂载

应把一下命令放入/etc/fstab中

/dev/sda1 /mnt/c ntfs-3g umask=000,iocharset=utf8 0 0

/dev/sda2 /mnt/d exfat  umask=000,iocharset=cp936 0 0

# cp -r -f srcDir dstDir    //复制目录文件。

# rm -rf dstDir    //删除目录文件。

取消磁盘挂载:umount命令

# umount /mnt/c

# umount /mnt/d

 

注:mount -t 文件格式-o 选项参数 磁盘分区挂载点目录名

比如:mount -t vfat -o iocharset=utf8,umask=000 /dev/sda2 /mnt/d

再如:mount -t ntfs -o nls=utf8,umask=000 /dev/sda1 /mnt/c

-t ntfs 说明文件系统的格式是ntfs的;-o是选项 ,nls=utf8 ,意思是Native Language Support(本地语言支持)是utf8,也就是大家常说的语言编码,也可以换成iocharset=utf8;

RedHat Enterprise 6.0默认的语言编码就是utf8的,这样能显示出中文来;umask=000表示所有的用户组都可读可写,但因NTFS在Linux中写入不安全,所以只能读,不能写入.

############################################################################################################################3

CentOS系列一直没有默认支持使用exfat格式的大容量U盘。

可以通过添加fuse-exfat模块来支持。根据网上资料,整理如下:

1、下载fuse-exfat支持软件:

exfat支持是通过fuse模块的方式支持的,其项目地址是: https://code.google.com/p/exfat/  ,当前版本是:1.0.1。
目前exfat的支持已经是全功能支持,支持读写。

可以下载源代码包,并自行使用scons和gcc编译,也可以在rpmfusion下载源代码RPM,然后通过构建RPM来安装。这里采用构建RPM的方式(这样安装卸载都很方便)。

下载地址:http://download1.rpmfusion.org/free/el/updates/6/SRPMS/repoview/index.html

分别下载:fuse-exfat-1.0.1-1-el6.src.rpm 和 exfat-utils-1.0.1-1.el6.src.rpm

2、编译安装:

编译前,请先检查系统,如果系统中没有scons和gcc,请通过yum安装:

sudo yum install scons gcc

这个软件是fuse模块,编译需要fuse-devel包支持:

sudo yum install fuse-devel

下载后,切换到root用户:

$ sudo su -

然后安装源代码RPM:

# rpm -ivh fuse-exfat-1.0.1-1-el6.src.rpm exfat-utils-1.0.1-1.el6.src.rpm

在root的主目录下,会出现rpmbuild目录:

# cd ~/rpmbuild/SPECS

# rpmbuild -ba fuse-exfat.spec

# rpmbuild -ba exfat-utils.spec

构建完成后,即可在 ~/rpmbuild/RPMS里面找到生成的RPM(根据系统架构,分别在x86_64或i386目录下,其中名字中带有debuginfo的包不必安装):

# cd ~/rpmbuild/RPMS/x86_64

# rpm -ivh fuse-exfat-1.0.1-1.el6.x86_64.rpm exfat-utils-1.0.1-1.el6.x86_64.rpm

这样就安装完成了。

3、挂载:

可以通过以下命令来挂载exfat的U盘了:

# mount.exfat /dev/sdXn /mnt

其中sdXn中的X代表你的U盘设备名,n代表分区号,比如:/dev/sdb1这样。

此外,为了方便,你可以将以上安装在/usr/sbin下的命令在/sbin下做个符号链接:

# ln -s /usr/sbin/mount.exfat /sbin/mount.exfat

便于直接使用mount来安装:

# mount -t exfat /dev/sdXn /mnt

##########################################################################################################################3

CentOS 挂载NTFS分区的两种方法

第一种是安装内核模块,可到 http://sourceforge.net/projects/linux-ntfs/files/ 下载,需下载与你系统内核想对应的版本,使用uname -a 查看当前内核版本。安装后就可以使用mount -t ntfs /dev/sda1 /mnt 挂载了。这种方法有个缺点,就是挂载的ntfs分区是只读的。

另外一种是安装ntfs-3g,使用ntfs-3g挂载的分区就是可读写的了。可在终端下使用 yum install ntfs-3g 安装。如果找不到软件包,可能需要修改下更新源,编辑 /etc/yum.repos.d/CentOS-Base.repo ,将内容改为:

[base]

name=CentOS-5 – Base

#mirrorlist=http://mirrorlist.centos.org/?release=$releasever5&arch=$basearch&repo=os

#baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/

baseurl=http://ftp.sjtu.edu.cn/centos/5.3/os/$basearch/

gpgcheck=1

gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-centos6

#released updates

[update]

name=CentOS-5 – Updates

#mirrorlist=http://mirrorlist.centos.org/?release=4&arch=$basearch&repo=updates

baseurl=http://ftp.sjtu.edu.cn/centos/5.3/updates/$basearch/

gpgcheck=1

gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-centos5

#packages used/produced in the build but not released

[addons]

name=CentOS-5 – Addons

#mirrorlist=http://mirrorlist.centos.org/?release=4&arch=$basearch&repo=addons

baseurl=http://ftp.sjtu.edu.cn/centos/5.3/addons/$basearch/

##############################################################################################################3

2012-09-17 12:07

CentOS 5.2 挂载 exfat 和 ntfs

我是新手,搞什么都要好几天。记录一下,以备后用。

系统:CentOS 5.2

由于需要挂载 exfat 和 ntfs 格式的硬盘,所以开始动手查资料,网上大部分资料都是说安装fuse和ntfs-3g。这两个东西不是很难找。但发现,怎么装,都无法挂载。于是继续搜索,发现,还需要装 scons 、 libfuse-devel 和 subversion 。能yum当然好,但实操发现, scons 和 libfuse-devel 无法yum。继续G搜。在 pbone 找到所有rpm,再次开始安装。这次顺利安装完毕,但就是无法挂载,发现原来是 fuse 的问题(modprobe fuse,提示 FATA: Module fuse not found. ntfs-3g-mount: fuse device is missing, try 'modprobe fuse' as root)。再次G搜,发现可能是因为内核不支持 fuse 的问题。于是安装、更新 kernel 、重启、重新安装 fuse 、 ntfs-3g,终于搞定。

现将步骤总结如下:

1、yum install kernel*

2、yum update kernel*

3、重启,用新的 kernel 进入(我更新后的 kernel 为 2.6.18-308.13.1.el5 )

4、yum install scons  libfuse-devel subversion wget gcc make(因为我无法全部通过 yum 安装,所以 scons 和 libfuse-devel 是G搜的

5、svn co http://exfat.googlecode.com/svn/trunk/ exfat-read-only (由于我是代理上网的,所以还设置了 svn 的代理,具体设置文件在  /root/.subversion/server,在 [global] 字段添加 http-proxy-host 和 http-proxy-port)

6、cd exfat-read-only

7、scons

8、scons install

9、如果愿意,可以删掉 exfat-read-only文件夹

10、wget http://sourceforge.net/projects/fuse/files/fuse-2.X/2.9.1/fuse-2.9.1.tar.gz (尝试 yum fuse ,始终未果,所以下载)

11、wget http://tuxera.com/opensource/ntfs-3g_ntfsprogs-2012.1.15.tgz (尝试 yum ntfs-3g ,始终未果,所以下载)

此处需特别说明,一定要先安装 fuse ,再安装 ntfs-3g

7、tar zxvf fuse-2.9.1.tar.gz

     cd fuse-2.9.1

     ./configure && make && make install

8、tar zxvf ntfs-3g_ntfsprogs-2012.1.15.tgz

     cd ntfs-3g_ntfsprogs-2012.1.15

     ./configure && make && make install

9、modprobe fuse
10、mount -t ntfs-3g

       mount -t exfat

成功。

写入启动自动挂载:

11、修改 /etc/fstab 实现自动挂载,添加:
/dev/sd** /mnt/** ntfs-3g defaults 0 0
/dev/sd** /mnt/** exfat defaults 0 0
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: