文件系统读取与转换完全手册

数码时尚

  文件系统,指文件命名、存储和组织的总体结构,例如Windows系列操作系统支持的FAT16、FAT32和NTFS都是文件系统。其实文件系统也就是我们经常所说的“磁盘格式”或“分区格式”,总体都是一个概念,不过“分区”只针对硬盘来说的,而文件系统则是针对所有磁盘及存储介质的。

  一、文件系统一览

  1.FAT16

  对电脑大虾来说,这种硬盘分区格式是最熟悉不过的了,他们大都是通过这种分区格式踏入电脑门槛的。FAT16采用16位的文件分配表,能支持的最大分区为2GB,是以前应用最为广泛和获得操作系统支持最多的一种磁盘分区格式,但是由于分区表容量的限制,FAT16分区创建的越大,磁盘上每个簇的容量也越大,从而造成的浪费也越大。

  2.FAT32

  FAT32这种格式采用32位的文件分配表,相对FAT16磁盘格式而言,FAT32磁盘的管理能力大大增强,突破了FAT16 2GB的分区容量的限制。而且,FAT32还具有一个最大的优点:在一个不超过8GB的分区中,FAT32分区格式的每个簇容量都固定为4KB,与FAT16相比,可以大大地减少硬盘空间的浪费,提高了硬盘利用效率。但是,这种分区格式也有它的缺点,首先是采用FAT32格式分区的磁盘,由于文件分配表的扩大,运行速度比采用FAT16格式分区的硬盘要慢;另外,由于DOS系统和某些早期的应用软件不支持这种分区格式,所以采用这种分区格式后,就无法再使用老的DOS操作系统和某些旧的应用软件了。

  3.NTFS

  NTFS(New Technology File System)是Microsoft Windows NT的标准文件系统,它也同时应用于Windows 2000/XP/2003。它的优点是安全性和稳定性极其出色,在使用中不易产生文件碎片,NTFS分区对用户权限作出了非常严格的限制,每个用户都只能按系统赋予的权限进行操作,任何试图越权的操作都将被系统禁止,同时它还提供了容错结构日志,可以将用户的操作全部记录下来,从而保护了系统的安全。但是,NTFS分区格式的兼容性不好,特别是对使用很广泛的Windows 98 SE/Windows Me系统,它们还需借助第三方软件才能对NTFS分区进行操作。

  4.Ext2

  是GNU/Linux系统中标准的文件系统,其特点为存取文件的性能极好,对于中小型的文件更显示出优势。

  5.Ext3

  Ext2的下一代,也就是在前Ext2的格式之下再加上日志功能,Ext3是一种日志式文件系统。

  6.NFS

  NFS是此类文件系统的代表,它是由Sun Microsystems公司设计发表的,现已成为各UNIX系统的标准配置之一。

  7.Code

  此文件系统与NFS类似,但拥有较NFS还先进的特色,例如断线操作、安全性认证等。

  8.SMB

  Linux利用此文件系统可以将微软操作系统的网上邻居共享出来的磁盘或文件系统挂上来使用。

  9.NCP

  此文件系统可以将Novell NetWare 的 IPX共享出来的磁盘挂上来使用。

  10.hpfs

  OS/2平台的文件系统。

  11.hfs

  苹果电脑的文件系统。

  12.adfs

  corn Disc文件系统,用于ARM Risc PC的RiscOS操作系统上。

  当然还有很多其他的文件系统,这里就不再一一介绍了。

  二、各操作系统对分区格式的支持情况

  各种操作系统对分区格式的支持情况是不同的,有些操作系统只支持某种特定的分区格式,而有些操作系统则同时支持多种不同的分区格式。为方便用户的使用,现将常见操作系统对分区格式的支持情况简要介绍如下:

  (1)DOS和Windows 95:这两种操作系统只支持FAT16,因此FAT16是这类用户的惟一选择;

  (2)Windows 97/98/Me:从Windows 97开始,系统增加了对FAT32的支持;

  (3)Windows NT:NTFS就是为Windows NT量身定制的,Windows NT同时也支持FAT16;

  (4)Windows 2000/XP/2003:同时支持FAT16、FAT32、NTFS等分区格式;

  (5)OS/2:OS/2用户既可使用OS/2独特的HPFS分区格式,也可使用传统的FAT16;

  (6)Linux:Linux用户一般都使用其专用的Linux格式。

  三、不同文件系统间的相互转换

  1.借助安装程序将FAT文件系统转换为NTFS

  借用Windows 2000/XP的安装程序将FAT文件系统转换至NTFS文件系统,这种转换方式能够确保文件完好无损。

  首先,安装程序首先检测现有文件系统,如果当前文件系统为NTFS,则无须进行转换;如果当前文件系统为FAT16或FAT32,安装程序将允许你将它转换为NTFS。

  这是最简单易用而且安全的方法,那么,如果没有安装光盘又该怎么办呢?

  2.应用Convert.exe将FAT文件系统转换为NTFS

  Windows 2000/XP/2003提供了分区格式转换工具Convert.exe,Convert.exe是Windows 2000/XP/2003附带的一个DOS命令行程序,通过这个工具可以直接将FAT文件系统转换为NTFS文件系统,而且不会破坏原有的FAT文件系统。

  如果我们要转换的磁盘是C盘:

  (1)依次打开“开始→程序→附件→命令提示符(或者打开“开始→运行”并输入cmd);

  (2)打开窗口以后,在DOS光标的提示符下输入“Convert C:/FS:NTFS”,然后回车。也可点击“开始”菜单中的“运行”命令并输入“Convert C:/FS:NTFS/V”,并点击“确定”按钮(注意:在“Convert”后面有一个空格),如图1所示。

                       图1

  (3)接着系统会要求你输入C盘的卷标,然后回车;

  此时,系统就开始进行转换了,稍等片刻即可完成转换工作。

  注意:所有的转换都在系统重新启动后进行,而不是立即执行。

  下面是有关Convert的语法,有兴趣的读者可以去研究。

  CONVERT volume/FS:NTFS[/V][/CvtArea:filename][/NoSecurity][/X]

  ①volume:指定驱动器号、装载点或卷名;

  ②/FS NTFS:指定将分区转换为NTFS格式;

  ③/V:指定为详细模式,即在转换期间将显示所有的消息;

  ④/CvtArea filename:仅适用于高级用户。指定将主控文件表(MFT)以及其他NTFS源数据文件写入相邻的现存占位符文件中;

  ⑤/NoSecurity:对转换后的文件和目录进行安全性设置,将它指定为每个人都可访问;

  ⑥/X:如果需要,使用该参数可在转换之前将该分区卸载。

  3.将NTFS文件系统转换为FAT32

  那么能不能把NTFS文件系统转换为FAT文件系统呢?当然可以,这里使用的工具也是Windows 2000的安装光盘,操作过程如下:

  如果需要转换的磁盘分区为C盘:

  (1)在系统启动时,按“DEL”键进入CMOS设置,选择“Advanced BIOS Features”进入,在“1st Boot Device:”中选择“CD-ROM”(从光盘引导),然后选择“保存”,退出,在光驱中放入安装光盘,重新启动系统;

  (2)当屏幕下方出现“press any key to boot from CD”时按回车,在出现Windows 2000安装程序后,屏幕上会有如下选项供选择:

  ①要开始安装Windows 2000,请按ENTER。

  ②要修复Windows 2000中文版的安装,请按R。

  ③要停止安装Windows 2000并退出安装程序,请按F3。

  在这里请选择第一个选项,按“Enter”;

  (3)这时会有一些协议要求认可,全部认可即可,此时在屏幕会出现两个选项:

  ①要修复所选的Windows 2000安装,请按R。

  ②要继续全新安装Windows 2000,请按ESC。

  请按ESC,系统会继续全新安装;

  (4)选择C盘,按下D键后(删除所选磁盘分区),屏幕上还会弹出选择菜单,再按L键(删除此磁盘分区);

  (5)完成后取出光盘,重启;

  (6)最后格式化C盘就行了。

  4.使用魔术分区软件进行格式转换

  这里我们使用的是魔术分区软件PowerQuest PartitionMagic pro(以下简称PQ Magic),在这里只是讲解文件系统格式转换的使用步骤,其他功能不涉及。

  (1)启动PQ Magic,在界面中的磁盘分区列表中选择需要转换的分区;

  (2)从界面按钮条中选择“Convert Partition”按钮,或者是从界面菜单条“Operations”项下拉菜单中选择“Convert”命令;

  (3)在界面中选择将要转换的文件系统类型,点击“OK”按钮返回程序主界面即可。如图2所示。

                       图2

  四、不同文件系统间的相互读取

  目前,个人电脑用户中大部分用户都在使用Windows系列各系统,但也有安装了Linux系统的多操作系统的用户,因此如何在Linux或Windows中实现硬盘资源互访就显得非常重要。

  1.用NTFS for Windows 98帮助FAT系统读取NTFS分区

  当电脑安装有Windows 98和Windows 2000/XP/2003两个或两个以上的的操作系统时,如何在FAT系统下直接读写NTFS文件系统就成为用户最为头痛的问题。由于Windows 98不能读取NTFS系统,如何进行数据交换呢?切换系统?太麻烦了。我们只需要使用NTFS for Windows 98就可以让Windows 98轻松读取、甚至在NTFS分区进行修改、删除等工作。

  (1)首先下载NTFS for Windows 98,此软件是绿色软件,直接点击即可使用;

  (2)把以下文件复制到FAT分区中的任意一个文件夹下:

  ①NTFS.SYS:存在于〈Winnt〉system32drivers tfs.sys

  ②NTOSKRNL.EXE:存在于〈Winnt〉

  ③system32 toskrnl.exe

  ④AUTOCHK.EXE:存在于〈Winnt〉

  ⑤system32 utochk.exe

  ⑥NTDLL.DLL:存在于〈Winnt〉system32 tdll.dll

  ⑦C_437.NLS:存在于〈Winnt〉system32437.nls

  ⑧C_1252.NLS:存在于〈Winnt〉system321252.nls

  ⑨L_INTL.NLS:存在于〈Winnt〉system32_intl.nls

  (3)在主界面中点击“Drive Letter Assignments”,此项可设置允许可以识别的NTFS分区盘符;

  (4)点击 “Advanced”按钮,此项功能提供了NTFS分区高级设置,其中包括设置为只读属性“Read-Only”、允许写入“Write-Through”等等,用户可据自己需求设置;

  (5)到此全部设置就完成了,点击“OK”按钮保存设置并退出。

  系统重新启动后,就可以在Windows 98下访问NTFS分区了!

  2.使用NTFSDOS Professional 在DOS中读取NTFS分区

  (1)下载并运行NTFSDOS Professional;

  (2)点击主界面中的“Next”按钮,再点击“Next”按钮,指定创建NTFSDOS文件的保存文件夹;

  (3)点击“Next”按钮,程序开始复制相应的支持文件到指定文件夹下;

  (4)最后点击“Finish”按钮完成全部设置;

  (5)进入纯DOS环境,在DOS提示符下运行“NTFSPRO.EXE”即可在DOS下看到NTFS分区中的文件了!

  3.在Linux中读取DOS数据

  Linux作为免费的操作系统,越来越受到电脑爱好者的喜爱,在Linux系统中如何访问DOS文件系统呢?下面以RedHat为例,说明其使用方法。

  (1)使用DOS软盘。在RedHat中有两种方法可访问DOS盘:一是用Mtools实用工具访问软盘,二是将软盘安装到Linux系统中,命令如下:Mount-t msDOS/dev/fd0/mnt/floppy,以后对/mnt/floppy目录进行操作即可;

  (2)访问硬盘上的DOS分区。对于DOS分区,只要用Mount命令将其挂到系统上就可以了,格式如下:

  Mount-t msDOS/dev/hda?/mnt/hd将其挂到/mnt/hd上,had?为其标识号,如有两个硬盘可能为hdb?或hdc?。

  4.在Red Hat Linux中访问Windows分区

  (1)首先判定Windows分区在你的硬盘驱动趋上的位置,在shell提示下登录为根用户(输入“su”,然后输入根口令)。

  输入下面的命令来创建一个挂载Windows分区的目录:

  mkdir /mnt/Windows

  (2)在访问该分区前,需要把它挂载到刚刚创建的目录中,在shell提示下以根用户身份输入下列命令:

  mount-t vFAT/dev/hda1/mnt/Windows

  (3)然后,就可以从根用户状态中注销,并改换到被挂载了的Windows分区中来存取Windows数据了:

  cd /mnt/Windows

  (4)要在你每次引导Red Hat Linux系统时自动挂载Windows分区,就必须修改/etc/fstab文件。

  在shell提示下,用“su”变成根用户,然后遵循上面操作方法,用文本编辑器打开/etc/fstab 文件,例如:

  gedit/etc/fstab

  在一个新行上添加下列信息:

  /dev/hda1 /mnt/Windows vFAT auto,umask=0 0 0

  保存文件并退出文本编辑器。

  在系统下次重新引导时,/etc/fstab文件会被读取,Windows分区会被自动挂载到目录/mnt/Windows中。

  5.在Windows下访问Linux分区 

  Windows本身没有访问Linux分区的命令,因此必须借助于第三方软件。

  (1)首先下载Explore2fs软件,安装并运行explore2fs.exe;

  (2)Explore2fs操作界面窗口的左边是Linux分区的目录结构,右边是所选目录内容,而窗口右边的所有Linux文件以小企鹅图标显示,操作时可以通过右键或菜单栏进行;

  (3)这时,可以选择需要拷贝到Windows下的一个文件,点击鼠标右键,选择“Export Files”选项将其保存到Windows中即可。而在弹出菜单中选择“View”,还可以调用默认的关联程序打开该文件,而设定打开程序的关联可以在菜单“View\Options\General\Viewer Program”中选择;

  (4)为了能将Windows文件写入Linux,我们必须选择菜单“View\Options\Debug”,选中 “Enable write support”选项,再点击“OK”退出;然后再运行菜单“File\Rescan Partition”,这时会弹出“Confirm”窗口,点击“Yes”即可。

  6.在Linux下访问Windows的分区

  (1)以根用启动XWindows;

  (2)打开一个终端窗口,创建一个装配点以保存Windows分区的数据,方法是:

  #mkdir /mnt/vFAT

  (3)同样在终端窗口运行linuxconf,方法是:#linuxconf;

  (4)启动linuxconf后,你会看到tree view,找到File systems下的Access local drive,点击它,打开一个新面板,再点击Add,在Add的BASE栏填写下列内容:

  ①Partion栏填入:/dev/hda1

  ②Type :vFAT

  ③mount point :/mnt/vFAT

  (5)然后选择Mount;

  (6)再点击Accept;

  以后如果需要访问Windows,输入如下命令:

  #cd /mnt/vFAT

  再

  #ls

  这样,就可以操作Windows下的文件了。

  7.在RedHat中加入对NTFS的支持

  如何在RedHat中加入对NTFS的支持呢?

  大多数用户并不需要通过编译文件来启用对NTFS的支持,几乎每个Linux发行版(RedHat除外)都附加了对NTFS的支持。

  如果你使用的是RedHat 9(Shrike)、8.0(Psyche)或7.3(Valhalla),只需安装一个支持NTFS的RPM包就行了,此RPM包中包括了详细的使用说明。

  如果你在使用老版本的RedHat或其他不支持NTFS的版本,就需要自己重新编译内核了。

  (1)编辑Kernel

  首先,需要编辑你自己的Kernel。这比较难,如果可以请先认真阅读帮助文件。

  ①得到源码。你的linux应该有Kernel,先运行Linux。最新的Kernel源码也可以从网上获取;

  ②编辑源码。配置Kernel非常标准化,如果运气好,你的distro会在源目录里的Kernel留下config。

  开始:

  make config

  这时会有几个选项让你选择,全部选择接受默认即可,对NTFS来说,选择“y”;

  下一步:

  make dep

  如果你想要建造一些模件:

  make modules

  否则:

  make bzImage modules

  (2)安装模件

  make modules_install

  (3)安装Kernel

  这是比较复杂的,但是并不难,这里就不再详细介绍了。

  (4)重新启动

  如果你正在建造模件,忽略这个部分。重新启动后,如果一切顺利uname -a应该把你的新Kernel告诉你。

  (5)增加模件

  如果你正在建造NTFS进Kernel而不是一个模件,忽略这个部分。

  现在给运转的Kernel添加NTFS模件:

  /sbin/modprobe NTFS

  (6)安装

  首先试验这命令并且检查NTFS:

  cat/proc/filesystems

  然后:

  mount /dev/hda1 /mnt/Windows-t NTFS-r

  五、制作能读取NTFS文件系统的启动盘

  由于Windows NT/2000/XP的默认文件系统是NTFS,或者某些用户只用了NTFS系统作为硬盘格式,且没有安装多操作系统,当系统出现故障或者其他使用原因,需要启动盘启动系统时,你是不能浏览或者操作NTFS系统的,这时,支持NTFS系统格式的启动盘就能派上用场了。

  1.应用自带程序制作NTFS格式启动盘

  (1)Windows 2000

  ①在Windows 2000安装的光盘“BOOTDISK”目录中找到“MAKEBOOT.EXE”这个程序,双击执行;

  ②弹出窗口提示你制作启动盘需要4张格式化好的空白软盘,输入软盘盘符“A”;

  ③按任意键开始复制文件。

  当四张软盘全部安装完成后,一套Windows 2000下的NTFS格式启动盘即制作完成了。

  (2)Windows XP

  操作系统是Windows XP的制作方法就不一样了,需要到微软网站下载一个专业的启动盘制作程序,执行程序后,按要求插入准备好的软盘就可以了,一共需要6张软盘。

  2.应用NTFSDOS制作NTFS格式启动盘

  NTFSDOS PRO的全称是NTFSDOS Professional,这个软件的功能就是让大家能在DOS下非常自由地访问和操作NTFS分区,它可以在DOS下装载NTFS分区并给它分配盘符。这样,就可以在NTFS的分区上运行程序或者使用上面的文件。而且,NTFSDOS PRO可以放在一张DOS启动盘上。这样在Windows NT/2000/XP未能正确安装或者不能正确启动的情况下,可以使用这张盘来恢复有问题的文件,或者通过设置来解决使Windows NT/2000/XP不能正确启动的问题。

  (1)首先NTFSDOS,然后双击安装文件安装,这个步骤需要在Windows NT/2000/XP环境中运行,然后是建立MSDOS的磁盘;

  注意:

  安装NTFSDOS需要如下的条件:

  ①Windows NT/2000/XP工作站或者服务器版的系统;

  ②DOS7.0或者更高的版本;

  ③如果硬盘大于4GB,那么电脑的BIOS必须支持扩展的INT 13界面。大部分新电脑系统都能够支持这个功能,Windows 95/98都需要这个来访问大硬盘。

  (2)运行该软件,出现制作向导窗口,点击“Next”进行下一步;

  (3)出现信息提示,再继续下一步;

  (4)这时让你进行语言选择,选择“Chinese(PRC,Singapore),code page 936”,点击“下一步”;

  (5)指定系统所在目录。这里是指定将制作的启动文件存放在什么地方,因为我们是制作启动盘,所以说当然是输入“A:”,将启动文件保存在软盘中,然后点击“Next”,这时就开始拷贝启动文件了。

  系统的不同决定了软盘的使用量,特别注意,必须把文件安装完毕,最好多准备几张软盘。

  (6)命令参数

  可以通过命令行参数来控制NTFSDOS,改变它的一些默认的设置。下面是一些参数的解释:

  ①/L:...指定盘符:指定装载NTFS分区时的盘符,如果是多个NTFS分区会依次列出;

  ②/C:缓存的大小,单位是KB:给出多少内存给装载的磁盘来作为缓存,默认的值是500KB;

  ③/T:[+|-]hh[:mm[:ss]]:设定具体的时间。“+-”表示与世界时间的差距;

  ④/N:指定代码页。用于指定字符集;

  ⑤/S:建立一个壳程序。这样会多需要一些内存,但是可以允许在不重新启动机器的情况下卸载NTFS分区,需要环境变量初始化时指出COMMAND.COM的路径;

  ⑥/P-指定系统文件的路径。指出包含有NTFSPRO.EXE需要引导的文件的路径。默认的情况下与NTFSPRO.EXE在同一个目录。

  3.应用NTFS Reader for DOS制作NTFS格式启动盘

  NTFS Reader for DOS可以帮你制作一张可以查阅FAT、NTFS的系统启动盘。

  (1)首先准备或者创建一张启动的软盘,在Windows 9x中,使用控制面板中的“添加/删除程序”功能;

  (2)将下载的NTFS Reader的执行文件ReadNTFS.exe复制到软盘;

  (3)用软盘启动机器,执行“ReadNTFS”,然后在出现的界面上就可以查看该硬盘的信息,包括FAT和NTFS,此时你可以对各个文件系统分区进行查阅、删改等操作。