在Linux上挂接NTFS文件系统
时间:2006-08-29 来源:飞天二狭
前言,本例中的Linux分别为RedHat Linux AS 3,硬件平台为IBM IntelliStation PC工作站,带有USB接口,主机名称为ibm06。
一,确定操作系统内核:
1,第一种办法是通过uname -a查看内核版本。
在主机ibm06(操作系统为RedHat AS 3)上,执行uname -a,结果如下:
Linux ibm06 2.4.21-4.EL #1 Fri Oct 3 18:13:58 EDT 2003 i686 i686 i386 GNU/Linux
2,第二种办法是通过其他机器telnet到该主机上,会显示如下内容:
Red Hat Enterprise Linux AS release 3 (Taroon)
Kernel 2.4.21-4.EL on an i686
login:
二,到http://www.linux-ntfs.org下载相应内核版本的rpm包。
注意,一定要充分匹配操作系统的内核版本号,而且要匹配硬件结构。如本例中的硬件平台,都属于i686架构的平台。
再有一点,注意选择亚洲的服务器下载。而且要直接点击下载连接,而不是右键“另存为”。否则,下载的不是真正的rpm包,而是以rpm命名的网页文件。
三,安装支持USB盘的rpm包:
[zb@ibm06 ntfs]# rpm -ivh kernel-ntfs-2.4.21-4.EL.i686.rpm
Preparing... ########################################### [100%]
1:kernel-ntfs ########################################### [100%]
The Linux NTFS RPM has been successfully installed.
Please read the NTFS FAQ if you want to know how to:
* Mount an NTFS partition
* Change the permissions/ownership of a mounted NTFS partition
* Automatically mount an NTFS partition
FAQ: http://linux-ntfs.sourceforge.net/info/ntfs.html
RPM: http://linux-ntfs.sourceforge.net/rpm/index.html
SRC: http://linux-ntfs.sourceforge.net/rpm/rpmsrc.html
四,验证是否Linux已经支持ntfs文件系统:
cat /proc/filesystems
如果,里面含有ntfs,则可进行如下工作。
五,挂接ntfs分区:
[zb@ibm06 ntfs]#
[zb@ibm06 ntfs]# fdisk -l
Disk /dev/sda: 36.4 GB, 36401479680 bytes
255 heads, 63 sectors/track, 4425 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/sda1 * 1 1029 8265411 7 HPFS/NTFS
/dev/sda2 1030 1094 522112+ 83 Linux
/dev/sda3 1095 2399 10482412+ 83 Linux
/dev/sda4 2400 4425 16273845 f Win95 Ext'd (LBA)
/dev/sda5 2400 3443 8385898+ 83 Linux
/dev/sda6 3444 3704 2096451 82 Linux swap
/dev/sda7 3705 4425 5791401 83 Linux
[zb@ibm06 ntfs]#
[zb@ibm06 ntfs]# mount -t ntfs -o iocharset=gb2312 /dev/sda1 /ntfs
[zb@ibm06 ntfs]#
六,查看已经挂接的文件系统:
[zb@ibm06 ntfs]# df -k
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/sda5 8254240 4286028 3548920 55% /
/dev/sda2 505636 13479 466052 3% /boot
/dev/sda7 5700436 34032 5376836 1% /home
none 514772 0 514772 0% /dev/shm
/dev/sda3 10317860 32828 9760912 1% /sw
/dev/sda1 8265408 6780000 1485408 83% /ntfs
[zb@ibm06 ntfs]#
[zb@ibm06 ntfs]#
七,获得可写支持:
这样挂接上的ntfs文件系统,是只读的。那怕是在mount命令行中,加入umask参数也不能变为可写。如果要让在linux里面向ntfs分区写数据,有以下方法:
1,编译内核:(以redhat 8.0原始安装为例,#之后的整行是输入的命令,其他系统或者打过redhat 补丁的系统只有内核以及开发程序版本不同,按照自己的情况略加修改就可以正常完成)
login as root,
#uname -r 查看kernel版本号,确认要编译的kernel source和运行的kernel一致,这一步并非必须,可以在一个运行版本下编译另一个版本的kernel。
#cd /usr/src/linux-2.4.18-14 2.4.18-14是新装的redhat 8的内核版本,随发行版不同略有变化,根据自己的情况改后面的数字。下面不再说明。
#make mrproper 说明:这一步很重要,否则编译会出错,这是编译任何内核的第一步;
#vi Makefile 编辑Makefile, 把前面EXTRAVERSION = -14custom 去掉custum,改成 EXTRAVERSION = -14 ,对照前面uname出来的结果,Makefile最前面几行的$VERSION+$PATCHLEVEL+$SUBLEVEL+$EXTRAVERSION 应该和你的内核版本完全一致。
#cp configs/kernel-2.4.18-i686.config .config (根据你的配置选择一个合适的config,多CPU的机器选择带smp的config)
#make menuconfig 选择File Systems,把光标定在NTFS file system support (read only) 前面,按回车是最前面显示为。紧跟的一行NTFS write support(DANGEROUS)前面不要选, 要吗?! 连续按ESC键(不要太多了),直到出现保存设置对话框,打回车确认。
#make dep
#make modules SUBDIRS=fs/ntfs
#mkdir /lib/modules/2.4.18-14/kernel/fs/ntfs
#cp /usr/src/linux-2.4.18-14/fs/ntfs/ntfs.o /lib/modules/2.4.18-14/kernel/fs/ntfs
#depmod -a
如果没有错误,编译完成。
2,安装ntfs可写模块:
有可写ntfs分区的rpm包(用了winxp的ntfs驱动模块),但是不一定安全,下载地址:
http://www.jankratochvil.net/project/captive/
3,编译内核,设置如下:(来自http://www.laikan8.com/5/34868.html)
CONFIG_NTFS_FS=m
CONFIG_NTFS_DEBUG=y
CONFIG_NTFS_RW=y
一般不推荐对ntfs分区执行写操作,因为ntfs支持写的功能只支持在不变化文件长度的变化情况下可写。
一,确定操作系统内核:
1,第一种办法是通过uname -a查看内核版本。
在主机ibm06(操作系统为RedHat AS 3)上,执行uname -a,结果如下:
Linux ibm06 2.4.21-4.EL #1 Fri Oct 3 18:13:58 EDT 2003 i686 i686 i386 GNU/Linux
2,第二种办法是通过其他机器telnet到该主机上,会显示如下内容:
Red Hat Enterprise Linux AS release 3 (Taroon)
Kernel 2.4.21-4.EL on an i686
login:
二,到http://www.linux-ntfs.org下载相应内核版本的rpm包。
注意,一定要充分匹配操作系统的内核版本号,而且要匹配硬件结构。如本例中的硬件平台,都属于i686架构的平台。
再有一点,注意选择亚洲的服务器下载。而且要直接点击下载连接,而不是右键“另存为”。否则,下载的不是真正的rpm包,而是以rpm命名的网页文件。
三,安装支持USB盘的rpm包:
[zb@ibm06 ntfs]# rpm -ivh kernel-ntfs-2.4.21-4.EL.i686.rpm
Preparing... ########################################### [100%]
1:kernel-ntfs ########################################### [100%]
The Linux NTFS RPM has been successfully installed.
Please read the NTFS FAQ if you want to know how to:
* Mount an NTFS partition
* Change the permissions/ownership of a mounted NTFS partition
* Automatically mount an NTFS partition
FAQ: http://linux-ntfs.sourceforge.net/info/ntfs.html
RPM: http://linux-ntfs.sourceforge.net/rpm/index.html
SRC: http://linux-ntfs.sourceforge.net/rpm/rpmsrc.html
四,验证是否Linux已经支持ntfs文件系统:
cat /proc/filesystems
如果,里面含有ntfs,则可进行如下工作。
五,挂接ntfs分区:
[zb@ibm06 ntfs]#
[zb@ibm06 ntfs]# fdisk -l
Disk /dev/sda: 36.4 GB, 36401479680 bytes
255 heads, 63 sectors/track, 4425 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/sda1 * 1 1029 8265411 7 HPFS/NTFS
/dev/sda2 1030 1094 522112+ 83 Linux
/dev/sda3 1095 2399 10482412+ 83 Linux
/dev/sda4 2400 4425 16273845 f Win95 Ext'd (LBA)
/dev/sda5 2400 3443 8385898+ 83 Linux
/dev/sda6 3444 3704 2096451 82 Linux swap
/dev/sda7 3705 4425 5791401 83 Linux
[zb@ibm06 ntfs]#
[zb@ibm06 ntfs]# mount -t ntfs -o iocharset=gb2312 /dev/sda1 /ntfs
[zb@ibm06 ntfs]#
六,查看已经挂接的文件系统:
[zb@ibm06 ntfs]# df -k
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/sda5 8254240 4286028 3548920 55% /
/dev/sda2 505636 13479 466052 3% /boot
/dev/sda7 5700436 34032 5376836 1% /home
none 514772 0 514772 0% /dev/shm
/dev/sda3 10317860 32828 9760912 1% /sw
/dev/sda1 8265408 6780000 1485408 83% /ntfs
[zb@ibm06 ntfs]#
[zb@ibm06 ntfs]#
七,获得可写支持:
这样挂接上的ntfs文件系统,是只读的。那怕是在mount命令行中,加入umask参数也不能变为可写。如果要让在linux里面向ntfs分区写数据,有以下方法:
1,编译内核:(以redhat 8.0原始安装为例,#之后的整行是输入的命令,其他系统或者打过redhat 补丁的系统只有内核以及开发程序版本不同,按照自己的情况略加修改就可以正常完成)
login as root,
#uname -r 查看kernel版本号,确认要编译的kernel source和运行的kernel一致,这一步并非必须,可以在一个运行版本下编译另一个版本的kernel。
#cd /usr/src/linux-2.4.18-14 2.4.18-14是新装的redhat 8的内核版本,随发行版不同略有变化,根据自己的情况改后面的数字。下面不再说明。
#make mrproper 说明:这一步很重要,否则编译会出错,这是编译任何内核的第一步;
#vi Makefile 编辑Makefile, 把前面EXTRAVERSION = -14custom 去掉custum,改成 EXTRAVERSION = -14 ,对照前面uname出来的结果,Makefile最前面几行的$VERSION+$PATCHLEVEL+$SUBLEVEL+$EXTRAVERSION 应该和你的内核版本完全一致。
#cp configs/kernel-2.4.18-i686.config .config (根据你的配置选择一个合适的config,多CPU的机器选择带smp的config)
#make menuconfig 选择File Systems,把光标定在NTFS file system support (read only) 前面,按回车是最前面显示为。紧跟的一行NTFS write support(DANGEROUS)前面不要选, 要吗?! 连续按ESC键(不要太多了),直到出现保存设置对话框,打回车确认。
#make dep
#make modules SUBDIRS=fs/ntfs
#mkdir /lib/modules/2.4.18-14/kernel/fs/ntfs
#cp /usr/src/linux-2.4.18-14/fs/ntfs/ntfs.o /lib/modules/2.4.18-14/kernel/fs/ntfs
#depmod -a
如果没有错误,编译完成。
2,安装ntfs可写模块:
有可写ntfs分区的rpm包(用了winxp的ntfs驱动模块),但是不一定安全,下载地址:
http://www.jankratochvil.net/project/captive/
3,编译内核,设置如下:(来自http://www.laikan8.com/5/34868.html)
CONFIG_NTFS_FS=m
CONFIG_NTFS_DEBUG=y
CONFIG_NTFS_RW=y
一般不推荐对ntfs分区执行写操作,因为ntfs支持写的功能只支持在不变化文件长度的变化情况下可写。
相关阅读 更多 +