Bug#657776: grub-pc cant't load kernel at XFS Filesystem

Friedemann Stoyan fstoyan at swapon.de
Sat Jan 28 17:43:27 UTC 2012


Package: grub-pc
Version: 1.99-14
Severity: important

Dear Maintainer,

I use grub2 with XFS on top of a logical volume. With kernel 3.2
grub refuse loading the kernel:

Loading Linux 3.2.0-1-amd64 ...
error: cannot read the Linux header.
Loading intitial ramdisk ...
error: you need to load the kernel first.

press any key to continue...

Some invertigation shows, that it seems to be an XFS related issue:

$ sudo grub-fstest /dev/sda1 crc '(vg0-root)/boot/vmlinuz-3.1.0-1-amd64'
ffffffff

$ sudo grub-fstest /dev/sda1 crc '(vg0-root)/boot/vmlinuz-3.2.0-1-amd64'
grub-fstest: error: read error at offset 0: not a correct XFS BMAP node.

$ xfs_info /
meta-data=/dev/mapper/vg0-root   isize=256    agcount=4, agsize=32768 blks
         =                       sectsz=4096  attr=2
data     =                       bsize=4096   blocks=131072, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0
log      =internal               bsize=4096   blocks=1424, version=2
         =                       sectsz=4096  sunit=1 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0

$ xfs_bmap -l /boot/vmlinuz-3.1.0-1-amd64
/boot/vmlinuz-3.1.0-1-amd64:
        0: [0..5327]: 344752..350079 5328 blocks

$ xfs_bmap -l /boot/vmlinuz-3.2.0-1-amd64
/boot/vmlinuz-3.2.0-1-amd64:
	0: [0..87]: 420864..420951 88 blocks
	1: [88..175]: 421248..421335 88 blocks
	2: [176..263]: 421760..421847 88 blocks
	3: [264..351]: 422400..422487 88 blocks
	4: [352..439]: 425472..425559 88 blocks
	5: [440..527]: 426296..426383 88 blocks
	6: [528..615]: 426552..426639 88 blocks
	7: [616..703]: 430656..430743 88 blocks
	8: [704..791]: 430784..430871 88 blocks
	9: [792..879]: 431168..431255 88 blocks
	10: [880..967]: 431296..431383 88 blocks
	11: [968..1055]: 432192..432279 88 blocks
	12: [1056..1143]: 432832..432919 88 blocks
	13: [1144..1231]: 432960..433047 88 blocks
	14: [1232..1319]: 433984..434071 88 blocks
	15: [1320..1407]: 439336..439423 88 blocks
	16: [1408..1495]: 445696..445783 88 blocks
	17: [1496..1583]: 448648..448735 88 blocks
	18: [1584..1671]: 448776..448863 88 blocks
	19: [1672..1759]: 452952..453039 88 blocks
	20: [1760..1847]: 453336..453423 88 blocks
	21: [1848..1935]: 453976..454063 88 blocks
	22: [1936..2023]: 455000..455087 88 blocks
	23: [2024..2111]: 457048..457135 88 blocks
	24: [2112..2199]: 457560..457647 88 blocks
	25: [2200..2287]: 457688..457775 88 blocks
	26: [2288..2375]: 457816..457903 88 blocks
	27: [2376..2463]: 462272..462359 88 blocks
	28: [2464..2551]: 462528..462615 88 blocks
	29: [2552..2639]: 463872..463959 88 blocks
	30: [2640..2727]: 464128..464215 88 blocks
	31: [2728..2815]: 465152..465239 88 blocks
	32: [2816..2903]: 465536..465623 88 blocks
	33: [2904..2991]: 466048..466135 88 blocks
	34: [2992..3079]: 466304..466391 88 blocks
	35: [3080..3167]: 466560..466647 88 blocks
	36: [3168..3255]: 468736..468823 88 blocks
	37: [3256..3343]: 468992..469079 88 blocks
	38: [3344..3431]: 469120..469207 88 blocks
	39: [3432..3519]: 469632..469719 88 blocks
	40: [3520..3607]: 469760..469847 88 blocks
	41: [3608..3695]: 474272..474359 88 blocks
	42: [3696..3783]: 474784..474871 88 blocks
	43: [3784..3871]: 475808..475895 88 blocks
	44: [3872..3959]: 476064..476151 88 blocks
	45: [3960..4047]: 476704..476791 88 blocks
	46: [4048..4135]: 477216..477303 88 blocks
	47: [4136..4223]: 477696..477783 88 blocks
	48: [4224..4311]: 479128..479215 88 blocks
	49: [4312..4399]: 480280..480367 88 blocks
	50: [4400..4487]: 484560..484647 88 blocks
	51: [4488..4575]: 484944..485031 88 blocks
	52: [4576..4663]: 489240..489327 88 blocks
	53: [4664..4751]: 493168..493255 88 blocks
	54: [4752..4839]: 494480..494567 88 blocks
	55: [4840..4927]: 496312..496399 88 blocks
	56: [4928..5015]: 497848..497935 88 blocks
	57: [5016..5103]: 503584..503671 88 blocks
	58: [5104..5191]: 505248..505335 88 blocks
	59: [5192..5279]: 505504..505591 88 blocks
	60: [5280..5367]: 505888..505975 88 blocks
	61: [5368..5431]: 506400..506463 64 blocks



-- Package-specific info:

*********************** BEGIN /proc/mounts
/dev/mapper/vg0-root / xfs rw,nodev,relatime,attr2,delaylog,noquota 0 0
/dev/mapper/vg0-home /home xfs rw,nodev,relatime,attr2,delaylog,logbufs=8,logbsize=256k,noquota 0 0
/dev/mapper/vg0-usr /usr xfs rw,nodev,relatime,attr2,delaylog,logbufs=8,logbsize=256k,noquota 0 0
/dev/mapper/vg0-ulocal /usr/local xfs rw,nodev,relatime,attr2,delaylog,logbufs=8,logbsize=256k,noquota 0 0
/dev/mapper/vg0-var /var xfs rw,nodev,relatime,attr2,delaylog,logbufs=8,logbsize=256k,noquota 0 0
*********************** END /proc/mounts

*********************** BEGIN /boot/grub/device.map
(hd0)	/dev/disk/by-id/ata-HITACHI_HTS722016K9SA00_080817DP0D70DVGS4AXC
*********************** END /boot/grub/device.map

*********************** BEGIN /boot/grub/grub.cfg
#
# 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 vbe
  insmod vga
  insmod video_bochs
  insmod video_cirrus
}

insmod lvm
insmod part_msdos
insmod xfs
set root='(vg0-usr)'
search --no-floppy --fs-uuid --set=root 301b3ba3-4e6a-46e1-a011-695aa5f235ee
if loadfont /share/grub/unicode.pf2 ; then
  set gfxmode=1280x800
  load_video
  insmod gfxterm
fi
terminal_output gfxterm
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 3.2.0-1-amd64' --class debian --class gnu-linux --class gnu --class os {
	load_video
	set gfxpayload=keep
	insmod gzio
	insmod lvm
	insmod part_msdos
	insmod xfs
	set root='(vg0-root)'
	search --no-floppy --fs-uuid --set=root af14a1aa-52e2-4a95-8d49-733722fe7949
	echo	'Loading Linux 3.2.0-1-amd64 ...'
	linux	/boot/vmlinuz-3.2.0-1-amd64 root=/dev/mapper/vg0-root ro  quiet
	echo	'Loading initial ramdisk ...'
	initrd	/boot/initrd.img-3.2.0-1-amd64
}
menuentry 'Debian GNU/Linux, with Linux 3.2.0-1-amd64 (recovery mode)' --class debian --class gnu-linux --class gnu --class os {
	load_video
	set gfxpayload=keep
	insmod gzio
	insmod lvm
	insmod part_msdos
	insmod xfs
	set root='(vg0-root)'
	search --no-floppy --fs-uuid --set=root af14a1aa-52e2-4a95-8d49-733722fe7949
	echo	'Loading Linux 3.2.0-1-amd64 ...'
	linux	/boot/vmlinuz-3.2.0-1-amd64 root=/dev/mapper/vg0-root ro single 
	echo	'Loading initial ramdisk ...'
	initrd	/boot/initrd.img-3.2.0-1-amd64
}
menuentry 'Debian GNU/Linux, with Linux 3.1.0-1-amd64' --class debian --class gnu-linux --class gnu --class os {
	load_video
	set gfxpayload=keep
	insmod gzio
	insmod lvm
	insmod part_msdos
	insmod xfs
	set root='(vg0-root)'
	search --no-floppy --fs-uuid --set=root af14a1aa-52e2-4a95-8d49-733722fe7949
	echo	'Loading Linux 3.1.0-1-amd64 ...'
	linux	/boot/vmlinuz-3.1.0-1-amd64 root=/dev/mapper/vg0-root ro  quiet
	echo	'Loading initial ramdisk ...'
	initrd	/boot/initrd.img-3.1.0-1-amd64
}
menuentry 'Debian GNU/Linux, with Linux 3.1.0-1-amd64 (recovery mode)' --class debian --class gnu-linux --class gnu --class os {
	load_video
	set gfxpayload=keep
	insmod gzio
	insmod lvm
	insmod part_msdos
	insmod xfs
	set root='(vg0-root)'
	search --no-floppy --fs-uuid --set=root af14a1aa-52e2-4a95-8d49-733722fe7949
	echo	'Loading Linux 3.1.0-1-amd64 ...'
	linux	/boot/vmlinuz-3.1.0-1-amd64 root=/dev/mapper/vg0-root ro single 
	echo	'Loading initial ramdisk ...'
	initrd	/boot/initrd.img-3.1.0-1-amd64
}
menuentry 'Debian GNU/Linux, with Linux 3.0.0-1-amd64' --class debian --class gnu-linux --class gnu --class os {
	load_video
	set gfxpayload=keep
	insmod gzio
	insmod lvm
	insmod part_msdos
	insmod xfs
	set root='(vg0-root)'
	search --no-floppy --fs-uuid --set=root af14a1aa-52e2-4a95-8d49-733722fe7949
	echo	'Loading Linux 3.0.0-1-amd64 ...'
	linux	/boot/vmlinuz-3.0.0-1-amd64 root=/dev/mapper/vg0-root ro  quiet
	echo	'Loading initial ramdisk ...'
	initrd	/boot/initrd.img-3.0.0-1-amd64
}
menuentry 'Debian GNU/Linux, with Linux 3.0.0-1-amd64 (recovery mode)' --class debian --class gnu-linux --class gnu --class os {
	load_video
	set gfxpayload=keep
	insmod gzio
	insmod lvm
	insmod part_msdos
	insmod xfs
	set root='(vg0-root)'
	search --no-floppy --fs-uuid --set=root af14a1aa-52e2-4a95-8d49-733722fe7949
	echo	'Loading Linux 3.0.0-1-amd64 ...'
	linux	/boot/vmlinuz-3.0.0-1-amd64 root=/dev/mapper/vg0-root ro single 
	echo	'Loading initial ramdisk ...'
	initrd	/boot/initrd.img-3.0.0-1-amd64
}
### 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 ###
*********************** END /boot/grub/grub.cfg

*********************** BEGIN /proc/mdstat
cat: /proc/mdstat: No such file or directory
*********************** END /proc/mdstat

*********************** BEGIN LVM

-- System Information:
Debian Release: wheezy/sid
  APT prefers testing-proposed-updates
  APT policy: (500, 'testing-proposed-updates'), (500, 'testing')
Architecture: amd64 (x86_64)

Kernel: Linux 3.1.0-1-amd64 (SMP w/2 CPU cores)
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 grub-pc depends on:
ii  debconf [debconf-2.0]  1.5.41
ii  grub-common            1.99-14
ii  grub-pc-bin            1.99-14
ii  grub2-common           1.99-14
ii  ucf                    3.0025+nmu2

grub-pc recommends no packages.

grub-pc suggests no packages.

-- debconf information:
  grub2/kfreebsd_cmdline:
  grub2/device_map_regenerated:
* grub2/linux_cmdline:
  grub-pc/install_devices_empty: false
  grub-pc/install_devices_failed: false
  grub-pc/chainload_from_menu.lst: true
  grub-pc/kopt_extracted: false
* grub-pc/install_devices: /dev/disk/by-id/ata-HITACHI_HTS722016K9SA00_080817DP0D70DVGS4AXC
  grub-pc/postrm_purge_boot_grub: false
  grub-pc/install_devices_failed_upgrade: true
  grub-pc/disk_description:
  grub2/kfreebsd_cmdline_default: quiet
  grub-pc/partition_description:
* grub-pc/install_devices_disks_changed: /dev/disk/by-id/ata-HITACHI_HTS722016K9SA00_080817DP0D70DVGS4AXC
* grub2/linux_cmdline_default: quiet
  grub-pc/mixed_legacy_and_grub2: true





More information about the Pkg-grub-devel mailing list