您的位置:首页 > 其它

Test Kernel with grub

2010-01-09 11:54 417 查看
http://sig9.com/bochs-grub

Bochs+Grub, Testing Kernels

Lack of resources means finding newer, crooked ways of doing things,
including emulating them. Being an os development enthusiast with just
a single x86 PC at my disposal, I have often relied on Bochs for
emulation purposes such as trying out Linux, BSD and even my own
kernels. Here is how I use a file backed floppy disk image with grub
installed in it for quick kernel try-outs; because rebooting can be a
pain. The steps described here are specific to GNU/Linux based systems,
and some of them may require super user privileges. Ofcourse, you need
to have Bochs
and Grub
installed.

Create the floppy disk image (1.44M capacity).
$ dd if=/dev/zero of=floppy.img bs=1024 count=1440


Create and attach a loopback device to the image.
$ losetup /dev/loop1 floppy.img


Create a file system (EXT2FS).
$ mkfs /dev/loop1


Mount the device, so we can read and write to it.
$ mount -o loop /dev/loop1 /mnt


Setup grub directory with stage1 and stage2. For this step, you
will need to determine the location of grub "stage1" and "stage2"
files. Some common locations are "/boot/grub" "/usr/share/grub",
"/usr/local/share/grub/" etc. The following worked for me (on my Fedora
Core 3 system).
$ mkdir -p /mnt/boot/grub

$ cp /boot/grub/stage1 /boot/grub/stage2 /mnt/boot/grub/


Create the grub configuration file.
$ vi /mnt/boot/grub/grub.conf

The following is a sample "grub.conf". More about the menu here
.
# My Grub.conf

#

title=MyTestKernel

root (fd0)

kernel /mykern

title=TestLinux

root (fd0)

kernel /vmlinuz

And unmount the device.
$ umount /mnt


Install and
4000
embed grub into the image.
$ grub --device-map=/dev/null

Upon which you should get the grub interface. Enter the following commands into it -
grub> device (fd0) /dev/loop1

grub> root (fd0)

grub> setup (fd0)

grub> quit


Detach the loopback device.
$ losetup -d /dev/loop1


Thats it! The floppy image is ready with a grub boot loader installed.
All you need to do is use this file as the floppy disk image under
Bochs. To install the kernel files into this image, all you need to do
is follow these steps -
Create and attach a loopback device to the image and mount it.
$ losetup /dev/loop1 floppy.img
$ mount -o loop /dev/loop1 /mnt


Perform operations on the image file, such as installing new kernel
images or updating grub.conf. Once thats done, perform the next step.

Unmount device and detach the loopback device.
$ umount /mnt
$ losetup -d /dev/loop1


Once you're ready for some real testing, all you need to do is get hold of a real floppy disk and write the image onto it.
$ dd if=floppy.img of=/dev/fd0


 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息