linux下ntfs硬盘的加载

来源:互联网 发布:怎么装修手机淘宝店铺 编辑:程序博客网 时间:2024/05/20 22:03

linux下ntfs硬盘的加载

转自:http://blog.csdn.net/qingzilantu/article/details/6313592

问题:
     # mount –t ntfs /dev/sdb1 /mnt/
     mount: unknown filesystem type ‘ntfs’
     这是由于CentOS release 5.5(Final)上无法识别NTFS格式的分区。

解决办法:
     通过使用 ntfs-3g 来解决。
     打开ntfs-3g的下载点http://www.tuxera.com/community/ntfs-3g-download/,将最新稳定(当前最新版本为ntfs-3g-2011.1.15 )下载到CentOS,执行以下命令安装:

     编译安装 ntfs-3g:

# tar zxvf  ntfs-3g-2011.1.15.tgz
# cd ntfs-3g-2011.1.15
#./configure
#make
#make install
已经安装完成啦!!

1. mount命令

mount -t 文件格式 -o 选项参数 磁盘分区 挂载点
比如:mount -t vfat -o iocharset=utf8,umask=000 /dev/hda5 /mnt/D
再如:mount -t ntfs -o nls=utf8,umask=000 /dev/hdd1 /mnt/sysc
但到这里出现了问题,首先是我的系统不识别该文件格式NTFS,其次是你会问:"你怎么知道外挂的那个系统盘C就是hdd1?"
是阿,请继续...

判断哪个分区是NTFS格式,加载NTFS分区;

[root@localhost kalon]# /sbin/fdisk -l

Disk /dev/sda: 120.0 GB, 120034123776 bytes
255 heads, 63 sectors/track, 14593 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x21d3ce88

   DeviceBoot     Start        End     Blocks   Id System
/dev/sda1                   26     204800   83 Linux
Partition 1 does not end on cylinder boundary.
/dev/sda2           5223      14593   75272557   W95 Ext'd (LBA)
/dev/sda3             26       4700   37544960   83 Linux
/dev/sda4           4700       5222    4194304   82 Linux swap / Solaris
/dev/sda5           5223      14593   75272526    HPFS/NTFS

Partition table entries are not in disk order

Disk /dev/sdb: 160.0 GB, 160041885696 bytes
255 heads, 63 sectors/track, 19457 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0xf0b1ebb0

   DeviceBoot     Start        End     Blocks   Id System
/dev/sdb1                 2611   20972826    HPFS/NTFS
/dev/sdb2           2612      19456   135307462   W95 Ext'd(LBA)
/dev/sdb5           2612       5875    26218048  HPFS/NTFS
/dev/sdb6           5876      15539   77626048   HPFS/NTFS
/dev/sdb7          15540      19456   31463271    HPFS/NTFS


..............................................................................................................

现在进入NTFS的分区的加载过程;通过上面的查看,我们知道/dev/sda5是NTFS格式的;

1]我们要建一个挂载点的目录,比如是在/mnt/目录下建一个 win1 的目录:
[root@localhost kalon]# mkdir /mnt/win1

2]把/dev/sda5 挂载到 /mnt/win1 中,这样我们如果查看/dev/sda5磁盘内容时,就会在/mnt/win1中找得到;
[root@localhost kalon]# mount -t ntfs-3g -o nls=utf8,umask=000/dev/sda5 /mnt/win1

注:-t ntfs-3g 说明文件系统的格式是ntfs的;
-o是选项 ,nls=utf8 ,意思是Native LanguageSupport(本地语言支持)是utf8,也就是大家常说的语言编码,也可以换成iocharset=utf8;
Fedora core 4.0 默认的语言编码就是utf8的,这样能显示出中文来;
umask=000表示所有的用户组都可读可写,但因为NTFS在Linux中写入不安全,所以只能读,不能写入;

是不是挂载好了呢?....

2.df -lh 磁盘使用情况命令

>>[root@localhost kalon]# df-lh

文件系统             容量  已用  可用 已用%% 挂载点
/dev/sda3             36G  4.4G  30G  13% /
tmpfs               1012M  1.7M1010M   1% /dev/shm
/dev/sda1            194M   24M 161M  13% /boot

/dev/sda5             72G  1.4G  71G   2% /mnt/win1
..........................说明已挂载好,可以cd /mnt/sysc/去看看了,余下的我就不多说了.................................
............................................................................................................................................................


开机分区自动挂载:应把以下命令放入/etc/fstab中
/dev/sda5 /mnt/win1ntfs-3g umask=000,iocharset=utf8 0 0
>>cp -r -f srcDir dstDir//复制目录文件
>>rm -rf dstDir //删除目录文件
>>.......


2.umount命令

如果想卸载已经挂载好的目录或盘符,可输入以下命令:

[root@localhost kalon]# umount /mnt/win1



以下来自另一文


NTFS-3G(百度百科)

转自:http://baike.baidu.com/link?url=Rqa4NI4_iyLx26fq2Ffc6RdAvrCgeoYyF7F2XpXVmnuJ-otWlUyStB0-Xyk0tE5NKgOqFQ34TxFD9P7DVKDi3q

NTFS-3G 是一个开源的软件,可以实现 Linux、Free BSD、Mac OSX、NetBSD 和 Haiku 等操作系统中的NTFS 读写支持。它可以安全且快速地读写 Windows 系统的 NTFS 分区,而不用担心数据丢失。

使用技巧

1. 首先得到NTFS分区的信息
sudo fdisk -l | grep NTFS

2. 设置挂载点,用如下命令实现挂载
mount -t ntfs-3g

例如得到的NTFS分区信息为/dev/sdb1,挂载点设置在/mnt/ntfs_disk下,可以用
mount -t ntfs-3g /dev/sdb1 /mnt/ntfs_disk
或者直接用
ntfs-3g /dev/sdb1 /mnt/ntfs_disk

3. 如果想实现开机自动挂载,可以在/etc/fstab里面添加如下格式语句

ntfs-3g silent,umask=0,locale=zh_CN.utf8 0 0
这样可以实现NTFS分区里中文文件名的显示。

4. 卸载分区可以用umount实现,用
umount
或者
umount


安装

1. 安装FUSE module

NTFS-3G依赖FUSE的支持,所以先解压安装FUSE

tar -xvzf fuse-***.tar.gz
cd fuse-***
./configure
make
make install

2. 解压安装NTFS-3G
tar -xvzf ntfs-3g-***.tar.gz
cd ntfs-3g-***
./configure
make
make install

之后系统会提示安装成功,下面就可以用ntfs-3g来实现对NTFS分区的读写了


以下来自另一文


FUSE(百度百科)

转自:http://baike.baidu.com/link?url=fQ1gU4HZqz56ZvglAaYG1CDIooZLRdjOL4TwU6h0_UuSflKF7V_FDfGo7xaKigoG9albhExlokrrIQ8oYngU3q

用户空间文件系统(Filesystem in Userspace),是Linux中用于挂载某些网络空间,如SSH,到本地文件系统的模块,在SourceForge上可以找到相关内容。

使用 FUSE 您可以开发功能完备的文件系统:其具有简单的API 库,可以被非特权用户访问,并可以安全的实施。更重要的是,FUSE以往的表现充分证明了其稳定性。

使用FUSE,您可以像可执行二进制文件一样来开发文件系统,它们需要链接到FUSE 库上——换言之,这个文件系统框架并不需要您了解文件系统的内幕和内核模块编程的知识。

就文件系统来说,用户空间的文件系统就不再是新奇的设计了。用户空间文件系统的商业实现与学术实现的实例包括:

LUFS是一个混合用户空间的文件系统框架,它对用于任何应用程序的无数文件系统提供透明支持。大部分LUFS包括一个内核模块和一个用户空间的守护进程。从根本上来说,它将大部分VFS调用都委托给一个专用的守护进程来处理。 UserFS 让用户进程可以像普通的文件系统一样进行加载。这种概念性的原型提供了ftpfs,这可以使用文件系统接口提供匿名 FTP 访问。Ufo Project 是为 Solaris提供的一个全局文件系统,它允许用户将远程文件真正当作本地文件一样对待。OpenAFS 是 Andrew FileSystem的一个开源版本。 CIFS 是 Common Internet FileSystem 的简称。

与这些商业实现和学术实现不同,FUSE 将这种文件系统的设计能力带到了Linux 中来。由于FUSE 使用的是可执行程序(而不像LUFS 一样使用的是共享对象),因此可以简化程序的调试和开发。

FUSE 可以在 2.4.x 和 2.6.x 的内核上使用,现在可以支持 Java绑定,因此您可以不必限定于使用C 和 C来编写文件系统了。

要在 FUSE 中创建一个文件系统,您需要安装一个 FUSE 内核模块,然后使用 FUSE 库和 API来创建自己的文件系统。



用户空间文件系统(Filesystem inUserspace,简称FUSE)是操作系统中的概念,指完全在用户态实现的文件系统。
目前Linux通过内核模块对此进行支持。一些文件系统如ZFS,glusterfs和luster使用FUSE实现。

Linux用于支持用户空间文件系统的内核模块名叫FUSE,FUSE一词有时特指Linux下的用户空间文件系统。
是一个通用操作系统重要的组成部分。传统上操作系统在内核层面上对文件系统提供支持。而通常内核态的代码难以调试,生产率较低。

Linux从2.6.14版本开始通过FUSE模块支持在用户空间实现文件系统。

在用户空间实现文件系统能够大幅提高生产率,简化了为操作系统提供新的文件系统的工作量,特别适用于各种虚拟文件系统和网络文件系统。上述ZFS和glusterfs都属于网络文件系统。但是,在用户态实现文件系统必然会引入额外的内核态/用户态切换带来的开销,对性能会产生一定影响。


运行机制

目前Linux,FreeBSD,NetBSD,OpenSolaris和Mac OSX支持用户空间态文件系统。
0 0
原创粉丝点击