最近,本人的“座机”上配备了一块30G的硬盘,再加上原来的3.2G,那感觉好像一下子从“棚户区”走进了“总统套”。接下来就是忙着给几个孩子分配房间的事了。老大Windows 98(FAT16、FAT32分区)年长,又承担着程序开发、文字处理、上网等一些主要工作,占20G;老二Windows NT Workstation(NTFS分区)与老大的工作性质基本相同,只是工作量小一些,占10G;宝贝疙瘩Red Hat Linux 7.0虽然是我的最爱,但年龄小,尚处于生长阶段,任务也是临时性的,只好给他3.2G。小是小了点,但却是个单间,不像老大和老二那样合住,低头不见抬头见的(都可以识别FAT16分区)。
房间是分配好了,哥三个也都很满意,但是我始终感到有一块心病未了。举个例子:以前,在Windows环境下上网当下来一些东西放在FAT16(FAT32、NTFS)分区的逻辑盘上,当处于Linux环境下时,要想浏览或者使用这些东西,就必须首先使用类似的指令:
mount -t msdos /dev/hda1 /mnt
登录到资料所在的逻辑盘,以使Linux操作系统能够识别。反过来,在Linux环境下上网当下来一些东西放在Ext2分区的硬盘上,在Windows 环境下根本无法访问和使用。这样的不便利是否有办法解决呢?
Linux与Windows的文件共享
通常情况下,Windows操作系统只能使用自己分区(FAT16\FAT32\NTFS)上的文件(光盘等介质除外),而Linux操作系统则支持多种文件系统,包括Linux最早使用的minix、目前正在使用的ext2、MS-DOS的FAT、Win95/98的VFAT、网络文件系统nfs、Windows NT的ntfs、OS/2的hpfs等。换句话说,Linux操作系统可以访问Windows操作系统上的文件,而Windows操作系统却无法访问Linux操作系统的文件。
这就告诉我们要想解决前面提出的问题,一个办法是在Windows分区上建立一个共享操作目录。将想要在两种操作系统之间共享的信息保存在该目录中,Windows操作系统可以直接对该目录进行存取操作,Linux操作系统通过mount指令挂接该目录所在的逻辑盘,然后再进行存取操作,或者还可以在Linux环境下直接使用mtools工具指令来操作。目前mtools 支持VFAT(Windows 95/98 的文件系统),可自动将Linux的长文件名转换为VFAT所支持的长文件名,并产生8.3格式的短文件名(有关mtools的知识在这里不详细介绍,请参阅相关资料)。
两个实现方案
通过上面的分析,实现该功能的方法大致有两种:一是手工键入指令的方式;二是在Linux下编程实现。但鉴于Windows环境的界面友好性和易操作性,我们将重点介绍如何在Linux现有的桌面环境下(GNOME、KDE)自动实现。笔者经过一番探索,总结如下:
实例中的操作系统是Windows98 SE和内核为2.2.17的Red Hat Linux 7.0,把FAT16分区的C逻辑盘作为共享,mount到Linux下的mnt目录。
GNOME下的实现方法
1.进入GNOME环境。
2.点击屏幕左下角的主选单按钮(看起来像是GNOME的标志性足迹图案),在弹出的选单中选择“Panel”――“Add to Panel” ――“Launcher”。
3.在随即打开的“Create Launcher applet”窗口中选择“Basic”标签。
4.在“Name”中输入“MountDriveC”,在“Command”中输入“mount -t auto /dev/hda1 /mnt”,在“Type”中选择“Application”,点击“Icon”按钮,可以选择一个自己喜欢的图标。点击OK按钮,关闭窗口,发现桌面底部的条形栏面板上已经多了一个你选择的图标。
5.已设置完毕。使用时只需点击面板上的代表性图标,即可自动实现mount功能,然后双击桌面上的“Home Directory”图标,在打开的窗口中选择mount到Linux 下的/mnt目录,就能够看到Windows中的C盘下的所有文件。
KDE下的实现方法
1.进入KDE环境。
2.单击桌面上的“templete”图标,显示出该目录下的所有文件。
3.用鼠标右键点亮其中的“program”文件,并用左键拖动到桌面上,在弹出的选单中选择“copy”,这时,桌面上就显示出一个名称为“program”的图标。
4.鼠标右键单击“program”的图标,在弹出的选单中选择“property”。打开该属性窗口,选择“Generral”标签,将FileName改变为MountDriveC.kdelnk,再选择“Execute”标签,在“Execute”下键入“mount -t auto /dev/hda1 /mnt”。点击OK按钮,关闭窗口。
5.单击打开桌面上的“AutoRun”文件夹,将刚刚生成的名称为MountDriveC的文件拖入到该文件夹内。关闭“AutoRun”文件夹。
6.单击桌面上“templete”图标,打开文件夹,用鼠标右键点亮其中的“Device”文件,并拖动到桌面上,在弹出的选单中选择“copy”,桌面上显示出一个名称为“Device”的图标。
7.右键选中“Device”的图标,在弹出的选单中选择“property”。打开“property”属性窗口,选择“Generral”标签,将FileName改变为DriveC.kdelnk,再选择“Device”标签,在“Device”下键入“/dev/hda1”,在“Mount Point”下键入“/mnt”。点击OK按钮,关闭窗口。
8.已经设置完毕。退出KDE桌面环境,保存所做的修改。然后再次启动KDE,在桌面上直接点击“DriveC”图标,这时,Windows操作系统的C盘内的所有文件已经尽收眼底了。
在Linux桌面环境下(KDE、GNOME)已经实现了自动mount FAT16分区的逻辑盘C,并可以在Linux操作系统和Windows98操作系统之间共享同一个文件目录。
抛砖引玉
Linux并非我们想象的那样难于驾驭,它也同样具备界面友好和操作简单的特性。文中并未对每一操作步骤进行解释,也没有讲述如何实现WindowsNT的NTFS分区与Linux的共享以及如何通过编程实现该功能,希望大家能够进一步的思考,提出更多的问题,并提供更好、更合理的解决方法。
我个人认为Linux 操作系统的普及势不可挡,势在必行。Linux的优点不再赘述,只想谈一谈迟滞Linux普及的几点原因。
既成的事实:安装Windows操作系统的机器铺天盖地;而Linux宛若晨星;使用Windows的人多;使用Linux的人少;Windows上的相关产品和软件多;Linux上的产品和软件少;Windows广告宣传多;Linux广告宣传少。
习惯性的思维:戴着Windows的有色眼镜来审视Linux。