以下是《操作系统真像还原》一书中所需实验环境的搭建过程。若在任一环节出现问题,请先查看「遇到的问题」一节,看是否能帮您解决。
预备环境
宿主系统版本和各软件的环境如下:
-
宿主系统:
macOS Catalina 10.15.7
-
VirtualBox:
6.0
-
centos:
6.3
-
bochs:
2.6.9
-
nasm:
2.15.05
centos-i386
为了跟作者环境保持一致,我是根据书中提供的链接,直接下载的 centos-6 发行版。链接如下:
http://vault.centos.org/6.3/isos/i386/CentOS-6.3-i386-bin-DVD1.iso
若想尝试新版本的同学也可自行查找 32 位的 centos。
Virtualbox
到官网自行下载即可,然后再安装 centos。我装的是桌面版,因为是只小白 O(∩_∩)O哈哈~。
nasm
在官网直接下载 nasm 即可。我下载的是在 macos 上的可执行文件,开箱即用。
编译环境准备
首先,由于编译 bochs 需要安装 g++ 编译器, 我们先在 centos 中安装必要的开发软件。
- 安装开发套件,用于编译 bochs
yum -y groupinstall "Development Tools"
- 安装 vim
yum install vim
安装 bochs
这一步,我们在 centos 中安装 bochs。
- 下载 bochs,并解压
在命令行输入如下命令:
// 下载
curl https://jaist.dl.sourceforge.net/project/bochs/bochs/2.6.9/bochs-2.6.9.tar.gz -o bochs-2.6.9.tar.gz
// 解压
tar -zxvf bochs-2.6.9.tar.gz
- 安装必要的库
安装 libX11
和 libXrandr
,否则在 make
时会出现头文件找不到的问题。
yum install libX11-devel
yum install libXrandr-devel
- 编译安装
// 1. 执行 ./configure,生成 Makefile
./configure \
--prefix=/packages/bochs \
--enable-debugger \
--enable-disasm \
--enable-iodebug \
--enable-x86-debugger \
--with-x \
--with-x11 \
LIBS=-lX11
// 2.编译
make
// 3.安装
make install
注意在执行 ./configure 时需添加 LIBS=-lX11
,否则会出现如下报错信息。
/usr/bin/ld: gui/libgui.a(x.o): undefined reference to symbol 'XSetForeground'
//lib/libX11.so.6: error adding symbols: DSO missing from command line
配置 bochs
在 bochs 安装目录下新建 bochsrc.disk
文件,填入以下内容。
megs: 32
romimage: file=/packages/bochs/share/bochs/BIOS-bochs-latest
vgaromimage: file=/packages/bochs/share/bochs/VGABIOS-lgpl-latest
boot: disk
log: bochs.out
mouse: enabled=0
keyboard: keymap=/packages/bochs/share/bochs/keymaps/x11-pc-us.map
ata0: enabled=1, ioaddr1=0x1f0, ioaddr2=0x3f0, irq=14
#gdbstub: enabled=1, port=1234, text_base=0, data_base=0, bss_base=0
注意将 romimage、vgaromimage、keyboard
中 bochs 的安装路径改成自己的。
- 执行命令
bin/bochs -f bochsrc.disk
,启动 bochs。顺利的话,会出现如下界面。
选择 6,开始模拟。输入 c,continue,让其继续执行。
由于此时还没有启动盘,bochs 会报错 No bootable device
。哈哈,当然没有这么顺利。下一节,我们会讲如何创建启动盘以及自己动手编写 MBR。
遇到的问题
如何开启 VirtualBox 辅助功能
如何开启剪贴板共享、共享文件夹、拖拽?我一直以为进行了相应设置即可,结果老是不生效。后来查到需要额外操作。具体步骤如下:
- 将 centos 启动后,在菜单栏上点击
Device → Insert Guest Addiontion CD Image
。如下图所示。
-
从命令行进入
VBox
目录,cd /media/VBox_GAs_6.0.24
。 -
执行脚本进行安装,
sh ./VBoxLinuxAdditons.run
。 -
安装时如果出现如下错误,
Kernel headers not found for target kernel xx.xx
。
- 首先尝试安装对应版本的
kernel-header
,再执行第 3 步。
yum install kernel-headers-$(uname -r) kernel-devel-$(uname -r)
- 若仍然报错找不到对应的版本,那么升级内核,再重新载入后,继续执行第 3 步。
// 升级内核
yum install kernel-devel
// 重启载入新内核
init 6
可能是由于我下载 6.3 系统的内核版本比较老,所以需要升级。
经过以上操作后,重启系统,打开对应设置,辅助功能就应该生效了。
centos 不能上网
在 VirtualBox 中安装完 centos 后,发现竟然不能上网。一度以为是我安装或者网络设置有误,尝试重装、切换网路设置,可仍然未解决。后来通过 Google 才找到解决方案。
只需修改文件:/etc/sysconfig/network-scripts/ifcfg-eth0
,将 ONBOOT
改为 yes。
ONBOOT=yes
make install 报错
若出现如下报错信息,解决方案如下:
fatal error: X11/Xlib.h: No such file or directory
需要安装 X11-devel
库。
yum install libX11-devel
X11/extensions/Xrandr.h: No such file or directory
安装 Xrandr-devel
库。
yum install libXrandr-devel
今天的文章centos-6+bochs+VirtualBox 环境搭建分享到此就结束了,感谢您的阅读。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/19362.html