English Italian Japanese Vietnamese German Simplified Chinese French Spanish Brazilian Traditional Chinese Russian
这份FAQ是Linux NTFS计划的一部分。
最新的版本可以通过访问 获得。
如果这份FAQ没有回答你的关于NTFS的问题,或者你对这份FAQ有什么意见,请发邮件给我: 。
中文版由kelvin翻译,如果对翻译有什么意见,请发邮件至:zhangyc@zju.edu.cn。
内容
关键字
** - 最经常问到的问题
!! - 其他有意思的东东
NB - 需要特别注意的
命令或者输出
1. NTFS常见问题
1.1 什么是NTFS?
1.2 NTFS比FAT/FAT32好吗?
1.3 我需要使用或者升级到NTFS吗?
!! 1.4 每一版本Windows中的NTFS都一样吗?
1.5 NTFS的局限性是什么?
2. NTFS卷
2.1 怎样从Windows 95/98/ME或DOS中读入一个NTFS卷?
2.2 怎样将FAT转换为NTFS?
!! 2.3 怎样将NTFS转换为FAT卷?
2.4 怎样删除一个NTFS卷?
2.5 怎样对一个NTFS卷进行碎片整理?
** 2.6 怎样调整一个NTFS卷的大小?
3. Linux和NTFS
!! 3.1 Linux可以读取那些版本的NTFS?
** 3.2 驱动程序支持写入NTFS卷吗?
3.3 Linux支持NTFS的哪些特性?
3.4 如果出现问题我应该怎么做?
** 3.5 怎样在Linux中加入对NTFS的支持?
3.6 哪个版本的驱动是最好的?
3.7 还有哪些其他的工具?
3.8 Linux的NTFS驱动程序是怎样写成的?
3.9 我们应该向谁表示感谢?
4. 挂载NTFS卷
4.1 我可以挂载一个NTFS卷吗?
4.2 NTFS驱动程序的安全性怎样?
4.3 我应该使用哪个分区?
4.4 我在使用哪个版本的NTFS驱动?
!! 4.5 怎样挂载一个NTFS卷?
4.6 常用的挂载选项。
4.7 用于原始驱动程序的挂载选项。
4.8 用于新驱动程序的挂载选项。
** 4.9 怎样改变已挂载的NTFS卷的权限?
!! 4.10 怎样自动挂载一个NTFS卷?
5. 在NTFS上启动操作系统
5.1 可以在NTFS卷上启动Windows吗?
5.2 应该怎样使用lilo?
5.3 应该怎样使用grub?
6. Linux发行版
6.1 哪个发行版附加了对NTFS的支持?
6.2 为什么RedHat不支持NTFS?
6.3 为什么RedHat在访问NTFS卷时会处于锁上状态?
6.4 有可以安装在NTFS上的发行版吗?
7. 新的Linux NTFS驱动程序
7.1 新的NTFS驱动程序是什么?
7.2 我需要使用它吗?
7.3 我该怎样使用新的驱动程序?
7.4 什么是补丁?
7.5 如果我仍不理解呢?
7.6 什么时候Linux内核中才会收入这些新的代码?
7.7 不可以对Windows的驱动进行封装吗?
返回页面顶部
1. NTFS常见问题
1.1 什么是NTFS?
NTFS是New Technology Filesystem的缩写。称作NT是因为它最初是用在Window NT上的,文件系统则表示电脑在磁盘上存储文件的方式。不同的操作系统一般使用 不同的方式存储文件。
NTFS通常用于Windows NT、2000和XP系统。
返回页面顶部
1.2 NTFS比FAT/FAT32好吗?
简单的说,是的。NTFS更健壮,它支持双字节编码文件名以及适当的安全、压缩和加密。它主要的不足之处在于只能在Windows NT、2000或XP系统下进行读取,比如用户不能用DOS启动盘启动然后读取NTFS上的数据。
和往常一样,这个规则也有例外存在。早在1997年10月就有了Linux下的NTFS驱动程序,同样也有程序支持DOS下对NTFS的操作(2.1节对此有详细介绍)。
返回页面顶部
1.3 我需要使用或者升级到NTFS吗?
不,你并不需要,虽然这对于绝大多数人来说是一个不错的主意。你甚至可能察觉不到两者性能上的差别,唯一的缺点是你不能再将其转回FAT格式了(2.3节对此有详细介绍)。
NB 你可以在FAT16文件系统上安装Windows NT,在FAT32文件系统上安装Windows 2000或XP,然后再可以升级到NTFS。
返回页面顶部
1.4 每一版本Windows中的NTFS都一样吗?
不,它们看起来很相似,但新的版本总有一些附加的特性。比如,Windows 2000就有磁盘配额(quotas)。
NTFS Windows Version
v1.2 NT 3.51, NT 4
v3.0 2000
v3.1 XP
1.2版本有时被称作NT4.0。
3.0和3.1版本则被称作NT5.0和5.1。
返回页面顶部
1.5 NTFS的局限性是什么?
容量大小。NTFS支持最大为263字节的文件。NTFS卷最多可包括263个簇且每个簇最大可为64KB,这样它的最大容量就是约500万亿GB。
返回页面顶部
2. NTFS卷
2.1 怎样从Windows 95/98/ME或DOS中读取一个NTFS卷?
很可惜,这是不可以的。这些版本的Windows只支持FAT,NTFS只可以从Windows NT、2000和XP中进行读取。
但是,只要稍微费些功夫,你就可以从 得到 "NTFS for Windows 98" 和 "NTFSDOS" 两个工具,这样就以在Windows 95、98和DOS中对NTFS进行读取。如果你愿意付费的话,他们甚至可以提供支持写入NTFS的版本(但这是非常昂贵的)。
返回页面顶部
2.2 怎样将FAT卷转换为NTFS卷?
打开一个命令窗口并输入(将x:替换为正确的卷标)
convert x: /fs:ntfs
如果该卷正在使用中,转换将会在下次系统启动时进行。
NB 此命令不支持逆向操作,详情请见下个FAQ。
返回页面顶部
2.3 怎样将NTFS卷转换为FAT卷?
简单的说,这样是不可以的,当然如果你有足够的钱的话也有例外。 Magic支持在不同的文件系统间进行转换,其中就包括NTFS和FAT。
返回页面顶部
2.4 怎样删除一个NTFS卷?
这依赖于你使用的操作系统。
DOS、Windows 95/98/ME: fdisk。使用启动盘启动系统,或者让Windows返回到DOS模式,然后运行fdisk。如果有多个磁盘,先选择磁盘,然后删除那些非DOS分区。操作时一定要特别小心,任何改变都会被立即提交并执行。
Windows NT: 计算机管理。
Windows 2000、XP: 逻辑磁盘管理器。从控制面板中开始,选择管理工具,然后选择计算机管理。
返回页面顶部
2.5 怎样对NTFS卷进行碎片整理?
当一个卷使用了很长时间,或者对磁盘进行过多次写入之后,保存在其中的文件可能变得支离破碎了。这些文件不再以一种连续的形式保存在磁盘上,而是被分成了很多小的部分,这样就减慢了访问文件的速度。
为此,Windows 2000和XP系统内置了磁盘碎片整理程序。而对于Windows NT的用户来说,也有免费的工具可以完成同样的工作,这就是Diskeeper Lite,它可以从 下载得到。
返回页面顶部
2.6 怎样调整一个NTFS卷的大小?
直到最近,唯一可以调整NTFS卷的大小而不造成数据损失的程序仍旧是很昂贵的。现在,我们有了自己的程序-ntfsresize。我们已经对其做了很多测试,但目前仍处于试验阶段。如果你想得到更详细的信息,请参阅ntfsresize FAQ。
出品的Partition Magic仍是仅有的可以调整NTFS卷大小的商业程序。
返回页面顶部
3. Linux和NTFS
3.1 Linux可以读取那些版本的NTFS?
Linux驱动程序可以读取所有版本的NTFS。每个版本的NTFS都稍微有些差别,但是驱动程序仅需要对文件和路径进行解释,NTFS维护的所有索引记录都被安全地忽略了。
当驱动程序支持对一个NTFS卷进行写操作时,这种能力也会随着它所写入的NTFS版本的不同发生变化。
返回页面顶部
3.2 驱动程序支持写入NTFS卷吗?
并不完全是,但是如果你需要在装有双系统机器的上从Linux向Windows拷贝文件的话,请阅读下面的“怎样写入NTFS”部分,那里你将会找到一种在缺少写入支持的情况下解决问题的方法。
目前我们共有两个驱动程序,2.4内核中的原始驱动程序包含一些执行写入操作的代码,但是执行它们将会是非常危险的,极有可能彻底破坏你的文件系统。
2.5.11内核中引入的新驱动程序也包含一些执行写入操作的代码,但却是非常有限的。它可以覆写现存的文件,但不可以改变文件大小、添加新文件或者删除文件。
添加对写操作的支持将耗费很长的时间。NTFS的结构和数据库很相似,基于一致性的考虑,用户做出的每个改变都可能带来其他的很多改变。一个错误可能对文件系统造成损害,很多错误则会彻底破坏整个文件系统。此外,目前的开发人员也只是出于个人爱好在空闲时间从事 NTFS驱动的开发。如果你愿意帮助我们,请发邮件给我: 。
怎样写入NTFS。如果你在使用装有双系统的机器并且只需要对NTFS写操作的支持来从Linux向 Windows转移文件,你可以通过使用Windows下的ext2/ext3驱动程序从Linux分区中读取文件来代替。这种方式只需使用两个只读的驱动,并且仍旧可以从一个文件系统向另一个拷贝文件。
截至2003年6月4日,共有以下这些开源的支持Linux ext2和ext3文件系统的Windows驱动程序:
* explore2fs
o 主页:
o 适用于Windows NT、Windows 2000和Windows XP。
* ext2fsd
o 主页:
o 适用于Windows NT、Windows 2000和Windows XP。
* winext2fsd
o 主页:winext2fsd project page
o 据称适用于Windows NT和Windows XP,同样也可用于Windows 2000。
* ext2forxp
o 主页:
o 还处于早期开发阶段,没有进入实用(到2003年6月4日)。
* vmware
o 主页:
o VMWare允许你在在一个系统中完全运行其他操作系统。
o 所以,你可以在Linux中运行Windows,自然也可以写入NTFS了。
o 这种写入操作就像你在运行的Windows一样安全,但同样也很昂贵。
返回页面顶部
3.3 Linux支持NTFS的哪些特性?
NTFS支持极其众多的特性,但是Linux NTFS驱动程序实现的却很少。
Linux NTFS驱动程序支持Unicode文件名、压缩文件和稀疏文件。
但是,此驱动不能读取加密后的文件,它忽略了Windows的安全信息和Windows设置的磁盘配额。
返回页面顶部
3.4 如果出现问题我应该怎么做?
此驱动对于只读操作是非常安全的,但我们不可能对每个可能性都进行测试。如果发生了什么问题,请您帮助我们找出问题所在并解决它。
请给开发小组发送邮件至linux-ntfs-dev@lists.sourceforge.net,告诉我们你在使用哪个版本的驱动程序,你的Linux内核版本(uname -a)和NTFS版本(Win NT、2000或XP)。
此外,如果有你认为有帮助的日志文件(/var/log/messages),请一并发给我们。
多谢。
返回页面顶部
3.5 怎样在Linux中加入对NTFS的支持?
大多数用户并不需要通过编译文件来启用对NTFS的支持。几乎每个Linux发行版(RedHat除外)都附加了对NTFS的支持。
如果你在使用的是RedHat 9(Shrike)、8.0(Psyche)或7.3(Valhalla),只需安装一个支持NTFS的rpm包。此rpm包中包括了详细的使用说明。
如果你在使用老版本的RedHat或其他不支持NTFS的发行版,就需要自己重新编译内核了。但这并不像听起来的那么困难,在编译指导页中可以找到详细的介绍。
返回页面顶部
3.6 哪个版本的驱动是最好的?
对于驱动程序来说,版本越新越好。新的版本写得更好、运行更快、错误更少并且对于对称多处理器也更加安全。新的驱动程序已经包含在版本2.5.11之后的内核中,我们也提供补丁程序向2.4内核添加此新驱动程序。
返回页面顶部
3.7 还有哪些其他的工具?
当前只有很少的一些工具并且它们都是面向程序开发者的。我们有一份所有工具的状态列表。
自然,列表中的排列顺序也代表了这些工具在编写NTFS驱动代码时起到的帮助作用的大小。
返回页面顶部
3.8 Linux的NTFS驱动程序是怎样写成的?
Microsoft并没有公布任何关于NTFS内部机制的文档,所以我们必须采用逆向修改的形式研究文件系统。方法大致包括:
1. 用十六进制编辑器观察卷内容
2. 执行一些操作,比如创建一个文件
3. 使用十六进制编辑器寻找产生的变化
4. 对变化进行分类并记录
5. 不断重复以上四个步骤
以上听起来是都是很繁琐的工作吧,这样或许你就能理解这项任务的难度了。我们现在几乎已经完全了解了NTFS并撰写了相关文档放在
实际上,相对于收集相关信息来说,编写驱动程序则要简单很多了。
返回页面顶部
3.9 我们应该向谁表示感谢?
首先我们应该感谢 Martin von Loewis。早在1995年他就编写了最初的NTFS驱动程序,1997年此驱动被添加到Linux内核(2.1.74)中。同时,他也受到了以下这些人的帮助:
Albert Cahalan, Anton Altaparmakov, Damon Casale, David Dillard, Domagoj Pensa, Joseph Malicki, Matthew Fanto, Olof Wolgast, Rani Assaf, Régis Duchesne, Richard Russon, Steve Dodd, Werner Seiler.
其次我们应该感谢Anton Altaparmakov,整个项目在他的积极推动下才得以进行到现在。之前在项目没有得到有效维护时,是他接管了项目并保持了代码的稳定性。接着他又重写了整个驱动程序,为开发对写操作的支持打下了坚实的基础。他受到了以下这些人的帮助:
Pawel Kot, Richard Russon.
返回页面顶部
4. 挂载NTFS卷
4.1 我可以挂载一个NTFS卷吗?
当然可以。驱动程序支持对所有版本NTFS的读取,但仅仅是读取。
返回页面顶部
4.2 NTFS驱动程序的安全性怎样?
当仅被用于读取时,原始的和新的驱动程序对于普通应用都是安全的。他们不会对你的文件系统做出任何改变,所以也不会造成任何损害。
此外,新的驱动程序对于对称多处理器(SMP)也是安全的。
返回页面顶部
4.3 我应该使用哪个分区?
在Linux中,第一个IDE控制器上的两个磁盘被分别被称作hda和hdb,第三和第四个也相应被称为hdc和hdd。SCSI磁盘则根据它们的顺序依次命名为sda、sdb等。
一个简单的寻找NTFS卷的方法是使用:
fdisk -l
输出可能如下所示:
Disk /dev/hda: 64 heads, 63 sectors, 4465 cylinders
Units = cylinders of 4032 * 512 bytes
Device Boot Start End Blocks Id System
/dev/hda1 1 2125 4283968+ 07 NTFS/HPFS
/dev/hda2 2126 19851 35735616 0f Win95 Ext'd (LBA)
/dev/hda5 * 2126 4209 4201312+ 83 Linux
/dev/hda6 4210 4465 516064+ 82 Linux swap
返回页面顶部
4.4 我在使用哪个版本的NTFS驱动程序?
如果你的内核版本号是2.4.*或者2.5.0-2.5.10,可能你正在使用最初的NTFS驱动程序。如果你有2.5.11以后版本的内核,那么你就有了新的NTFS驱动。
一个更好的方法读取内核日志中关于NTFS的日志消息。试试下面这些命令中的任意一个(可能需要root权限才能读取日志)。
dmesg | grep -i ntfs
grep -i ntfs /var/log/messages
原始驱动的版本号为1.1.*,而新驱动的版本号为2.*。
返回页面顶部