[文件系统]Image映象文件

一、创建磁盘映象文件
硬盘总扇区数 = 物理磁道数 X 物理磁头数 X 每磁道扇区数

对于软盘来说,我们可以把它看作是一种具有固定磁道数(柱面数)、磁头数和每磁道扇区数(spt - Sectors Per Track)的超小型硬盘。例如容量是1.44MB的软盘参数是80个磁道、2个磁头和每磁道有18个扇区、每个扇区有512字节。其扇区总数是2880,总容量是80 x 2 x 18 x 512 = 1474560字节。

1 利用Bochs软件自带的Image生成工具
Bochs系统带有一个Image生成工具“Disk Image Creation Tool”(bximage.exe)。用它可以制作软盘和硬盘的空Image文件。在运行并出现了Image创建界面时,程序首先会提示选择需要创建的Image类型(硬盘hd还是软盘fd)。若是创建硬盘,还会提示输入硬盘Image的mode类型。通常只需要选择其默认值flat即可。然后输入你需要创建的Image容量。程序会显示对应的硬盘参数值:柱面数(磁道数、磁头数和每磁道扇区数,并要求输入Image文件的名称。程序在生成了Image文件之后,会显示一条用于Bochs配置文件中设置硬盘参数的配置信息。

2 在Linux系统下使用dd命令创建Image文件。
前面已经说明,刚创建的Image文件是一个内容全为0的空文件,只是其容量与要求的一致。因此我们可以首先计算出要求容量的Image文件的扇区数,然后使用dd命令来产生相应的Image文件。
例如:
(1)建立柱面数是520、磁头数是16、每磁道扇区数是63的硬盘Image文件,其扇区总数为:520 * 16 * 63 = 524160,则命令为:
dd if=/dev/zero of=hdc.img bs=512 count=524160
(2)对于1.44MB的软盘Image文件,其扇区数是2880,因此命令为:
dd if=/dev/zero of=diska.img bs=512 count=2880

14.3.3 利用WinImage创建DOS格式的软盘Image文件
WinImage是一个DOS格式Image文件访问和创建工具。双击DOS软盘Image文件的图标就可以浏览、删除或往里添加文件。除此之外,它还能用于浏览CDROM的iso文件。使用WinImage创建软盘Image时可以生成一个带有DOS格式的Image文件。
方法如下:
a) 运行WinImage。选择“Options->Settings”菜单,选择其中的Image设置页。设置Compression为“None”(也即把指示标拉到最左边)。
b) 创建Image文件。选择菜单File->New,此时会弹出一个软盘格式选择框。请选择容量是1.44MB的格式。
c) 再选择引导扇区属性菜单项Image->Boot Sector properties,单击对话框中的MS-DOS按钮。
d) 保存文件。
注意,在保存文件对话框中“保存类型”一定要选择“All files (*.*)”,否则创建的Image文件中会包含一些WinImage自己的信息,从而会造成Image文件在Bochs下不能正常使用。可以通过查看文件长度来确定新创建Image是否符合要求

二、访问磁盘映象文件中的信息
利用磁盘映象读写工具访问软盘映象文件中的信息(小文件或分割的文件)
在Linux主环境中利用loop设备访问硬盘映象文件中的信息。(大批量信息交换)
利用iso格式文件进行信息交换(大批量信息交换)

1 使用WinImage工具软件
用WinImage打开diskb.img文件,在WinImage的主窗口中会有一个hello.c文件存在。
用鼠标选中该文件并拖到桌面上即完成了取文件的整个操作过程。
如果需要把某个文件输入到模拟系统中,那么操作步骤正好与上述相反。

2 利用现有Linux系统
(1)访问软盘镜象:
mount -t minix rootimage-0.11 /mnt -o loop
其中mount命令的-t minix选项指明所读文件系统类型是MINIX,-o loop选项说明通过loop设备来加载文件系统。
若需要访问DOS格式软盘Image文件,只需把mount 命令中的文件类型选项minix换成msdos即可。

(2)如果想访问硬盘Image文件,就复杂了:
losetup /dev/loop1 hdc-0.11.img
fdisk /dev/loop1
查看分区情况,记下分区起始柱号、扇区数等信息
losetup -d /dev/loop1
losetup -o 512 /dev/loop1 hdc-0.11.img
mount -t minix /dev/loop1 /mnt

说明:用losetup的-d选项把hdc-0.11.img文件与loop1的关联解除,用losetup的-o选项,该选项指明关联的起始字节偏移位置。由上面分区信息可知,这里第1个分区的起始偏移位置是1 * 512 字节。在把第1个分区与loop1重新关联后,我们就可以使用mount命令来访问其中的文件了。在对分区中文件系统访问结束后,最后请卸载和解除关联。
umount /dev/loop1
losetup -d /dev/loop1

原文地址:https://www.cnblogs.com/huqingyu/p/105566.html