admin管理员组

文章数量:1356166

文章目录

    • 前言
    • 下载安装VMware Workstation
    • 下载安装Ubuntu
      • 下载Ubuntu
      • 创建虚拟机
      • Ubuntu安装
    • 安装open-vm-tools
      • 先简单说明一下VMware Tools和open-vm-tools
      • 安装过程中的问题和经验分享
    • 下载、安装、配置Bochs
      • 下载Bochs
      • 安装Bochs
        • configure部分
        • make和make install
      • 配置Bochs
    • 结语

前言

这篇博客是《操作系统真象还原》第一章实现的记录

整体参考了CSDN上Love6的《操作系统真象还原》第一章 ---- 安装Vmware Station 安装Ubuntu 装载配置Bochs 安装Vmware tools 开始乘帆历险!_学习操作系统真相还原安装虚拟机-CSDN博客,这篇博客已经有几年了,有些内容已经不再适合参考,我根据我实际操作过程中遇到的问题,给出了自己的解决方案

主要记录一下 完成VMware Worktation安装,Ubuntu安装,open-vm-tools安装配置,Bochs安装配置过程中遇到的问题,以供参考

顺便练习一下Makedown的使用


下载安装VMware Workstation

首先是选择虚拟机软件,了解到VMware Workstation的正版目前免费,就决定使用它了

官网链接:Fusion and Workstation | VMware,下载需要注册一个账号

这是Love6的博客记录:CSAPP WIN10虚拟机安装 UBuntu Vmware tools Lab入门测试 环境配置 安装摸索之路_csapp怎么下载vmware tool-CSDN博客

由于目前17.5pro版本对个人免费,选择了17.5版本

下载安装好后打开主页


下载安装Ubuntu

这部分整体也比较简单,我选择的版本是24.04.1 LTS,由于是长期发布版,比较稳定

下载Ubuntu

官网下载链接:Download Ubuntu Desktop | Ubuntu,下载完是一个光盘,后续会用到

创建虚拟机

我写博客前已经创建好了虚拟机,为了演示过程,重新创建一个虚拟机

打开VMware Workstation,来到主页,点击“创建新的虚拟机”,选择“自定义”,一直点击下一步

来到这里选择“稍后安装操作系统”,下一步操作系统选择Ubuntu64位,一直下一步

处理器这里根据自身硬件水平选择,可以多一点,我设置了四个内核,后续选择8G内存,一直下一步

网络选择NAT,这样虚拟机可以直接联网,方便后续从网络下载资源

硬盘存储选择“单个文件”,大小可以根据硬件水平适当扩大,我设置为25G,一直下一步,直到完成

创建完成后来到主页,点击刚创建好的虚拟机,选择“编辑虚拟机设置”

这里有两个要点:1.在CD/DVD这里选择你下载好的Ubuntu光盘

2.在显示这里,取消勾选“加速3D图形”,原因是虚拟机目前还没有显卡的驱动软件,如果电脑使用了独立显卡,虚拟机无法亮机(这个问题当时卡了我好久,如果开启虚拟机后出现黑屏,可能就是这里的问题)

完成后就可以点击“开启此虚拟机了”

这里插一句题外话:在没有安装VMwareTools或者open-vm-tools之前,鼠标光标是不能在宿主机和虚拟机之间自由移动的,按下ctrl+alt可以把鼠标光标返回到宿主机。

Ubuntu安装

如果一切顺利,就进入到Ubuntu安装环节,如下图

选择简体中文,一路下一步

这里选择有线连接即可,可以直接联网,一直点击下一步

这里勾选上图形WIFI的软件,方便后续使用

来到账户,这里密码尽量简短,方便后续使用

后面就一直下一步,直到安装完成,完成后需要重启


安装open-vm-tools

这部分很复杂,各种问题层出不穷,浪费了我大量的时间和精力,至今仍有残留的问题没有解决,我会把过程中遇到的问题和我的解决方案一一陈述,给后来人作参考,这也是我写这个博客的目的和意义

先简单说明一下VMware Tools和open-vm-tools

VMwaretools是VMware Workstation早期版本提供的便于宿主机和虚拟机连接互通的软件,open-vm-tools是在VMware Tools基础上开源的软件,也是目前VMware Workstation官方推荐使用的软件。open-vm-tools-desktop是桌面版,在有图形界面的Linux系统上使用,我们选择这个

两个软件功能基本相同,理想情况下包括:

1.自动缩放虚拟机窗口

2.实现鼠标指针在虚拟机和宿主机之间的自由移动

3.实现虚拟机和宿主机之间的文本复制粘贴

4.通过拖拽、剪贴板、共享文件夹等方式,实现虚拟机和宿主机之间的文件传输

其中第四点我至今也没有完全实现,查阅大量经验贴后仍无法解决问题,遂放弃。

安装过程中的问题和经验分享

安装好Ubuntu后,我的虚拟机已经附带了一个open-vm-tools,此时点击虚拟机,发现“重新安装VMware Tools”已经是灰色,说明已经有了open-vm-tools,如下图所示

经过检验,一开始只有前三个功能能正常使用,并不满意,查阅他人帖子后,尝试重新安装open-vm-tools

参考帖:open-vm-tools代替VMwareTools-CSDN博客

Ubuntu安装VMwareTools:解决无法拖拽文件_ubuntu安装tools后还不能拖进去-CSDN博客

后来发现VMware Tools似乎可以通过共享文件夹的方式解决文件传输的问题,并且Love6选择的也是VMware Tools,决定选择VMware Tools,当时也创建了共享文件夹,但是仍然不知道怎么实现共享文件

参考帖:解决vmtools已安装但还是不能共享文件、复制粘贴_虚拟机装完vmware tools不能复制-CSDN博客

加上VMware Tools和open-vm-tools不兼容,各种卸载残留问题,四种主要功能经常出现问题,期间反复卸载安装,也重新创建过虚拟机重新安装Ubuntu,最后放弃了VMware Tools,重新选择了open-vm-tools

一直到最后也没有实现传输文件的功能,不过考虑到虚拟机已经可以联网,虚拟机和宿主机可以在互联网上实现联通和文件传输,最后决定放弃本地的文件互联互传,这一部分告一段落


下载、安装、配置Bochs

Bochs是虚拟机里的虚拟机,也就是我编写实现的操作系统的载体,这部分也相当复杂,我也遇到不少问题,一开始选择了2.6.8版本,在配置部分遇到问题无法解决,后来根据博客《保姆级》一次成功安装bochs!!附带相应ubuntu版本和bochs版本_ubuntu安装bochs-CSDN博客选择使用2.6.10版本,最终完成Bochs的配置和载入

下载Bochs

一开始想在宿主机上下载好,通过open-vm-tools传输到虚拟机上(Love6也是这样的方法),后来放弃了本地传输功能,又想到虚拟机可以联网,决定直接在虚拟机上下载,一开始选择了和Love6一样的2.6.8版本

2.6.8版本官网下载链接:Bochs x86 PC emulator - Browse /bochs/2.6.8 at SourceForge,选择后缀为tar.gz的压缩包

下载好后直接在Ubuntu的图形界面里双击解压(截图里是我后来选择的2.6.10版本,这里仅仅是一个示意)

安装Bochs

在解压后的文件夹里打开终端(右键菜单里选择),准备configure,make,make install三件套

参考博客:Linux命令详解./configure、make、make install 命令_configure命令-CSDN博客

示意图:

configure部分

这里建议把代码打到windows的记事本里,然后复制粘贴到终端里,注意复制粘贴用右键或者ctrl/shift+insert

我的代码如下,每行代码在《真象还原》里都有解释

这里一定要注意prefix行路径改为你的本地路径,如果你指定的路径不存在,需要提前创建好路径上的文件夹

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

粘贴进去遇到了和Love6一样的两个问题,原因是初始的Ubuntu缺少了相关的软件包,由于是后来写的博客,这里就不截图了,可以参考Love6的博客

问题1 缺少c compiler编译器

解决方案是

sudo apt-get -y install gcc

问题2 C++ preprocessor fails sanity check

解决方案是这两行代码

sudo apt-get install build-essential
sudo apt-get install g++

再次configure后成功完成,文件夹里出现了makefile,可以进行make了

make和make install

直接在终端输入 make,没有遇到问题,等待一段时间后make完成,直接输入make install后完成安装,在指定路径上出现了bochs文件夹,点开后包含bin和share两个文件夹

配置Bochs

这部分遇到了大量问题,先贴一个参考博客

《保姆级》一次成功安装bochs!!附带相应ubuntu版本和bochs版本_ubuntu安装bochs-CSDN博客

新建一个文本文件,保存在下图目录里,命名随意,这里我选择的就是《真象还原》里的bochsrc.disk(因为截图是后来不上的,所以多了一些文件,正常情况下这个目录里只有bochs和bximage两个程序)

这里是配置文件的文本,同样在windows记事本里写好,准备复制粘贴

注意romimage行,vgaromimage行和keyboard行选择你本地对应的路径

######################################

#### Configuration file for Bochs  ###

######################################
megs: 512

romimage: file=/home/hongbai/bochs/share/bochs/BIOS-bochs-latest
vgaromimage: file=/home/hongbai/bochs/share/bochs/VGABIOS-lgpl-latest

boot: disk

log: bochsout.txt

mouse: enabled=0
keyboard: keymap=/home/hongbai/bochs/share/bochs/keymaps/x11-pc-us.map

ata0:enabled=1,ioaddr1=0x1f0,ioaddr2=0x3f0,irq=14
############### end ###############

最开始完成这部分后,我就跟着进度运行了bochs,在bin目录下打开,终端输入

./bochs

然后输入2,回车,在输入配置文件名称bochsrc.bxrc并回车后,遇到了一个《真象还原》和Love6博客里都没提到的报错(当时没有截图)

Bochs is exiting with the following message:
[     ] bochsrc.bxrc:1: a bochsrc option needs at least one parameter

似乎提示我配置文件里缺少了一些参数,查阅资料发现了一些可能的原因:1.文本文件的编码使用了UTF-8。据该博客所说改为ANSI即可解决问题,我尝试后并没有解决。2.配置文件里不能有中文和中文注释。显然我也不属于这种情况。后来我还尝试了把配置文件里的相对路径改为绝对路径,以及提前加入虚拟硬盘部分的代码

ta0-master: type=disk, path="c.img",mode=flat,cylinders=121,heads=16,spt=63

均没有解决这个报错,至此陷入僵局

最终我读到了《保姆级》那篇博客,决定重新下载安装2.6.10版本的Bochs,下载链接Bochs x86 PC emulator - Browse /bochs/2.6.10 at SourceForge,下载完成后解压、configure、make、make install一气呵成,重新写好配置文件后不再出现这个问题

此时我已经提前写好了虚拟硬盘,作为Bochs读取的位置(这部分可以参考《保姆级》博客或者Love6的博客,也是《真象还原》书里下一部分的内容)。虚拟硬盘命名为hd60M.img,此时的配置文件是

######################################

#### Configuration file for Bochs  ###

######################################
megs: 512

romimage: file=/home/hongbai/bochs/share/bochs/BIOS-bochs-latest
vgaromimage: file=/home/hongbai/bochs/share/bochs/VGABIOS-lgpl-latest

boot: disk

log: bochsout.txt

mouse: enabled=0
keyboard: keymap=/home/hongbai/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
############### end ###############

同样./bochs,输入2,回车后输入配置文件名bochsrc.bxrc,回车,成功进入下一个菜单

输入6后成功启动Bochs

这里又出现一个新的报错,正常情况下应该跳出如下窗口

在终端输入c后,跳出如下窗口

但是我遇到了

[HD]
ata0-0: could not open hard drive image file"hd60M.img"

这个报错,说明无法打开虚拟硬盘。
查阅资料后仍然没有解决问题,最后重新建了一个虚拟硬盘,命名为c.img,修改了配置文件后重新运行bochs,最终成功!


结语

这部分内容是我在一段相当长的时间里断断续续逐步完成实现的,有很多细节和经验都无法呈现了,很多截图也是完成实现后才补了上去,所以观感上不尽如人意,这里我想对这篇博客可能的读者说声抱歉

这一章主要是环境配置,没有什么理解上的问题,主要是各种琐碎的实践细节,由于《真象》一书出版至今已经有10年,Love6的博客也写成了4年了,虚拟机、Ubuntu、bochs也发布了很多版本,大量的经验已经失效,我花费了超出我想象的时间来完成这部分。在此只能希望后续内容比较好实现吧。

《真象还原》的作者故意在第一章结尾留下一个报错来引入下一章,也让我们对后面的内容有所期待。那么如果不出意外的话,我也会在明天开始下一章的学习实践,当然也会写成博客发布。具体什么时候能完成那就不知道了,毕竟4月19日还有天梯赛,这段时间我还要练习竞赛题,冲击一下国奖。

最后再次感谢CSDN上的博主Love6Love 6-CSDN博客,是他给了我开始这个项目的动力,他的博客也给了我很大的帮助。重新贴一下他的帖子。总集:《操作系统真象还原》从零开始自制操作系统 全流程记录-CSDN博客。第一章:《操作系统真象还原》第一章 ---- 安装Vmware Station 安装Ubuntu 装载配置Bochs 安装Vmware tools 开始乘帆历险!_学习操作系统真相还原安装虚拟机-CSDN博客。

那么就到这里吧。

本文标签: 真象操作系统环境工作