之前从未接触过linux,跟着《操作系统真象还原》这本书尝试使用bochs,但安装和配置过程中出现了很多错误,踩了很多坑,前后历时两天终于成功了。这里记录一下遇到的一些问题和一些操作步骤。
一、安装
一开始没按照书上的版本来,安的是目前最新的2.7版本。这里要先配置好环境,参考:环境配置
sudo yum -y install gtk2 gtk2-devel
sudo yum -y install libXt libXt-devel
sudo yum -y install libXpm libXpm-devel
sudo yum -y install SDL SDL-devel
sudo yum -y install libXrandr-devel.x86_64
sudo yum -y install xorg-x11-server-devel
sudo yum -y install gcc-c++
但是到make(也可能是make install)这一步就进行不下去了,报的错也没找到解决方法。就又去安装了2.6.11版本,按照之前的步骤来就好了。。。
在官网上下载了压缩包后,进入其所在的文件夹下(或者用绝对路径也行),解压。
tar -zxvf bochs-2.6.11.tar.gz
二、配置
解压后得到bochs-2.6.11文件夹,开始配置。这里!!!最好设定一下prefix,自己选一个安装位置,不配置prefix的话bochs就会默认在到usr/local/share/bochs下,这里的文件需要管理员权限才能修改,后面又会遇到问题!
ps:2.7版本的话就没有--enable-disasm这个配置项了。
./configure \
--prefix=/解压后文件的路径/bochs \
--enable-debugger \
--enable-disasm \
--enable-iodebug \
--enable-x86-debugger \
--with-x \
--with-x11
没问题就
make
make install
当时我没有设置prefix,直接安装到了默认路径。在bochs文件夹下写了配置文件bochsrc.disk(可以任意,这里跟着书上来了),参考:配置文件
先不用配置ata0-master项,等创建了hd60M.img(同上,任意名即可)这个文件后再添加上就行。
#关键字为 megs
megs: 32
#设置对应真实机器的 BIOS 和 VGA BIOS 。
#对应两个关键字为 : romimage 和 vgaromimage
romimage: file=/home/ba/bochs/share/bochs/BIOS-bochs-latest
vgaromimage: file=/home/ba/bochs/share/bochs/VGABIOS-lgpl-latest
#选择启动盘符
boot: disk #从硬盘启动
# 设置日志文件的输入位置
log: /home/ba/bochs/bochs.out
# 关闭鼠标,打开键盘
mouse: enabled=0
keyboard: keymap=/home/ba/bochs/share/bochs/keymaps/x11-pc-us.map
# 设置硬盘
ata0: enabled=1,ioaddr1=0x1f0, ioaddr2=0x3f0, irq=14
创建好'hd60M.img'后,加上ata0-master项:
ata0-master: type=disk, path="home/ba/bochs/hd60M.img", mode=flat
之后在bochs文件夹下打开终端,输入
bin/bochs
根据交互信息来,输入配置文件名bochsrc.disk。然后错误就来了!!!提示说reading from bochsrc.disk failed。。。看了很多解决方法,但都不行。最后又重新配置了一下,指定了安装目录就可以了。。。感觉还是权限问题吧。(主要是输入配置文件名时就不能用sudo了。。。)
重新安装了一次到这一步就行了,后面主要参考了这个大佬的配置教程和书上的。
哎,这个过程实在是太折磨人了,本身对linux环境也不了解,在很多意想不到的地方都出了错,还有很多没有写出来的低级的错误。。。总之非常感谢愿意写教程大佬们!!!写这个第一是想着记录一下这个崎岖的过程,第二是万一有人和我遇到一样的问题,说不定能做个参考呢哈哈哈。