以ubuntu操作系统为例

一、命令行安装

sudo apt-get install vgabios bochs bochs-x bximage

此方法方便,不过都说这个方法安装的bochs没有调试功能,所以我没有尝试,有时间再补充验证吧

二、源码安装

1. 源码下载

https://sourceforge.net/projects/bochs/files/bochs/

直接下载当前最新的源码,准备在linux上安装,所以下载的 bochs-2.6.9.tar.gz

2. 安装前准备

sudo apt-get install build-essential xorg-dev libgtk2.0-dev bison

省掉config过程很多依赖编译报错

3. 编译安装

sudo tar xvzf bochs-2.6.9.tar.gz

cd bochs-2.6.9

./configure  --enable-debugger --enable-disasm --enable-readline -LIBS='lx11'

make

sudo make install

make install 会把bochs可执行文件拷贝到/usr/local/bin/目录下

重启linux或者让环境变量重新生效,可以直接在当前目录下调用bochs

4. 修改bochsrc配置文件

在bochs-2.6.9目录下,有一个配置文件 .bochsrc,我们需要修改,让他运行我们的a.img

#cpu: model=core2_penryn_t9600, count=1, ips=50000000, reset_on_triple_fault=1, ignore_bad_msrs=1, msrs="msrs.def"
cpu: model=amd_k6_2_chomper, count=1, ips=50000000, reset_on_triple_fault=1, ignore_bad_msrs=1, msrs="msrs.def"
cpu: cpuid_limit_winnt=0 memory: guest=512, host=256 romimage: file=$BXSHARE/BIOS-bochs-latest, options=fastboot vgaromimage: file=$BXSHARE/VGABIOS-lgpl-latest mouse: enabled=0 pci: enabled=1, chipset=i440fx private_colormap: enabled=0 #floppya: 1_44=/dev/fd0, status=inserted
#floppya: image=../1.44, status=inserted
#floppya: 1_44=/dev/fd0H1440, status=inserted
#floppya: 1_2=../1_2, status=inserted
#floppya: 1_44=a:, status=inserted
floppya: 1_44=a.img, status=inserted, write_protected=1
#floppya: 1_44=/dev/rfd0a, status=inserted ata0: enabled=1, ioaddr1=0x1f0, ioaddr2=0x3f0, irq=14
ata1: enabled=1, ioaddr1=0x170, ioaddr2=0x370, irq=15
ata2: enabled=0, ioaddr1=0x1e8, ioaddr2=0x3e0, irq=11
ata3: enabled=0, ioaddr1=0x168, ioaddr2=0x360, irq=9 #ata0-master: type=disk, mode=flat, path="30M.sample"
#ata0-master: type=disk, mode=flat, path="30M.sample", cylinders=615, heads=6, spt=17
#ata0-master: type=disk, mode=flat, path="c.img", cylinders=0 # autodetect
#ata0-slave: type=disk, mode=vvfat, path=/bochs/images/vvfat, journal=vvfat.redolog
#ata0-slave: type=cdrom, path=D:, status=inserted
#ata0-slave: type=cdrom, path=/dev/cdrom, status=inserted
#ata0-slave: type=cdrom, path="drive", status=inserted
#ata0-slave: type=cdrom, path=/dev/rcd0d, status=inserted boot: floppy
#boot: disk floppy_bootsig_check: disabled=0 log: bochsout.txt panic: action=ask
error: action=report
info: action=report
debug: action=ignore, pci=report # report BX_DEBUG from module 'pci' debugger_log: - parport1: enabled=1, file="parport.out" #sound: driver=default, waveout=/dev/dsp. wavein=, midiout=
#speaker: enabled=1, mode=sound

  有注释的地方基本都是改动过的,解决了下一步启动运行过程中,几个问题

5. 启动运行bochs虚拟机

bochs -f .bochsrc

能到这一步,如果有问题,大部分都是bochsrc配置的问题,可以查看报错点,尝试注释掉,确保最基本的几个配置基本就可以正常运行了

例如:

memory: guest=512, host=256
romimage: file=$BXSHARE/BIOS-bochs-latest, options=fastboot
vgaromimage: file=$BXSHARE/VGABIOS-lgpl-latest
floppya: 1_44=a.img, status=inserted, write_protected=1
boot: floppy

启动过程可能遇到的问题:

问题1:.bochsrc:187: cpu directive malformed

解决方法:

linux终端下:bochs -help cpu

我的电脑是AMD处理器,我就选amd_k6_2_chomper

修改配置文件即可

#cpu: model=core2_penryn_t9600, count=1, ips=50000000, reset_on_triple_fault=1, ignore_bad_msrs=1, msrs="msrs.def"
cpu: model=amd_k6_2_chomper, count=1, ips=50000000, reset_on_triple_fault=1, ignore_bad_msrs=1, msrs="msrs.def"

问题2:.bochsrc:915: Bochs is not compiled with lowlevel sound support

解决方法:修改配置文件,注释掉以下两行

#sound: driver=default, waveout=/dev/dsp. wavein=, midiout=
#speaker: enabled=1, mode=sound

问题3:syntax error at 'dump_cpu'

解决方法:none

bochs 2.3.5 以上的版本没有dump_cpu了,可以用r,fp,mmx,sse,dreg,sreg,creg命令代替

参考:https://blog.csdn.net/time4/article/details/25079417

自己写操作系统 2 - 安装bochs虚拟机的更多相关文章

  1. Windows操作系统下安装Ubuntu虚拟机

    认识VMware虚拟机 VMware(虚拟机)是指通过软件模拟的具有完整硬件系统功能的.运行在一个完全隔离环境中的完整计算机系统,它能在Windows系统上虚拟出多个计算机,每个虚拟计算机可以独立运行 ...

  2. Mac OS X安装之虚拟机环境下的总结

    最近一直忙着公司iOS Touch的新版发布,终于忙过了.现在,又开始了新的阶段,不过算是轻松了很多.回来一看,自己的博客空空如也,实在受不了了.于是,开始更一下吧,哈哈. 这个文档是我几个月前,开始 ...

  3. vmware安装kvm虚拟机

    1. 概述 本篇博客主要使用运行在win10专业版上的vmware workstation 15 pro虚拟化软件,安装centos7.7最小化系统,并在centos7上安装kvm虚拟机,实现快速创建 ...

  4. ubuntu 18.04下virtualbox安装windows虚拟机+增强功能+secureCRT

    先强调一下,我是在Ubuntu里安装windows虚拟机,如果要看如何安装linux虚拟机的话,那么你走错地方了. 我一直使用Linux系统做开发的,选择Ubuntu是因为多数常用软件对Ubuntu支 ...

  5. 6、安装kvm虚拟机

    6.1.虚拟机开启虚拟化: 6.2.检查linux虚拟机cpu是否开启了虚拟化: egrep -o 'vmx|svm' /proc/cpuinfo vmx 6.3.安装kvm管理和安装kvm虚拟机的软 ...

  6. Windows 8.1 Hyper-V安装的虚拟机

    一.安装Hyper-v Hyper-V内置于Windows 8中,用户无需格外的下载安装文件,只需要到Windows 8的程序管理中将其选中开启功能即可. 具体步骤:控制面板→程序→启用或关闭Wind ...

  7. 安装virtualbox虚拟机的增强功能

    转自:http://wubangtu.com/714 最近有很多人问我这个问题,现在全部写在这里,免得到时候又啰嗦一遍了,哈哈.欢迎大家前来围观: 安装virtualbox虚拟机的增强功能可以实现如下 ...

  8. 【Linux探索之旅】第一部分第六课:Linux如何安装在虚拟机中

    内容简介 1.第一部分第六课:Linux如何安装在虚拟机中 2.第二部分第一课预告:终端Terminal,好戏上场 Linux如何安装在虚拟机中 虽然我们带大家一起在电脑的硬盘上安装了Ubuntu这个 ...

  9. 怎么在Windows下安装Linux虚拟机

    前提:①电脑有安装好VMware Workstation Pro虚拟机,没有的话点此下载并安装.②下载好CentOS-7-x86_64-DVD-1503-01镜像文件,没有点此下载密码:lomg. 1 ...

随机推荐

  1. keil调试问题记录

    1.错误类型:L6218E:Underfined symbol &&&&&&&&& (referred form &&a ...

  2. 笔记-docker-2安装(centos6.5环境)

    笔记-docker-2安装(centos6.5环境) 1.      centos6.5安装docker 1.1.    升级内核 安装docker,官方文档要求linux kernel至少3.8以上 ...

  3. 11 Django组件-分页器

    Django的分页器(paginator) view from django.shortcuts import render,HttpResponse # Create your views here ...

  4. Webpack标准配置

    let htmlWebpckPlugin= require('html-webpack-plugin');//该组件能将src下面提定的html文件与打包后在js文件打包在一起module.expor ...

  5. Mybatis常用xml

    工作中mybatis常用的xml代码 <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE ma ...

  6. 设置MySQL允许外网访问 费元星 feiyuanxing.com 站长

    1.修改配置文件sudo vim /etc/mysql/my.cnf把bind-address参数的值改成你的内/外网IP或0.0.0.0,或者直接注释掉这行. 2.登录数据库mysql -u roo ...

  7. 对setTimeout函数的理解

    之前去面试一家公司时,面试官出了一道关于js的setTimeout函数的题目: /* *面试官给的原题目如下: *执行mytest()后,控制台输出内容是_____ *function mytest( ...

  8. 【Balanced Binary Tree】cpp

    题目: Given a binary tree, determine if it is height-balanced. For this problem, a height-balanced bin ...

  9. fiddler如何抓取夜神模拟器上的包

    一.设置Fiddler代理 1.点击Tools-Fiddler Options进入Fiddler Options页面 2.点击Connections,将Fiddler listens on port设 ...

  10. python作业:HAproxy配置文件操作(第三周)

    一.作业需求: 1. 根据用户输入输出对应的backend下的server信息 2. 可添加backend 和sever信息 3. 可修改backend 和sever信息 4. 可删除backend ...