在CentOS 中支持exFAT与NTFS

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

下载后,安装源代码RPM:
$ rpm -ivh fuse-exfat-1.0.1-1-el6.src.rpm exfat-utils-1.0.1-1.el6.src.rpm
在主目录下,会出现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
$ sudo 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盘了:
$ sudo mount.exfat /dev/sdXn /mnt
其中sdXn中的X代表你的U盘设备名,n代表分区号,比如:/dev/sdb1这样。
此外,为了方便,你可以将以上安装在/usr/sbin下的命令在/sbin下做个符号链接:
$ sudo ln -s /usr/sbin/mount.exfat /sbin/mount.exfat
便于直接使用mount来安装:
$ sudo mount -t exfat /dev/sdXn /mnt

 

NTFS:

一、安装ntfs-3g模块

1. 使用yum的安装方法:

请确定你已经安装了rpmforge软件库的源。请参考:RHEL/CentOS 5.5使用第三方软件库

然后安装下列组件。

yum install fuse ntfs-3g -y

注:如果你在使用 CentOS 5.3 或更旧版本,那么你需要安装来自 ELRepo 的 kmod-fuse。

2. 使用ntfs-3g官方源码编译安装的方法:

ntfs-3g下载页面:http://www.tuxera.com/community/ntfs-3g-download/

安装步骤:

wget http://tuxera.com/opensource/ntfs-3g_ntfsprogs-2011.4.12.tgz

tar zxvf ntfs-3g_ntfsprogs-2011.4.12.tgz

cdntfs-3g_ntfsprogs-2011.4.12

./configure

make

make install

以上两种方法二选一,yum只适用于Redhat系,编译安装适用于所有Linux发行版

二、挂载NTFS文件系统

假设你的NTFS文件系统是 /dev/sda1 而你将会把它挂载在 /mnt/windows/c,请执行以下步骤。

1. 创建挂载点。(一般建议挂在mnt目录里)

mkdir /mnt/windows/c

2. 挂载NTFS分区:

mount -t ntfs-3g /dev/sda1 /mnt/windows/c

注:这里的sda1是指SATA或SCSI硬盘的第一个分区,如果是老式的IDE硬盘,会是hda1,具体请用fdisk -l查看。如偶的一台机:

[root@CentOS ~]# fdisk -l

Disk /dev/sda: 164.6 GB, 164696555520 bytes
255 heads, 63 sectors/track, 20023 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

Device Boot Start End Blocks Id System
/dev/sda1 * 1 2550 20482843+ 7 HPFS/NTFS
/dev/sda2 2551 20022 140343840 f W95 Ext’d (LBA)
/dev/sda5 5101 8924 30716248+ 7 HPFS/NTFS
/dev/sda6 8925 12748 30716248+ 7 HPFS/NTFS
/dev/sda7 12749 16572 30716248+ 7 HPFS/NTFS
/dev/sda8 16573 20022 27712093+ 7 HPFS/NTFS
/dev/sda9 2551 2584 273042 83 Linux
/dev/sda10 2585 4928 18828148+ 83 Linux
/dev/sda11 4929 5016 706828+ 82 Linux swap / Solaris

Partition table entries are not in disk order

3. 如果想开机系统启动时自动挂载NTFS分区,编辑vim /etc/fstab文件,加入类似如下内容:

只读式挂载:/dev/sda1 /mnt/windows/c ntfs-3g ro,umask=0222,defaults 0 0

读写式挂载:/dev/sda1 /mnt/windows/c ntfs-3g rw,umask=0000,defaults 0 0
或者: /dev/sda1 /mnt/windows/c ntfs-3g defaults 0 0

如偶的/etc/fstab文件如下:

LABEL=/ / ext3 defaults 1 1
LABEL=/boot /boot ext3 defaults 1 2
tmpfs /dev/shm tmpfs defaults 0 0
devpts /dev/pts devpts gid=5,mode=620 0 0
sysfs /sys sysfs defaults 0 0
proc /proc proc defaults 0 0
LABEL=SWAP-sda11 swap swap defaults 0 0

/dev/sda1 /mnt/windows/c ntfs-3g ro,umask=0222,defaults 0 0
/dev/sda5 /mnt/windows/e ntfs-3g defaults 0 0
/dev/sda6 /mnt/windows/f ntfs-3g defaults 0 0
/dev/sda7 /mnt/windows/g ntfs-3g defaults 0 0
/dev/sda8 /mnt/windows/h ntfs-3g defaults 0 0

其他注意问题:

从 CentOS 5.4 起(2.6.18-164 或更新的内核),fuse 模块已经包含在内核里。因此,已不再需要 dkms 及dkms-fuse。如果你先前安装了 dkms-fuse,请用 yum remove dkms-fuse 命令把它卸装。请注意 CentOS4.x 的用户需要这两个组件。

使用 centosplus 内核的用户

由CentOS-5.3开始,centoplus内核没有启用NTFS模块。这是由于5.3内的 NTFS 是不能运行的。详情请参阅https://bugzilla.redhat.com/show_bug.cgi?id=481495。如果你想使用来自 CentOS内核的NTFS模块,你可以安装来自ELRepo的kmod-ntfs。但这个模块没有ntfs-3g好,只提供极度有限的写入功能。