Unix 系统和 DOS 系统可安装在同一台机器上 , 在实际应用中 , 两套系统相对独立 , 各自占用不同的分区 , 由此形成 Unix 分区和 DOS 分区。这两个分区差异较大 , 分别属于不同的操作系统 , 在它们间进行数据共享有一定的难度。为此 ,Unix 专门提供了一种机制 , 借助这种机制 , 在 Unix 下可方便地实现对 DOS 分区的访问。本文着重讨论访问的具体方法 , 供参考。
用 Unix 文件名标识 DOS 磁盘驱动器
在 Unix 系统下 , 文件可分为普通文件、目录文件、特别设备文件三类 , 其中特别设备文件与一些硬件设备对应。比如。常见的软磁盘 A 驱动器被标识为 /dev/fd0135ds18, 一般对该驱动器的访问是通过访问特别设备文件 /dev/fd0135ds18 实现的。在这类操作系统下文件的概念是很广的 , 硬件设备也是文件的一种 , 要想访问该设备 , 首先要弄清楚该设备的文件名。
DOS 系统下的各磁盘分区 , 在 Unix 中所对应的文件名比较复杂。即使磁盘分区名相同, 它们所对应的文件名也未必相同 , 一台机器有可能装两个硬盘 , 分别为主硬盘和副硬盘。在安装 Unix 的过程中 , 系统将自动创建主硬盘上 DOS 系统所对应的特别设备文件 , 这些文件位于 /dev/dsk 目录下 ,
副硬盘上 DOS 系统所对应的特别设备文件 , 在安装完 Unix 以后 , 需要系统管理员自己创建。下面是副硬盘上各 DOS 磁盘分区所对应的特别设备文件的创建过程 :
1. 以 root 注册 , 进入 /dev/dsk 目录。
2. 执行下列命令 , 创建各特别设备文件 , 其中 1sC 表示副硬盘的 C 盘 , 其他的依次类推。
mknod 1sC b 1 112
mknod 1sD b 1 113
mknod 1sE b 1 114
mknod 1sF b 1 115
mknod 1sG b 1 116
3. 下面以 D 盘为例 , 设置特别设备文件的存取权限、属主和属组。
chmod 640
1sD
chown dos
1sD
chgrp
sysinfo
1sD
通过上述讨论 , 我们弄清了 DOS 系统下各磁盘分区在 Unix 下所对应的特别设备文件名。比方说 , 副硬盘上的磁盘分区 D, 它对应的特别设备文件名是 :/dev/dsk/1sD 。弄清楚这些文件名 , 对 DOS 分区的访问至关重要。
用 Unix 专用命令访问 DOS 分区
为实现对 DOS 分区的访问 ,Unix 提供了几条专用命令。这些命令均以 DOS 打头 , 存放在/usr/bin 目录下 , 常用的有 doscat 、 doscp 、 dosdir 、 dosformat 、 dosmkdir 、 dosrm 、 dosrmdir 等。这几条命令分别和 DOS 系统下的 type 、 copy 、 dir 、 format 、 md 、 del 、 rd 等命令相对应 , 功能也相差无几。以下是几个应用实例 ( 假设 DOS 分区 C 在主硬盘上 :
1. 查询 C 盘上的 DOS 目录内容 :
dosdir /dev/dsk/0sC/dos/*
2. 查询 DOS 目录下文件 dosshell.ini 的内容 :
doscat /dev/dsk/0sC/dos/dosshell.ini
3. 将 C 盘 DOS 目录下的文件 dosshell.ini 拷贝到 Unix 下的 /tmp 下 :
doscp /dev/dsk/0sC/dos/dosshell.ini /tmp/dosshell.ini
值得注意的是 , 在 Unix 下目录符号统一用 "/", 而不是 "\" 。此外 , 为了与 DOS 命令保持一致 , 在访问 DOS 时可直接使用磁盘驱动器符号。在使用前需要在文件 /etc/defaut/msdos 中指明二者间的对应关系 , 该文件内容如下 :
# default/msdos - devices for dos accessing commands: doscmd(C) A=/dev
/install B=/dev/install1 C=/dev/dsk/0sC
# 主硬盘上的 DOS 分区 C D=/dev/dsk/1sD
# 副硬盘上的 DOS 分区 D E=/dev/dsk/1sE
# 副硬盘上的 DOS 分区 E
这样一来 , 查询 C 盘上的 DOS 目录内容可以写成 : dosdir C/dos/* 。用 Unix 普通命令访问 DOS分区
通过修改系统配置 , 可以将 DOS 系统看成 Unix 系统下的一个文件系统。然后 , 再使用 mount 命令把 DOS 系统挂到一个空目录上 , 这样一来 , 将对 DOS 分区的访问转换为对 Unix 系统目录的访问 , 操作起来更加方便。
1. 修改系统配置 , 使 Unix 系统能够支持 DOS 文件系统。在超级用户下 , 执行命令 "mkdev dos", 选择 "1" 增加对 DOS 系统的支持 , 重新连接操作系统内核。关机 , 再次进入 Unix 后, 系统就能够识别 DOS 文件系统。
2. 将 DOS 安装到一空目录下 , 以下命令将主硬盘上 DOS 分区 C 安装到 /mnt 目录下 :
mount -f DOS /dev/dsk/0sC /mnt
这时 ,DOS 系统下磁盘 C 上的内容便映射到目录 /mnt 下 ,Unix 系统将该目录看成一普通目录 ,cat 、 more 、 cp 、 rm 、 mv 等常用命令均可访问该目录。例如 , 下面的命令将文件 c:\dos\dosshell.ini 拷贝到 Unix 系统下的 /tmp 目录下 :
cp /mnt/dos/dosshell.ini /tmp
呵呵,像是Handbook的汉化,
gqywf 回复于:2003-04-28 23:20:37 |
支持fat32吗,如果不支持的话,就没什么用了 |
htldm 回复于:2003-04-28 23:41:58 |
很遗憾!sco openserver目前还不支持! |
answer 回复于:2003-04-29 09:00:26 |
有点鸡肋的感觉,
不支持fat32. |
sunandsun 回复于:2003-04-29 18:56:39 |
可以用别的工具 将FAT32 转换成FAT16 ,在DOS 下用 PQMAGIC |
jh928 回复于:2003-04-30 17:26:03 |
[quote:807a20409f="小马"]
不是好办法,最好还是sCO能够直接支持FAT32,否则2G以上的分区都不能用了[/quote:807a20409f] 概念错误,root分区可用DTFS和HTFS,最大支持1T,不支持FAT32,只是不太方便访问FAT32分区,目前还只有借助于第三方软件 |
小马 回复于:2003-04-30 16:38:55 |
[quote:9f87375356="sunandsun"]可以用别的工具 将FAT32 转换成FAT16 ,在DOS 下用 PQMAGIC[/quote:9f87375356]
不是好办法,最好还是sCO能够直接支持FAT32,否则2G以上的分区都不能用了 |
无生相 回复于:2003-04-30 17:58:28 |
Sco就是比较顽固,
其他主流的Unix大多已经支持访问Fat32甚至Ntfs了,呵呵,就是Sco比较N,就是不给你支持。 |
fhbkyo 回复于:2003-05-07 08:55:54 |
那还不如用其他工具从进入访问分区 |
fhbkyo 回复于:2003-05-07 08:57:18 |
那还不如用其他工具从DOS进入访问UNIX分区 |
blue_sky 回复于:2003-05-07 10:57:22 |
[quote:1ae4cdcfbc="fhbkyo"]那还不如用其他工具从DOS进入访问UNIX分区[/quote:1ae4cdcfbc]
楼上的朋友,你有这个工具吗,请告知,谢谢! |
doengan 回复于:2003-05-07 11:28:16 |
很是遗憾 |
richarder 回复于:2003-05-07 15:14:03 |
好像系统装完后都配置好了嘛
直接可用 dosdir c:/xxx a:/xxx等 其他几条命令也一样 |
johnsilver 回复于:2003-06-23 19:09:08 |
good,很有启发. |
延伸阅读
文章来源于领测软件测试网 https://www.ltesting.net/