Bochs虚拟机安装及使用

在学习操作系统时需要用虚拟机进行实验,Bochs虚拟机即是免费的又能够在里面进行调试,因此现在改用Bohcs虚拟机。以下记录了安装和配置的过程(仅在windows下)。

下载安装Bochs

可以在此处进行下载:

下载
下载完成后运行安装,建议安装到不需要管理员权限的位置。

配置虚拟机

参考自,在bochs根目录下新建一个文件bochsrc,内容为:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
megs:32

romimage:file=$BXSHARE/BIOS-bochs-latest
vgaromimage:file=$BXSHARE/VGABIOS-lgpl-latest

floppya:1_44=a.img,status=inserted

boot:floppy

log:bochsout.txt

mouse:enabled=0

keyboard: keymap=$BXSHARE/keymaps/x11-pc-de.map

其中,floppya为A盘的软盘映像,若需要使用B盘,可以加上一行floppyb的配置。

创建虚拟软盘

运行bximage,进行软盘创建:

bximage

可以看到这个默认的a.img就是上一步中的a盘,我们将二进制文件复制进去运行。

运行虚拟机

在Bochs的根目录下,按shift+右键打开power shell窗口,输入

1
.\bochs.exe -qf bochsrc

运行刚刚配置好的虚拟机(注意,此时a.img中的首扇区必须有正确格式的引导程序,否则会报错)

使用dd进行文件合并

在修改软盘时,每次都要用WinHex进行手动修改实在是太麻烦了,Linux上有dd进行文件合并、分割,万幸,在Windows下也有dd for Windows可以帮助我们进行文件合并与分割,下载链接在这里(已修改)

使用时,可以用以下语句:

1
dd if=3_2_0.bin of=a.img bs=512 count=1

  • if:输入文件
  • of:输出文件
  • bs:每一块的默认大小(512字节)
  • seek:在输出时,跳过of的块数量
  • skip:在复制时,跳过if的块数量
  • count:复制的块的数量
  • conv:输出时文件格式,其中conv=notrunc为不截断输出文件
  • 还有其它参数及conv的其它值可进行选择,这里只举出常用的不一一列举。