- 论坛徽章:
- 1
|
请问sco unix怎样访问fat16分区?
贴一个详细的文章:
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 |
|