Bug#560823: grub-ieee1275: Error "Memory Address not Alligned" when trying to boot any menu entry

Axel Beckert abe at debian.org
Wed Jan 12 01:14:51 UTC 2011


Hi,

Adam D. Barratt wrote:
> On Mon, 2010-07-19 at 23:42 +0200, Axel Beckert wrote:
> > Colin Watson wrote:
> > > > Since #550160 has been fixed, the grub menu appears, I can edit the
> > > > entries on the console, etc.
> > > > 
> > > > But as soon as I want to boot one entry, I get the error message
> > > > "Memory Address not Alligned" and I'm back to the boot prompt "ok" of
> > > > OpenPROM/OpenBoot.
> > > 
> > > Vladimir Serbinenko (upstream) told me that he believes he's fixed this:
> [...]
> > > If you still have the
> > > affected system in operation, could you please try upgrading to the
> > > current version in unstable
> 
> Is this issue still exhibited with the current version of grub2 in
> unstable?

First try with version from unstable (1.98+20100804-13), no manual
interventions:

grub-mkdevicemap generated strange device.map (attached).
update-grub used the binary carp in there and put it in grub.cfg
(attached). grub-install on the only non-floppy device in the
device.map worked without problems.

Booting resulted in 8x the following output:

---snip---
Boot device: disk  File and args:
GRUB Loading kernel...
Welcome to GRUB!

Can't read disk label.
Can't open disk label package.
Can't read disk label.
Can't open disk label package.
Can't read disk label.
Can't open disk label package.
Can't read disk label.
Can't open disk label package.
Can't read disk label.
Can't open disk label package.
Can't read disk label.
Can't open disk label package.
Can't read disk label.
Can't open disk label package.
Can't read disk label.
Can't open disk label package.
Fast Data Access MMU Miss
ok 
---snap---

So basically something different happens, but we're far away than we
already were, i.e. no more grub menu or commandline available.

Warm or cold boot doesn't seem to make a difference.

Next try with grub from experimental (1.99~20110106-1): But basically
the same happens, just with three small differences:

a) no "Fast Data Access MMU Miss" but "error: out of memory. error: no
   suitable mode found. Illegal instruction" instead.

b) grub-installed issued a warning about embedding not possible in
   this setup and that I need to use blocklist instead. It though says
   also installation succeeded without error: 

   6/0/0 root at hz:pts/0 02:01:32 [~] # grub-install '(hd0)'
   /usr/sbin/grub-setup: warn: Embedding is not possible.  GRUB can only be installed in this setup by using blocklists.  However, blocklists are UNRELIABLE and their use is discouraged..
   Installation finished. No error reported.
   7/0/0 root at hz:pts/0 02:02:41 [~] # grub-install /dev/disk/by-id/ata-ST39120A_7BV080CK
   /usr/sbin/grub-setup: warn: Embedding is not possible.  GRUB can only be installed in this setup by using blocklists.  However, blocklists are UNRELIABLE and their use is discouraged..
   Installation finished. No error reported.
   8/0/0 root at hz:pts/0 02:03:43 [~] # 

   But since grub behaves differently afterwards, I think it did write
   it on disk.

c) different binary garbage in the device.map (attached)

I'll now try to see if fixing the device map manually (no binary
garbage but hd0 in there instead) helps.

I really wonder where this binary garbage (see attachement) comes
from.

Anyway, next try was to manually edit the device.map to look like I'd
expect it to look:

(fd0)   /dev/fd0
(hd0)   /dev/disk/by-id/ata-ST39120A_7BV080CK

grub-install still throws the same error messages (in case of the
version from experimental) or not (in case of unstable).

No big change though, just again "Fast Data Access MMU Miss" instead
of "Illegal instruction". Maybe those are interchangable in some way.

Any advice what I could try else? I'll at least stay in contact with
Vladimir for further debugging.

		Regards, Axel
-- 
 ,''`.  |  Axel Beckert <abe at debian.org>, http://people.debian.org/~abe/
: :' :  |  Debian Developer, ftp.ch.debian.org Admin
`. `'   |  1024D: F067 EA27 26B9 C3FC 1486  202E C09E 1D89 9593 0EDE
  `-    |  4096R: 2517 B724 C5F6 CA99 5329  6E61 2FF9 CD59 6126 16B5
-------------- next part --------------
()	/dev/fd0
(????????)	/dev/disk/by-id/ata-TS9321A0_B70V08KC
-------------- next part --------------
#
# DO NOT EDIT THIS FILE
#
# It is automatically generated by grub-mkconfig using templates
# from /etc/grub.d and settings from /etc/default/grub
#

### BEGIN /etc/grub.d/00_header ###
if [ -s $prefix/grubenv ]; then
  load_env
fi
set default="0"
if [ "${prev_saved_entry}" ]; then
  set saved_entry="${prev_saved_entry}"
  save_env saved_entry
  set prev_saved_entry=
  save_env prev_saved_entry
  set boot_once=true
fi

function savedefault {
  if [ -z "${boot_once}" ]; then
    saved_entry="${chosen}"
    save_env saved_entry
  fi
}

function load_video {
  insmod ieee1275_fb
}

insmod lvm
insmod part_sun
insmod ext2
set root='(vg0-usr)'
search --no-floppy --fs-uuid --set 49d242fd-f885-4059-b7a4-4aac2e6cd9a9
if loadfont /share/grub/unicode.pf2 ; then
  set gfxmode=640x480
  load_video
  insmod gfxterm
fi
terminal_output gfxterm
insmod part_sun
insmod ext2
set root='(????????,sun1)'
search --no-floppy --fs-uuid --set 842411ca-fed2-427c-8120-e0deb03c634c
set locale_dir=($root)/grub/locale
set lang=en
insmod gettext
set timeout=5
### END /etc/grub.d/00_header ###

### BEGIN /etc/grub.d/05_debian_theme ###
set menu_color_normal=cyan/blue
set menu_color_highlight=white/blue
### END /etc/grub.d/05_debian_theme ###

### BEGIN /etc/grub.d/10_linux ###
menuentry 'Debian GNU/Linux, with Linux 2.6.36-trunk-sparc64' --class debian --class gnu-linux --class gnu --class os {
	insmod part_sun
	insmod ext2
	set root='(????????,sun1)'
	search --no-floppy --fs-uuid --set 842411ca-fed2-427c-8120-e0deb03c634c
	echo	'Loading Linux 2.6.36-trunk-sparc64 ...'
	linux	/vmlinuz-2.6.36-trunk-sparc64 root=/dev/mapper/vg0-root ro  
	echo	'Loading initial ramdisk ...'
	initrd	/initrd.img-2.6.36-trunk-sparc64
}
menuentry 'Debian GNU/Linux, with Linux 2.6.36-trunk-sparc64 (recovery mode)' --class debian --class gnu-linux --class gnu --class os {
	insmod part_sun
	insmod ext2
	set root='(????????,sun1)'
	search --no-floppy --fs-uuid --set 842411ca-fed2-427c-8120-e0deb03c634c
	echo	'Loading Linux 2.6.36-trunk-sparc64 ...'
	linux	/vmlinuz-2.6.36-trunk-sparc64 root=/dev/mapper/vg0-root ro single 
	echo	'Loading initial ramdisk ...'
	initrd	/initrd.img-2.6.36-trunk-sparc64
}
menuentry 'Debian GNU/Linux, with Linux 2.6.32-5-sparc64' --class debian --class gnu-linux --class gnu --class os {
	insmod part_sun
	insmod ext2
	set root='(????????,sun1)'
	search --no-floppy --fs-uuid --set 842411ca-fed2-427c-8120-e0deb03c634c
	echo	'Loading Linux 2.6.32-5-sparc64 ...'
	linux	/vmlinuz-2.6.32-5-sparc64 root=/dev/mapper/vg0-root ro  
	echo	'Loading initial ramdisk ...'
	initrd	/initrd.img-2.6.32-5-sparc64
}
menuentry 'Debian GNU/Linux, with Linux 2.6.32-5-sparc64 (recovery mode)' --class debian --class gnu-linux --class gnu --class os {
	insmod part_sun
	insmod ext2
	set root='(????????,sun1)'
	search --no-floppy --fs-uuid --set 842411ca-fed2-427c-8120-e0deb03c634c
	echo	'Loading Linux 2.6.32-5-sparc64 ...'
	linux	/vmlinuz-2.6.32-5-sparc64 root=/dev/mapper/vg0-root ro single 
	echo	'Loading initial ramdisk ...'
	initrd	/initrd.img-2.6.32-5-sparc64
}
### END /etc/grub.d/10_linux ###

### BEGIN /etc/grub.d/20_linux_xen ###
### END /etc/grub.d/20_linux_xen ###

### 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 ###

### BEGIN /etc/grub.d/41_custom ###
if [ -f  $prefix/custom.cfg ]; then
  source $prefix/custom.cfg;
fi
### END /etc/grub.d/41_custom ###
-------------- next part --------------
()	/dev/fd0
(??\`??\`)	/dev/disk/by-id/ata-ST39120A_7BV080CK


More information about the Pkg-grub-devel mailing list