想在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中写入不安全,所以只能读,不能写入.