Bug#564509: grub2: unable to chainload a disk-/cdrom-image

Fabian Greffrath fabian+debian at greffrath.com
Sat Jan 9 21:05:17 UTC 2010


Package: grub2
Version: 1.98~20100101-1
Severity: normal

Hi,

grub2 is currently unable to chainload a disk or cd-rom (.ico) image. I want to be able to boot the Balder boot disk FreeDOS distribution [1]. I place the image file balder10.img into my /boot ddirectory and try to boot it from grub using the following commands (and several variations of it):

loopback (fd0) /boot/balder10.img
chainloader (fd0) +1

I always get the "invalid signature" error message. If I leave out the "+1" from the chainloader command I get the "no file specified" error.

I know it is possible to mount cdrom images (e.g. linux distribution live cds) and directly specify the kernel and initrd files relative to the loopbacked device. But that's not what I want (and it certainly only works for complete linux distributions and no other OSs). I want to be able to boot the image *as if the disc was inserted in the drive*.

For the Balder FreeDOS boot disk I currently help myself by loading syslinux-common's memdisk image via the linux16 command and the balder10.img image via the initrd16 command. But I don't favour to use a feature of another bootloader (i.e. syslinux) to actually boot a disk image from grub2.

Cheers,
Fabian

PS: Many other users have reported similar problems, e.g. <http://michael-prokop.at/blog/2009/05/25/boot-an-iso-via-grub2/#comment-14147>

[1] http://www.finnix.org/Balder


-- Package-specific info:

*********************** BEGIN /proc/mounts
/dev/disk/by-uuid/ff43013e-d698-4d97-a4f3-aad02610d17e / ext3 rw,relatime,errors=remount-ro,data=ordered 0 0
/dev/hda6 /home ext3 rw,relatime,errors=continue,data=ordered 0 0
*********************** END /proc/mounts

*********************** BEGIN /boot/grub/device.map
(hd0)	/dev/hda
*********************** END /boot/grub/device.map

*********************** BEGIN /boot/grub/grub.cfg
#
# DO NOT EDIT THIS FILE
#
# It is automatically generated by /usr/sbin/grub-mkconfig using templates
# from /etc/grub.d and settings from /etc/default/grub
#

### BEGIN /etc/grub.d/00_header ###
set default=0
insmod ext2
set root=(hd0,1)
search --no-floppy --fs-uuid --set ff43013e-d698-4d97-a4f3-aad02610d17e
if loadfont /usr/share/grub/unicode.pf2 ; then
  set gfxmode=640x480
  insmod gfxterm
  insmod vbe
  if terminal_output gfxterm ; then true ; else
    # For backward compatibility with versions of terminal.mod that don't
    # understand terminal_output
    terminal gfxterm
  fi
fi
set locale_dir=/boot/grub/locale
set lang=de
insmod gettext
set timeout=5
### END /etc/grub.d/00_header ###

### BEGIN /etc/grub.d/05_debian_theme ###
insmod ext2
set root=(hd0,1)
search --no-floppy --fs-uuid --set ff43013e-d698-4d97-a4f3-aad02610d17e
insmod png
if background_image /boot/grub/moreblue-orbit-grub.png ; then
  set color_normal=black/black
  set color_highlight=magenta/black
else
  set menu_color_normal=cyan/blue
  set menu_color_highlight=white/blue
fi
### END /etc/grub.d/05_debian_theme ###

### BEGIN /etc/grub.d/10_linux ###
menuentry "Debian GNU/Linux, with Linux 2.6.32-trunk-686" {
	insmod ext2
	set root=(hd0,1)
	search --no-floppy --fs-uuid --set ff43013e-d698-4d97-a4f3-aad02610d17e
	linux	/boot/vmlinuz-2.6.32-trunk-686 root=UUID=ff43013e-d698-4d97-a4f3-aad02610d17e ro  quiet
	initrd	/boot/initrd.img-2.6.32-trunk-686
}
menuentry "Debian GNU/Linux, with Linux 2.6.32-trunk-686 (recovery mode)" {
	insmod ext2
	set root=(hd0,1)
	search --no-floppy --fs-uuid --set ff43013e-d698-4d97-a4f3-aad02610d17e
	linux	/boot/vmlinuz-2.6.32-trunk-686 root=UUID=ff43013e-d698-4d97-a4f3-aad02610d17e ro single 
	initrd	/boot/initrd.img-2.6.32-trunk-686
}
### END /etc/grub.d/10_linux ###

### BEGIN /etc/grub.d/22_invaders ###
menuentry "GRUB Invaders" {
	insmod ext2
	set root=(hd0,1)
	search --no-floppy --fs-uuid --set ff43013e-d698-4d97-a4f3-aad02610d17e
	multiboot	/boot/invaders.exec
}
### END /etc/grub.d/22_invaders ###

### BEGIN /etc/grub.d/24_balder ###
menuentry "Balder 10 (FreeDOS 1.0)" {
	insmod ext2
	set root=(hd0,1)
	search --no-floppy --fs-uuid --set ff43013e-d698-4d97-a4f3-aad02610d17e
	linux16	/usr/lib/syslinux/memdisk
	insmod ext2
	set root=(hd0,1)
	search --no-floppy --fs-uuid --set ff43013e-d698-4d97-a4f3-aad02610d17e
	initrd16	/boot/balder10.img
}
### END /etc/grub.d/24_balder ###

### BEGIN /etc/grub.d/30_os-prober ###
### END /etc/grub.d/30_os-prober ###

### BEGIN /etc/grub.d/40_custom ###
# This file provides an easy way to add custom menu entries.  Simply type the
# menu entries you want to add after this comment.  Be careful not to change
# the 'exec tail' line above.
### END /etc/grub.d/40_custom ###
*********************** END /boot/grub/grub.cfg

-- System Information:
Debian Release: squeeze/sid
  APT prefers testing
  APT policy: (990, 'testing'), (550, 'unstable'), (400, 'experimental')
Architecture: i386 (i686)

Kernel: Linux 2.6.32-trunk-686 (SMP w/1 CPU core)
Locale: LANG=de_DE.UTF-8, LC_CTYPE=de_DE.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash

Versions of packages grub2 depends on:
ii  grub-pc                  1.98~20100101-1 GRand Unified Bootloader, version 

grub2 recommends no packages.

grub2 suggests no packages.

-- debconf information:
  grub2/numbering_scheme_transition:





More information about the Pkg-grub-devel mailing list