当前位置: 代码迷 >> 综合 >> 《操作系统真象还原》第一章 ---- 安装Vmware Station 安装Ubuntu 装载配置Bochs 安装Vmware tools 开始乘帆历险!
  详细解决方案

《操作系统真象还原》第一章 ---- 安装Vmware Station 安装Ubuntu 装载配置Bochs 安装Vmware tools 开始乘帆历险!

热度:73   发布时间:2023-11-17 17:58:52.0

文章目录

    • 专栏博客链接
    • 相关查阅博客链接
    • 前引
    • 安装 ①Vmware WorkStation②Vmware tools③Ubuntu
    • 关于安装Vmware tools补引
    • 下载Bochs
      • ./configure指令
      • 报错一、 缺少c compiler编译器
      • 报错二、C++ preprocessor fails sanity check
      • make指令 make install指令
    • 配置Bochs
      • 报错一、Keyboard_mapping问题
      • 报错二、Bochs is not compiled with gdbstub suppor
      • 修改后的配置文件代码
      • 创建虚拟硬盘
    • 结束语


专栏博客链接


《操作系统真象还原》从零开始自制操作系统 全章节博客链接


相关查阅博客链接


开源虚拟机Bochs安装以及踩坑
实现操作系统(1) Bochs的安装配置&最简单的“操作系统”


前引


前两天我才完成了哈工大的操作系统Lab
但始终感觉到 对操作系统还是有点停留在表面
所以购买了 《操作系统真象还原》
说实话 现在也只看到了50多页 到了安装Ubuntu的时候了
今天下午尝试了一下午CentOS 6
发现联网用火狐下载Bochs根本登不上去网页
并且Vmware tools也无法安装

之后又重新下载了CentOS 7
安装时特别快 而且感觉也特别的简洁大方
而且安装后也自动的把Vmware tools安装了
心里面十分的开心
但之后痛苦的就来了
第一个出现问题后 网络上大部分都是Ubuntu的指令
而CentOS很少有解决办法 导致出现问题后
我要搜索很久才能搜得到相关方案
并且 解压命令也不是我熟悉的那一套
而且最让我脑壳疼的是 我解压后 文件不知道安装到哪里去了!
之后搜索了一下 发现大家安装Ubuntu的还是占多数
我今天下午才对我之前安装的Ubuntu运行速度缓慢才卸载了
结果今天晚上又要重新安装

于是打算对自己写操作系统 每一步都记录下自己的痕迹
就此开篇作为自己的操作系统第一篇记录
所有做过的东西记录下来 才会是自己的
也可以为后来之人提供借鉴与参考意义 这也是我写这些博客的坚持所在


安装 ①Vmware WorkStation②Vmware tools③Ubuntu


关于安装Vmware WorkStation这部分
由于我之前做过三个CSAPP 的 Lab 和 做一些汇编的Lab
那个时候就需要安装虚拟机
所以那个时候我也就安装起了
这部分可以贴出来我原来写的博客
我现在也在安装Ubuntu的过程当中

温馨提醒一下:我建议设置虚拟机的时候处理器个数设置多一点
毕竟你还要花几十上百个小时在虚拟机上面 不如让自己用的爽一点 不那么卡
WIN10虚拟机安装 UBuntu Vmware tools Lab入门测试 环境配置 安装摸索之路

至于你想问我为什么要安装Vmware tools
这个问题我觉得我还是有必要来回答一下的
比如有些文件和有些东西 你是在Windows下看到的
但是你需要把这些东西复制到Ubuntu里面去
这个时候 Vmwaretools 就充当了这个桥梁
安装了这个 你就可以任意的拖动文件 复制文件到两个不同的操作系统中
我相信这个只会为你后面的操作 编写带来很多的益处
可能安装的过程有点繁琐
但是背后带来的益处确实远大于这点时间的


关于安装Vmware tools补引


神奇的是什么 我安装好Ubuntu
就显示已经安装好Vmware tools
可能是因为之前就安装好了的原因


下载Bochs


打开火狐 我们直接Bochs下载走起
2.6.8 Bochs.tar.gz下载链接

在这里插入图片描述


结果一看下载时长 9分钟 9kb每秒 蚌埠住了
此时我就考虑从Windows中先下载 从网页下载转到迅雷下载
再通过Vmware tools复制到Ubuntu就行了
拖动完成了文件复制

在这里插入图片描述
在这里插入图片描述


此时输入指令 打开终端
tar -zxvf bochs-2.6.8.tar.gz 解压成功


./configure指令


终端cd 到bochs中
此时我们不妨先把./configure这些指令打在windows平台上
因为有可能出现某些文件出错而导致我们再重新输入

所以我们先储存到下来 方便复制粘贴


./configure \
--prefix=/home/cooiboi/bochs \
--enable-debugger \
--enable-disasm \
--enable-iodebug \
--enable-x86-debugger \
--with-x \
--with-x11

我们把我们的代码复制粘贴到终端 运行即可
ctrl+shift+v
下面就进入了报错环节了


报错一、 缺少c compiler编译器


注意\的前面要加空格 截图中没有加 后面改了
在这里插入图片描述
解决方案是apt-get -y install gcc
装一个c的编译器

那我们接下来把上面的指令再复制一次
再运行一次 看一下能不能./configure


报错二、C++ preprocessor fails sanity check


错误截图如下
在这里插入图片描述

解决方案
apt-get install build-essential
apt-get install g++


我在报了两次错了
之后 再次./configure 之后
就成功完成了
下面是完成的截图

在这里插入图片描述


make指令 make install指令


接下来我们只需要输入make指令
make
我相信肯定是会报一些错误的 因为之前在CentOS 7 这里也是报了很多错误

但是最奇怪的是
这是我第二次编辑这个博客了
因为我把整篇博客重写了一次

原因是第一次我下载的是 bochs 2.6.11就会出现各种问题
而我重新下载了一个 Bochs 2.6.8
makemake install出奇的顺畅

所以对于这两部 直接输入即可

下面是我们完成编译时的截图
在这里插入图片描述

这个时候我们再去 安装文件的文件夹里面看看
我们是否安装成功了

在这里插入图片描述ok 可以看到bochs已经在我们设置的规定安装路径下
安装这个Bochs也是花费了我一个下午+一个上午的时间才搞定
其中我安装了CentOS 6 发现CentOS 6的火狐已经到了用不了的情况
于是我打算安装谷歌 结果发现也非常难安装

然后我又安装了CentOS 7 意外发现CentOS 7简洁 明了
而且运行速度非常快 火狐也来到了新版本 任意登陆网站
Vmware tools也是自己就安装好了
结果到了安装 Bochs 也是出现各种大大小小的问题
并且发现网上大部分出现问题的指令 都是针对Ubuntu
对于CentOS 非常少的出现 甚至我搜索半天都找不到解决方案
在折腾了一晚上的 CentOS
我毅然决然选择 重新下Ubuntu

在选择Bochs版本上
我也对博客进行了三次修改
前面的几个版本 每次编译后都会出现各种
大大小小的问题
但选择Bochs 2.6.8的时候
却没有出现这种问题了
这部分就先写到这里
后面开始配置了


配置Bochs


根据提示路径 我们看到了示例配置 其实好像对我们也没有什么用
我们还是得手打那么多字符 配置文件

在这里插入图片描述
之后再自己重新写相关文件
但之后出现了两个问题 我先把源代码给出来

megs : 512romimage: file=/home/cooiboi/bochs/share/bochs/BIOS-bochs-latest
vgaromimage: file=/home/cooiboi/bochs/share/bochs/VGABIOS-lgpl-latestboot: disklog: bochs.outmouse:enabled=0
keyboard——mapping:enabled=1,
map=file=/home/cooiboi/bochs/share/bochs/keymaps/x11-pc-us.mapata0:enabled=1,ioaddr1=0x1f0,ioaddr2=0x3f0,irq=14gdbstub:enabled=1,port=1234,text_base=0,data_base=0,bss_base=0

报错一、Keyboard_mapping问题


这个是报错的指令 我去百度了一下 终于找到了解决方案
keyboard_mapping' is deprecated - use 'keyboard' option instead

报错时文件代码:
keyboard——mapping:enabled=1, map=file=/home/cooiboi/bochs/share/bochs/keymaps/x11-pc-us.map

修改后文件代码:
keyboard:keymap=/home/cooiboi/bochs/share/bochs/keymaps/x11-pc-us.map
改成这个代码后这个问题就解决了


报错二、Bochs is not compiled with gdbstub suppor


这个问题我去搜了好久 没办法
看了看解决方案 发现不可行 也就只能就罢
把这行代码注释掉即可 或者删除

在这里插入图片描述


修改后的配置文件代码


文件名字 bochsrc.disk

megs : 512#注意路径 必须是你安装的路径 别弄错了
romimage: file=/home/cooiboi/bochs/share/bochs/BIOS-bochs-latest
vgaromimage: file=/home/cooiboi/bochs/share/bochs/VGABIOS-lgpl-latestboot: disklog: bochs.outmouse:enabled=0
keyboard:keymap=/home/cooiboi/bochs/share/bochs/keymaps/x11-pc-us.mapata0:enabled=1,ioaddr1=0x1f0,ioaddr2=0x3f0,irq=14#gdbstub:enabled=1,port=1234,text_base=0,data_base=0,bss_base=0

我们再次保存文件后
输入bin/bochs一路回车键
发现问题已经解决了

下面是配置文件加载成功的截图

在这里插入图片描述


继续回车 果然报错 告诉我们缺少启动盘
注意 此时处于调试模式 需要在终端输入c 才会继续运行 q退出 不然的话一直会处于黑屏

在这里插入图片描述


创建虚拟硬盘


bochs给我们提供了创建虚拟硬盘的工具
bin/bximage --help查看相关指令
在这里插入图片描述


这里我们就不键入指令一次性搞好了
因为版本号可能不同 工具指令也有部分更新了
所以我们就先输入bin/bximage
根据提示一步一步的创建即可

下面是我创建的截图

在这里插入图片描述


此时我们应该把我们的虚拟后的硬盘放入到我们的配置文件中
注意 柱面磁道扇区信息也要放进去
信息给在CHS=121/16/63那个位置

megs : 512romimage: file=/home/cooiboi/bochs/share/bochs/BIOS-bochs-latest
vgaromimage: file=/home/cooiboi/bochs/share/bochs/VGABIOS-lgpl-latestboot: disklog: bochs.outmouse:enabled=0
keyboard:keymap=/home/cooiboi/bochs/share/bochs/keymaps/x11-pc-us.mapata0:enabled=1,ioaddr1=0x1f0,ioaddr2=0x3f0,irq=14
#新加入的代码
ata0-master: type=disk, path="hd60M.img", mode=flat,cylinders=121,heads=16,spt=63#gdbstub:enabled=1,port=1234,text_base=0,data_base=0,bss_base=0

保存后我们再次打开Bochs做一次尝试
还是报错
其实我大概有点能够猜测出来为什么还是报错了
因为我记得我在完成哈工大实验的时候
启动盘好像是只有512字节
限制了大小的 这样才能够保证后面的程序不出错 正确的移动到对应的位置
而且根据书上写着的 不难发现
这里我们的Bochs提示也明显不同了

上一个报错截图下面是
Boot failed:could not read the boot disk

而此次报错截图下面是
Boot failed:not a bootable device

在这里插入图片描述


结束语


尽管上面的问题依然没有解决
而作者刚哥 选择留在下一章解决 那说明这里的设置大小肯定是有东西的
设置悬念 也让我们有动力继续向下看

总的来说 这一章节的任务算是 经历了很多的波折
终于完成了
各自小问题 都需要去解决
但还好功夫不负有心人 也最终解决了
计算机这个专业想学好 真的是让人磨平脾气与焦躁

现在我都能想起 原来敲代码小小的printf
10分钟敲不出来 我恨不得把电脑砸了
到现在安装个系统 安装了Bochs
换了三个系统 装了各种插件 才最终解决

话不多说多了 饭还没有吃
自从进入操作系统的学习 我的午饭和晚饭是一天比一天吃的晚
刷题也比原来刷的更少了
做哈工大操作系统Lab 我更是每晚基本上都是8-9点吃饭

这个系列博客应该我会做成一个合集 就这样吧


  相关解决方案