在linux系统下,如何读在WIN系统下的文件。(100分)

  • 主题发起人 主题发起人 qgr
  • 开始时间 开始时间
Q

qgr

Unregistered / Unconfirmed
GUEST, unregistred user!
我的机器装有:
linux系统和WIN2000,现在问题是:
在linux下,访问不了在win2000下的文件,我怎样才能在linux下访问MS-DOS的格式文件。
听说用MOUNT的格式,可以做,不过我没有做成。
请各位富翁帮忙,指点一下
 
据我以前的经验,至REDHAT7.3为止,还不能访问NTFS格式的分区,不过,FAT/16/32都可以
在安装时指定一个装入点,就可以很轻易访问了.更高级的我也不知了,不知哪位知道有
什么样工具可以扩展这个功能
 
我现在是redhat 7.2版本的,WIN下的分区是FAT32格式的,现在我系统都装好了,如果重装
linux,我怕把东西丢了
 
在装好的环境下我没试过,不过安装时有维护模式,无损数据的!
 
linux 下可以访问 FAT16 FAT32 NTFS分区。NTFS分区只读。
REDHAT 7.x default情况下NTFS没有编译到内核模块中。
我按以下的实际验证成功过:
以下摘抄:
找到编译内核所需要的.config文件。
在/usr/src/linux/configs目录下有若干编译内核所用的配置。
选择我们想要的配置,将它复制到/usr/src/linux目录下,
改名为.config,命令如下:
cp /usr/src/linux/configs/kernel-2.2.16-i686.config /usr/src/linux/.config

2 、修改.config文件,去掉不用的模块,加上自己想要的模块。
打开.config,有许多XXXX=m的项,这些都是要被编译为模块的项,
因为我们不希望编译这些模块,所以要把XXXX=m的项统统去掉。
然后再加上我们想要的模块,将# CONFIG_NTFS_FS is not set
改为CONFIG_NTFS_FS=m 当然,可以用你熟悉各种工具来做这件事。

3、编译NTFS模块。 在/usr/src/linux目录下运行命令make modules
来编译我们想要的NTFS模块。

4、安装NTFS模块。 编译后得到的ntfs.o在/usr/src/linux/fs/ntfs目录下
,手动将它复制到正确的目录下。 cp /usr/src/linux/fs/ntfs/ntfs.o
/lib/modules/2.2.16-22/fs/

  注意:千万不能运行命令make modules_install,
否则将带来严重的后果,它会删除你系统中的所有模块,
只安装刚刚编译的模块(ntfs.o)。

  5、载入NTFS模块. 运行命令depmod;modprobe ntfs

然后 mount -t ntfs /dev/hd.... 就行了。

注意:对中文文件名不支持!


 
我现在是FAT32的格式,没有必要重新编译内核了,只运行 mount -t ntfs /dev/hd应该
就可以的,但是我运行的时候,有错:系统已经MOUNT了该设备,不知为什么,是MOUNT成功
了,已经可以访问了,还是我不会看呢
 
楼主,你有没有搞定?
 
不用那么麻烦吧,要访问MS-DOS分区不用重新编译内核。
mount /dev/hd /tmp/msdos
 
to 三代坦克兄:
确实不错。可否把用linux的经验共享。大家一起研究研究,共同进步。
luckhacker@163.com
 
哎,能不能经验共享 ? 我的是 red hat 7.2
 
这样可以的:在根用户下,打开/etc/fstab文件,进行编辑,在末尾加入如下
/dev/hda1 /c vfat defaults 0 0
/dev/hda5 /d vfat defaults 0 0
两行,fstab文件变成如下:
----------
LABEL=/ / ext2 defaults 1 1
/dev/fd0 /mnt/floppy auto noauto,owner 0 0
none /proc proc defaults 0 0
none /dev/pts devpts gid=5,mode=620 0 0
/dev/hda8 swap swap defaults 0 0
/dev/cdrom /mnt/cdrom iso9660 noauto,owner,kudzu,ro 0 0

/dev/hda1 /c vfat defaults 0 0
/dev/hda5 /d vfat defaults 0 0
------------------------
然后,在 / 目录下新建 /c 和 /d 两个目录(当然,你也可以建在其他目录下)
运行 # mount /c
# mount /d
这样就把win下的c盘和d盘以 /c和/d 的目录方式映射 到linux下了,以后不用每次开机都要挂接。
注:c盘是/dev/hda1,d盘是/dev/hda5,假如有e盘,则是/dev/hda6,余下类推即可。
---在 RH 7.1 +WIN2k pro 下通过。
 
to :蛐蛐,还没有搞定,jrq的方法可以一试,要回家做了。谢谢各位富翁
 
最近,本人的“座机”上配备了一块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,把F
AT16分区的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。
http://www.hrbs.net/php/brightsunbbs/showthread.php?threadid=464


 

   Linux 内 核 支 持 众 多 的 文 件 系 统 类 型, 目 前 它 可 以 读 写( 至 少 是 读) 大 部 分 的 文 件 系 统.Linux 经 常 与Microsoft Windows 共 存 于 一 个 系 统 或 者 硬 盘 中.Linux 对windows9x/NT 的 文 件 系 统 支 持 的 很 好, 反 之 你 想 在windows 下 用Visual C++ 编 程 的 同 时 能 看 一 看Linux 的GCC-HOWTO 则 必 须 得 费 点 劲. 本 文 试 图 给 你 一 个 简 单 的 帮 助.

   这 份 HOWTO 是 免 费 文 件(free documentation); 你 可 以 在FSF 出 版 的 GNU GPL 之 规 定 下 重 新 散 播 及/ 或 修 改 它; 您 可 以 自 由 决 定 适 用 GPL 2.0 或 之 後 的 任 何 版 本.

   希 望 这 份 文 件 的 发 布 能 对 您 有 帮 助, 但 我 们 不 提 供 任 何 保 证, 即 使 是 商 业 上 或 某 特 殊 用 途 的 隐 含 保 证 亦 然. 详 情 请 参 见 GNU 一 般 公 开 授 权 书.

   本 文 在 不 影 响 理 解 的 前 提 下, 不 区 分 文 件 系 统 和 分 区 的 概 念.

   1. Linux 存 取 FAT/FAT32/NTFS 分 区.

   Linux 内 核 应 至 少 支 持 fat/msdos 文 件 系 统( 安 装 后). vfat 文 件 系 统 一 般 编 译 为 Module , 可 以 用 modprobe vfat 装 入. ntfs 在 版 本 较 高 的 内 核 里 可 以 支 持. 如 果 你 用 的 是2.0.3?, 就 需 要 到 这

ftp://sunsite.unc.edu/pub/Linux
/system/filesystems/ntfs.tar.gz

   下 载 一 份 回 来, 然 后 patch 到 内 核 中 再 编 译.

   fat/vfat 分 区 可 以 mount 成 可 读 写 的 文 件 系 统(rw). ntfs 分 区 目 前 只 能mount 成 只 读(ro) 的 文 件 系 统.

   2. Microsoft 存 取 ext2 分 区.

   2.1. EXT2 TOOLS v1.1

   EXT2 TOOLS 是 一 组 在 DOS 下 可 以 让 你 读 LINUX EXT2 文 件 系 统 的 工 具 包. 它 由 以 下 程 序 组 成:

E2CAT 类似于 Linux的 cat命令
E2CD 类似于 Linux的 cd 命令
E2CP 类似于 Linux的 cp命令
E2LS 类似于 Linux的 ls命令
E2PART 列出硬盘的分区信息
E2PWD 类似于 Linux的 pwd命令
EXT2 TO 是 GNU General Public License软件,版权所有
(C) 1995 Claus Tondering (ct@login.dknet.dk),
ext2tool_1_1.zip可以从
ftp://sunsite.unc.edu/pub/Linux/system/filesystems/ext2/
处匿名下载.

   现 在 所 有 的 程 序 已 在 GCC 下 编 译, (DOS 下) 运 行 时 需 要 GO32 DOS 扩 展 程 序GO32.EXE. GO32.EXE 包 含 在 EXT2TOOLS 的 发 布 中,做 为DJGPP 的 一 部 分,GO32.EXE 还 可 以 从

ftp://oak.oakland.edu/SimTel/venders/djgpp
匿名下载.
2.1.1. 安装 EXT2 TOOLS
[MSDOS]
>mkdir c:/ext2l
>pkunzip -d ext2tool_1_1.zip
>dir

2.1.2. 运行 EXT2 TOOLS
在运行前设置环境变量:

> SET E2CWD=129:5

> SET E2CWD=129:5:234
| | | |__目录的i节点号,缺省为根i节点号2.
| | |_____ EXT2文件系统的LINUX分区.
| |________物理硬盘的代号:
| 0: A软驱
| 1: B软驱
| 128:第一块硬盘
| 129:第二块硬盘
|_____________环境变量

   保 证 GO32.EXE 在 系 统 PATH 中.

   运 行 e2ls 命 令 就 能 列 出 第 二 块 硬 盘 的 第 五 分 区 的 文 件 系 统.

   运 行 e2part 129 命 令 能 列 出 第 二 块 硬 盘 的 分 区 情 况.

   2.1.3. EXT2 TOOLS 可 以 在 Microsoft Windows3x/9x 下 运 行,

Peeter Joot (peeter@accessv.com,
peeter_joot@vnet.ibm.com)
把 EXT2 TOOLS移植到 NT上. EXT2 TOOLS之 NT版
ext2nt-1.06.tar.gz可以从

ftp://sunsite.unc.edu/pub/Linux/utils/dos/

   处 下 载, 安 装 和 使 用 方 法 类 似.

   2.1.4 存 在 的 问 题

   第 三 块 硬 盘 (IDE) 和 SCSI 硬 盘 支 持 否 因 机 器 而 异. 可 用 与 否 取 决 于 系 统 是 否 依 赖 中 断13 访 问 硬 盘.

   2.1.5 命 令 用 法 # Will translate into chinese soon.

# Sorry for my laziness.
E2CAT
  -

SYNOPSIS
E2CAT [-bt] pathname

DESCTIPTION
The E2CAT program will copy the contents of the file
identified by ext2 pathname to the standard output.

The following options are available:

-b Binary mode. No translation performed.

-t Text mode (default). LF translated to CR/LF.

E2CD
  

SYNOPSIS
E2CD pathname

DESCRIPTION
The pathname must identify an ext2 directory. That
directory is made the current working directory.

NOTE
E2CD is a .BAT file that creates another .BAT file
(called ___E2CD.BAT) that modifies the E2CWD envir-
onment variable. It then executes ___E2CD.BAT and
deletes it. (So beware if you already have a file
called ___E2CD.BAT.)

For use with 4DOS, an E2CD.BTM file is also included.
4DOS will use that instead of E2CD.BAT.


E2CP
  

SYNOPSIS
E2CP [-bt] file1 file2

DESCTIPTION
The E2CP program will copy the contents of the file
identified by ext2 pathname file1 to the MSDOS file
file2.

The following options are available:

-b Binary mode (default). No translation performed.


-t Text mode. LF translated to CR/LF.



E2LS
  

SYNOPSIS
E2LS [-adiltr] pathname ...

DESCRIPTION
The pathnames may identify ext2 directories or files.
Wildcard characters (*, [], ?, etc.) may be used in a
manner similar to what the Linux shell allows.

The E2LS program provides a directory listing of the
specified pathnames in a manner similar to the Linux
ls program.

The following options are supported:

-a Include file names starting with . in listing.
-d List only pathname, even if it is a directory.
-i Include inode number in listing.
-l Produce a long listing.
-t Sort by modification time.
-r Reverse the sort order.


E2PART
  --

SYNOPSIS
E2PART diskno

DESCRIPTION
The E2PART program lists the partitions that are
available on a particular physical disk. This program
does not use the E2CWD environment variable, instead
the disk number is given as an argument to the E2PART
program.

BUGS
The program is not very good at identifying MSDOS file
systems.

E2PWD
  -

SYNOPSIS
E2PWD

DESCRIPTION
The E2PWD program prints the current directory.

   2.2. LREAD 2.3

   另 一 个 DOS 下 读 LINUX EXT2 文 件 系 统 的 软 件. LREAD 是 GPL 自 由 软 件. v1.0 由 Jason Hunter and David Lutz 开 发. V2.X 由 Werner Zimmermann 修 改. lread-2.23.zip 可 以 从

ftp://sunsite.unc.edu/pub/Linux/utils/dos/
处 匿 名 下 载.

   2.2.1. 安 装 LREAD

   十 分 简 单, 只 要 在 DOS 下 把 LREAD-2.3.zip 解 开 到 相 应 目 录, 就 会 发 现 原 码 和 二 进 制 程 序 ldir 和 lread, 一 般 无 须 编 译 和 配 置 就 能 运 行.

   LREAD 在windows 3x/9x 能 运 行.

   2.2.3. 命 令 用 法

命令 ldir [-h | -v] [-s/dev/hd..] [Linux_Directory]
列出 ext2 (文件系统)目录

   选 项:

   -h 帮 助 信 息

   -v 版 本 信 息

   -s 指 定 目 录 所 在 的 硬 盘 分 区, 例 如/dev/hda5. 缺 省 值 在 ldir.h 中 指 定. 支 持 软 驱:/dev/fd?. 如 果 仅 指 定/dev/hda 或 /dev/hdb, 不 给 出 路 经,ldir 将 要 搜 索 此 驱 动 器 上 的 第 一 个LINUX 分 区. 须 指 出, 若 省 缺 选 项 -s/dev/...,ldir 会 用 它 在 编 译 时 预 先 指 定 的 硬 盘( 通 常 为/dev/hda).ldir 支 持SCSI 硬 盘 分 区. 相 应 上 述 选 项 可 用/dev/sda 和/dev/sda3.Linux_Directory 要 列 出 的 目 录 名. 省 略 的 话, 则 用/. 全LINUX 路 经 名 定 界 符 用/( NOT /), 支 持 匹 配 符, 大 小 写 敏 感.

命令 lread [-h | v] [-s/dev/hd..] Linux_File [DOS_File]

列出Linux文件或复制到DOS中.
选项
-h帮助信息
-v版本信息
-s参见ldir
Linux_File 合法的 UNIX源文件名.
DOS_File 合法的 DOS目的文件名.省略的话,输出到
标准输出(STDOUT)上.

   2.3 目 前 最 实 用 的 GPL 软 件 是 FSDEXT2

Copyright (C) 1997 by Peter van Sebille.

   此 软 件 只 能 在 win32 下 运 行, 可 以 把 相 应 的 linux ext2 分 区 mount 成 在windows 下 只 读 的 盘, 使 用 极 为 方 便.

   2.3.1 安 装 FSDEXT2

   展 开 95ext2fs.zip 到 一 个 目 录 比 如 c:/fsdext, 运 行

   install.bat 或 直 接 拷 贝 相 关 驱 动 程 序 到 相 应 目 录:

vext2d.vxd - > c:/windows/system
tsdext2.vxd - > c:/windows/system/iosubsys

添加 c:/fsdext到系统 PATH后重启动.

   2.3.2 Mount/Umount Linux Ext2 文 件 系 统

运行c:/fsdext/mount.exe命令就可以把 Linux ext2分区
mount成逻辑分区.

mount /dev/hdb1 g 安上相应分区
| |__ DOS逻辑盘符 d , e, f ...
|
|_________ Linux下相应设备名*

mount /u g 卸掉相应分区

   2.3.3. * 存 在 的 问 题

   假 如 你 的PC 有 两 块IDE 硬 盘 和 一 个IDE 光 驱.

硬件 | 插槽 | M/S | Linux设备名
                        
第一块硬盘 IDE0 Master /dev/hda
第二块硬盘 IDE1 Master /dev/hdc
光驱 IDE1 Slave /dev/hdd

想把 Linux ext2分区 /dev/hdc1 mount到 windows 9X下时必须用

mount /dev/hdb1 g

而不是

mount /dev/hdc1 g !!

   2.3.4. 命 令 用 法(mount /?) :


Ext2 file system mount for Windows 95
Version 0.17 by Peter van Sebille
Usage: MOUNT [[devicename] driverletter] [options]
options:
/r: relax partition ID check when mounting
/u: unload drive (drive letter required)
/d: get current debug level
/d=value: set current debug level
/?: show usage

   3. 比 较

软件 Microsoft平台 易用性 GPL
                      
ext2 tool DOS/windows9x/NT ++ 是
lread DOS/windows9x ++ 是
95ext2fs windows9x +++ 是
__________________
 
今天回去做,这两天比较忙,移动硬盘有坏了,一些东西没有考回去。
 
TO:蛐蛐
我和你的问题差不多的,今天外出了,现在才看贴子,还是囫囵吞枣大看
 
呵呵,好啊!我也是同样的系统!学习
 
后退
顶部