• 软件测试技术
  • 软件测试博客
  • 软件测试视频
  • 开源软件测试技术
  • 软件测试论坛
  • 软件测试沙龙
  • 软件测试资料下载
  • 软件测试杂志
  • 软件测试人才招聘
    暂时没有公告

字号: | 推荐给好友 上一篇 | 下一篇

(转)在UNIX下访问DOS分区

发布: 2007-6-08 22:43 | 作者: seanhe | 来源: | 查看: 25次 | 进入软件测试论坛讨论

领测软件测试网
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/


关于领测软件测试网 | 领测软件测试网合作伙伴 | 广告服务 | 投稿指南 | 联系我们 | 网站地图 | 友情链接
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备10010545号-5
技术支持和业务联系:info@testage.com.cn 电话:010-51297073

软件测试 | 领测国际ISTQBISTQB官网TMMiTMMi认证国际软件测试工程师认证领测软件测试网