使用Bochs和Grub建立可引导硬盘镜像(2)

我们这里不自己编译了,直接使用宿主系统CentOS 6.4的文件。

创建grub.conf文件 cp /boot/grub/grub.conf /mnt/boot/grub/

配置文件依然借用宿主系统CentOS 6.4的。

ln -s /mnt/boot/grub/grub.conf /mnt/boot/grub/menu.lst

这个软链接如果不建立,待会儿开机进入grub时不会出现启动项选择界面

卸载文件系统 umount /mnt/ 卸载硬盘分区 losetup -d /dev/loop0 最终安装grub grub --device-map=/dev/null

运行后依次输入下面的内容敲回车。

grub> device (hd0) hd.img grub> geometry (hd0) 100 16 63 #柱面数、磁头数、每磁道扇区数 grub> root (hd0,0) grub> setup (hd0) grub> quit 启动bochs

在bochs里设置好,然后启动就行了 应该会看到如下提示:

ata0 master: Generic 1234 ATA-6 Hard-Disk ( 49 MBytes) Press F12 for boot menu. Booting from Hard Disk... failed to read image Press any key to enter the menu Booting CentOS (2.6.32-358.el6.i686) in 0 seconds... Error 15: File not found Press any key to continue...

这界面很正常,毕竟我们只装了grub,操作系统根本不存在,它能找到文件就怪了。按下任意键,就能看到grub启动项选择界面了。因为我们的grub程序文件和配置文件全部来自于宿主系统,所以这里看到的启动项也和宿主系统一样是CentOS 6.4,只不过这个启动项所指定的内核文件不存在而已。

这篇博文就写到这里,下一篇我们将内核镜像写入硬盘镜像,这样就能启动内核了,不过要想真正运行Linux系统还是很麻烦的,因为后面还要向硬盘镜像内写入文件系统里面的主要文件,比如/bin/sh之类的。

CentOS 6.0 源码 编译 安装 Bochs 

openSUSE 安装Bochs 2.6 

Linux0.11 运行环境搭建以及调式--Bochs 

Ubuntu 12.04安装带调试功能的Bochs

Ubuntu安装Bochs过程中遇到的问题及解决方法

Ubuntu 14.04 LTS 安装和配置Bochs 

Ubuntu上使用Bochs

使用bochs和gdb联合调试Linux内核 

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/14703.html