下载Bochs
Download bochs-2.6.8.tar.gz (Bochs x86 PC emulator) (sourceforge.net)
解压
tar -zxvf bochs-2.6.8.tar.gz
编译安装
配置
进入bochs-2.6.2文件夹,执行以下语句,其中我把bochs安装在了我的/home/minios/bochs目录下,读者可自行修改
./configure \
--prefix=/home/minios/bochs \
--enable-debugger \
--enable-disasm \
--enable-iodebug \
--enable-x86-debugger \
--with-x --with-x11
配置过程中如有报错,可自行网上查阅修改
本人遇到的错误:
ERROR: pkg-config was not found, or unable to access the gtk+-2.0 package. Install pkg-config and the gtk+ development p
解决方案:
sudo apt-get install libgtk2.0-dev
配置成功界面:
编译
执行make命令进行编译
make
注意,刚开始我使用bochs2.6.2版本编译的时候会报错,但是我换成bochs2.6.8版本后就直接编译成功了
编译成功界面
安装
make install
安装成功的标志:
在安装路径(/home/minios/bochs)下生成了bin文件夹
配置Bochs
进入bochs目录(安装目录),新建boot.disk文件,写入以下配置,注意将相应目录修改为自己设置的目录
vim boot.disk
# 设置 Bochs 在运行过程中能够使用的内存,本例为 32MB
megs: 32# 设置对应真实机器的 BIOS 和 VGA BIOS
romimage: file=/home/minios/bochs/share/bochs/BIOS-bochs-latest
vgaromimage: file=/home/minios/bochs/share/bochs/VGABIOS-lgpl-latest# 设置 Bochs 使用的磁盘
# floppya: 1_44=a.img, status=inserted# 选择启动盘符
# boot: flopy # 默认从软盘启动
boot: disk # 从硬盘启动,我们的任何代码都将直接写在硬盘上,所以不会再有读写软盘的操作。# 设置日志文件输出
log: bochs.out# 关闭鼠标,打开键盘,按照书上写会报错
mouse: enabled=0
#keyboard: enabled=1,
keyboard: keymap=/home/minios/bochs/share/bochs/keymaps/x11-pc-us.map# 硬盘设置
ata0: enabled=1, ioaddr1=0x1f0, ioaddr2=0x3f0, irq=14# 增加 Bochs 对 GDB 的支持,GDB 远程连接到此机器的 1234 端口便可调试
# gdbstub: enabled=1, port=1234, test_base=0, data_base=0, bss_base=0
保存退出
启动bochs
./bin/bochs -f boot.disk
如下图所示, 看到数字[6]就直接按下回车,之后再按键盘c,否则报错就检查错误,如配置文件中的路径是否写对等
安装成功!
创建启动盘
仔细观察上述运行成功的bochs,可以看到bochs会报错显示
Boot failed:could not read the boot disk
那是因为此时系统中还没有启动盘,接下来我们需要创建启动盘
bochs给我们提供了创建虚拟硬盘的工具,使用如下命令可以查看相关指令
./bin/bximage --help
接下来我们来根据帮助创建虚拟硬盘,在终端输入
./bin/bximage
其余具体步骤如下所示
接下来,我们需要将创建的虚拟硬盘的信息写入到配置文件中,注意柱面、磁道和扇区信息(上图红框中的CHS信息)也要写进去
打开配置文件
vim boot.disk
加入以下代码
ata0-master: type=disk, path="hd60M.img", mode=flat,cylinders=121,heads=16,spt=63
完整文件内容
# 设置 Bochs 在运行过程中能够使用的内存,本例为 32MB
megs: 32# 设置对应真实机器的 BIOS 和 VGA BIOS
romimage: file=/home/minios/bochs/share/bochs/BIOS-bochs-latest
vgaromimage: file=/home/minios/bochs/share/bochs/VGABIOS-lgpl-latest# 设置 Bochs 使用的磁盘
# floppya: 1_44=a.img, status=inserted# 选择启动盘符
# boot: flopy # 默认从软盘启动
boot: disk # 从硬盘启动,我们的任何代码都将直接写在硬盘上,所以不会再有读写软盘的操作。# 设置日志文件输出
log: bochs.out# 关闭鼠标,打开键盘,按照书上写会报错
mouse: enabled=0
#keyboard: enabled=1,
keyboard: keymap=/home/minios/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# 增加 Bochs 对 GDB 的支持,GDB 远程连接到此机器的 1234 端口便可调试
#gdbstub: enabled=1, port=1234, test_base=0, data_base=0, bss_base=0
保存退出,再次运行bochs
./bin/bochs -f boot.disk
可以看到,虽然仍旧报错,但是报错信息不再是不能读取启动盘,说明启动盘已经创建好了
Boot failed:not a bootable disk
参考:
《操作系统真象还原》第一章 ---- 安装Vmware Station 安装Ubuntu 装载配置Bochs 安装Vmware tools 开始乘帆历险!_学习操作系统真相还原安装虚拟机-CSDN博客
操作系统真象还原环境搭建-详细实践版 - 知乎 (zhihu.com)