在bochs上运行grub引导盘镜像文件

1、安装和配置bochs(版本号:2.3)
bochs的源代码可以从其官方网站http://bochs.sourceforge.net免费下载,该网站有详尽的文档,下载的压缩包解压后也包含相同的文档。解压后进入bochs-2.3目录,里面有一个configure文件,用于配置bochs的安装。基于调试操作系统的考虑,我选择调试和反汇编选项:
cd ~/bochs-2.3
./configure --enable-debugger --enable-disassem
然后用bochs-2.3目录下的Makefile编译源代码:
make
最后把编译好的bochs复制到一个公共的目录。执行这步操作,必须拥有超级用户权
限:
su root
输入密码
make install
exit
这样,带有调试功能的bochs就安装好了。
2、制作磁盘(软盘)镜像文件
    可以用bochs附带的bximage工具制作空的磁盘镜像,运行bximage:
bximage
bximage会询问制作磁盘类型、大小、名字等信息,这里需要软盘(fd)、1.44M,取名字为fd.img。完成后可以在指定的目录看到这个文件。
3、在软盘镜像文件上安装grub
    losetup /dev/loop0 fd.img
mkfs.ext2 /dev/loop0
这里运行指令:file fd.img,输出如下:
floppy.img:   Linux rev 1.0 ext2 filesystem data
mount -o loop /dev/loop0 /mnt/fdimage
运行mount指令(不带参数),输出如下:
/dev/loop0 on /mnt/flp type ext2 (rw,loop=/dev/loop5)
建立grub文件:
mkdir -p /mnt/fdimage/boot/grub
编译grub-0.97源码包,产生两个文件:stage1/stage1,stage2/stage2
创建grub配置文件:vi /mnt/fdimage/boot/grub/grub.conf
内容为:
default 0
timeout 1
   
title test os 0.0.1
        root (fd0)
        kernel /vmlinuz

umount /mnt/fdimage卸载设备,在软盘镜像文件中安装grub:
grub --device-map=/dev/null
grub> device (fd0) /dev/loop7
grub> root (fd0)
grub> setup (fd0)
grub> quit
losetup -d /dev/loop7,detach回环设备
再运行指令:file floppy.img,输出如下:
floppy.img:  floppy.img:   x86 boot sector, code offset 0x48
说明软盘已经可以引导了。
4、用bochs加载磁盘镜像文件
bochs配置文件:
romimage: file=/usr/local/share/bochs/BIOS-bochs-latest, address=0xf0000 #ROM镜像
megs:128 #虚拟内存大小
#floppya:image=./floppy.img, status=inserted #软盘镜像
floppya: image="fd.img", status=inserted
ata0: enabled=1, ioaddr1=0x1f0, ioaddr2=0x3f0, irq=14
vgaromimage: file=/usr/local/share/bochs/VGABIOS-lgpl-latest #VGA ROM镜像
#ata0-master: type=disk, path="hd.img", mode=flat, cylinders=520, heads=16, spt=63
boot: floppy #启动设备,从软盘启动
log: out.bochs #输出日志
mouse: enabled=0 #鼠标,禁用
ips: 16000000 #机器频率,16000000ips(instruction per second)

运行bochs –q,并执行c命令,即看到引导界面。

 

你可能感兴趣的:(image,汇编,File,文档,makefile,磁盘)