本篇博客主要记录13.1.1节到13.1.2节的内容,通过bochs/bin目录下的bximage程序创建80MB的硬盘作为从盘,然后在磁盘上创建分区表。
一、创建从盘
从盘创建好后,将从盘信息写入bochs配置文件
#Bochs运行中使用的内存,设置为32M
megs: 32
#设置真实机器的BIOS和VGA BIOS
#修改成你们对应的地址
romimage: file=/home/lsyzq/os/bochs/share/bochs/BIOS-bochs-latest
vgaromimage: file=/home/lsyzq/os/bochs/share/bochs/VGABIOS-lgpl-latest
#设置Bochs所使用的磁盘
#设置启动盘符
boot: disk
#设置日志文件的输出
log: bochs.out
#开启或关闭某些功能,修改成你们对应的地址
mouse: enabled=0
keyboard:keymap=/home/lsyzq/os/bochs/share/bochs/keymaps/x11-pc-us.map
#硬盘设置
ata0: enabled=1, ioaddr1=0x1f0, ioaddr2=0x3f0, irq=14
ata0-master: type=disk, path="hd60M.img", mode=flat, cylinders=121, heads=16, spt=63
ata0-slave: type=disk, path="hd80M.img", mode=flat, cylinders=162, heads=16, spt=63
#增加bochs对gdb的支持,我们在这里不使用,所以注释掉了
#gdbstub: enabled=1, port=1234, text_base=0, data_base=0, bss_base=0
配置文件如上,在硬盘设置中新增了ata0-slave的相关信息。
二、从盘创建分区表
磁盘分区表位于MBR引导扇区与EBR引导扇区中,在此解释以下MBR与EBR的不同之处
MBR:主引导记录,位于磁盘0盘0道1扇区,结构为【主引导记录MBR】→【磁盘分区表DPT】→【结束魔数0x55AA】
EBR:扩展引导记录,位于子扩展分区最开始的扇区,结构与MBR相同
为从盘创建分区表的过程主要用到了Linux的fdisk命令,过程如下
可能由于fdisk命令版本不同,我这里需要通过fdisk -help设置参数后才与上面的过程一致,需要在fdisk命令中手动指定以下两项。
最终得到的分区结果如下:
hd80M.img的分区布局图总体如下:
本节就是创建硬盘,并为其创建分区表,主要内容到此结束,后面把书上的硬盘相关概念记录一下,避免以后忘记。
三、磁盘相关概念
跟磁盘相关的就是盘片、扇区、磁道、磁头、柱面,分区这个概念是在本书中才知道的,mark一下。