Test Kernel with grub
2010-01-09 11:54
417 查看
http://sig9.com/bochs-grub
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).
Create and attach a loopback device to the image.
Create a file system (EXT2FS).
Mount the device, so we can read and write to it.
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).
Create the grub configuration file.
The following is a sample "grub.conf". More about the menu here
.
And unmount the device.
Install and
4000
embed grub into the image.
Upon which you should get the grub interface. Enter the following commands into it -
Detach the loopback device.
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.
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.
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.
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
相关文章推荐
- this is a test post with Writer
- PintOS, kernel panic with -v option bochs on ubuntu
- grub kernel.img makefile源码分析
- how to test observe with rspec in ruby on rails.
- asmcmd cp command on the test with transportable tablespace
- Create a simple unit test project with Visual Studio Unit Testing Framework
- Fix grub with Fedora Live CD
- How to Repair, Restore, or Reinstall Grub 2 with a Ubuntu Live CD or USB
- ARM64 Linux kernel + busybox rootFS via NFS over QEMU with GDB
- Debugging the Linux kernel with JTAG
- Browse the Linux Kernel Source with LXR
- libusb 的底層追蹤 (libusb thread support and the relation with kernel usbfs)
- Configuring GRUB to boot the right kernel after an upgrade
- No enclosing instance of type test is accessible. Must qualify the allocation with an enclosing inst
- using mysql with rails3.2.6(test evironment:ubuntu12.04)
- Working with Kernel Cores
- 尚未备份数据库 "TEST" 的日志尾部。如果该日志包含您不希望丢失的工作,请使用 BACKUP LOG WITH NORECOVERY 备份该日志。请使用 RESTORE 语句的 WITH REPL
- 系统排错(mbr-grub-kernel)
- Quick and easy Watir test suites with Test::Unit
- 在ASP.NET MVC中使用测试驱动开发 Test Driven Development with ASP.Net MVC (Part 1)