1. 简介
Linux内核支持众多的文件系统类型,目前它可以读写(至少是读)大部分的文件
系统.Linux经常与Microsoft Windows共存于一个系统或者硬盘中.Linux对
windows9x/NT的文件系统支持的很好,反之你想在windows下用Visual C++
编程的同时能看一看Linux的GCC-HOWTO则必须得费点劲.本文试图给你一个简
单的帮助.
这份文件的作者是:
Liu Jingwen
liujw@ihepa.ac.cn
最新的版本v0.1及相应软件:
Web Site :
http://www.ihepa.ac.cn/~liujw/
目前只有中文版可以下载.
这份 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 TOOLS 是 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/had 或
/dev/hdb, 不给出路经,ldir将要搜索此驱动器上的第一个
LINUX分区.须指出,若省缺选项 -s/dev/...,ldir会用它在
编译时预先指定的硬盘(通常为/dev/had).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:windowssystem
tsdext2.vxd -> c:windowssystemiosubsys
添加 c:fsdext 到系统 PATH 后重启动.
2.3.2 Mount/Umount Linux Ext2 文件系统
运行c:fsdextmount.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/had
第二块硬盘 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 +++ 是