Bug#708614: grub-common: Regression from 1.99: update-grub fails in Xen DomU: "warning: grub-probe can't find drive for /dev/xvda1."

Axel Beckert abe at debian.org
Fri May 17 08:55:24 UTC 2013


Package: grub-common
Version: 2.00-14
Severity: grave

Hi,

I'm running Sid with kernels from Experimental inside a Xen DomU. The
DomU is booted via pygrub, i.e. with its own kernels.

Hence I need a /boot/grub/menu.lst inside the DomU. To generate that I
use update-grub for quite some time (IIRC years) now. Additionally,
the grub-legacy package (0.97-67) is installed, too, but GRUB is not
installed to any disk (as pygrub is used from outside the virtual
machine).

But since the upgrade from 1.99-27.1 to 2.00-14, installing new kernel
images (namely linux-image-3.8-1-amd64 and linux-image-3.8-2-amd64)
failed as follows:

Setting up linux-image-3.8-1-amd64 (3.8.12-1) ...
Running depmod.
Examining /etc/kernel/postinst.d.
run-parts: executing /etc/kernel/postinst.d/apt-dater-host_reboot 3.8-1-amd64 /boot/vmlinuz-3.8-1-amd64
run-parts: executing /etc/kernel/postinst.d/initramfs-tools 3.8-1-amd64 /boot/vmlinuz-3.8-1-amd64
update-initramfs: Generating /boot/initrd.img-3.8-1-amd64
run-parts: executing /etc/kernel/postinst.d/zz-update-grub 3.8-1-amd64 /boot/vmlinuz-3.8-1-amd64
Searching for GRUB installation directory ... found: /boot/grub
warning: grub-probe can't find drive for /dev/xvda1.
grub-probe: warning: disk does not exist, so falling back to partition device /dev/xvda1.
grub-probe: error: cannot find a GRUB drive for /dev/xvda1.  Check your device.map.
run-parts: /etc/kernel/postinst.d/zz-update-grub exited with return code 1
Failed to process /etc/kernel/postinst.d at /var/lib/dpkg/info/linux-image-3.8-1-amd64.postinst line 696, <STDIN> line 2.
dpkg: error processing linux-image-3.8-1-amd64 (--configure):
 subprocess installed post-installation script returned error exit status 2
Setting up linux-image-3.8-2-amd64 (3.8.13-1) ...
Running depmod.
vmlinuz(/boot/vmlinuz-3.8-2-amd64
) points to /boot/vmlinuz-3.8-2-amd64
 (/boot/vmlinuz-3.8-2-amd64) -- doing nothing at /var/lib/dpkg/info/linux-image-3.8-2-amd64.postinst line 268.
initrd.img(/boot/initrd.img-3.8-2-amd64
) points to /boot/initrd.img-3.8-2-amd64
 (/boot/initrd.img-3.8-2-amd64) -- doing nothing at /var/lib/dpkg/info/linux-image-3.8-2-amd64.postinst line 268.
Examining /etc/kernel/postinst.d.
run-parts: executing /etc/kernel/postinst.d/apt-dater-host_reboot 3.8-2-amd64 /boot/vmlinuz-3.8-2-amd64
run-parts: executing /etc/kernel/postinst.d/initramfs-tools 3.8-2-amd64 /boot/vmlinuz-3.8-2-amd64
update-initramfs: Generating /boot/initrd.img-3.8-2-amd64
run-parts: executing /etc/kernel/postinst.d/zz-update-grub 3.8-2-amd64 /boot/vmlinuz-3.8-2-amd64
Searching for GRUB installation directory ... found: /boot/grub
warning: grub-probe can't find drive for /dev/xvda1.
grub-probe: warning: disk does not exist, so falling back to partition device /dev/xvda1.
grub-probe: error: cannot find a GRUB drive for /dev/xvda1.  Check your device.map.
run-parts: /etc/kernel/postinst.d/zz-update-grub exited with return code 1
Failed to process /etc/kernel/postinst.d at /var/lib/dpkg/info/linux-image-3.8-2-amd64.postinst line 696.
dpkg: error processing linux-image-3.8-2-amd64 (--configure):
 subprocess installed post-installation script returned error exit status 1
Errors were encountered while processing:
 linux-image-3.8-1-amd64
 linux-image-3.8-2-amd64

Downgrading grub-common to the version from Wheezy/Jessie
(1.99-27+deb7u1) solved the failures.

Some more information about the virtual disk /dev/xvda1 and the grub
configuration:

$ fgrep /dev/xvda1 /etc/fstab
/dev/xvda1     /     ext3     errors=remount-ro   0     1
$ cat /proc/cmdline
root=/dev/xvda1 ro root=/dev/xvda1 ro 
$ ls -l /dev/xvda*
brw-rw---T 1 root disk 202, 1 Aug 28  2012 /dev/xvda1
brw-rw---T 1 root disk 202, 2 Aug 28  2012 /dev/xvda2
$  swapon -s
Filename                                Type            Size    Used    Priority
/dev/xvda2                              partition       2097148 66892   -1
$ cat /boot/grub/menu.lst
# menu.lst - See: grub(8), info grub, update-grub(8)
#            grub-install(8), grub-floppy(8),
#            grub-md5-crypt, /usr/share/doc/grub
#            and /usr/share/doc/grub-legacy-doc/.

default         0
timeout         5

# Pretty colours
color cyan/blue white/blue

#
# Put static boot stanzas before and/or after AUTOMAGIC KERNEL LIST

### BEGIN AUTOMAGIC KERNELS LIST
## lines between the AUTOMAGIC KERNELS LIST markers will be modified
## by the debian update-grub script except for the default options below

## DO NOT UNCOMMENT THEM, Just edit them to your needs

## ## Start Default Options ##
## default kernel options
## default kernel options for automagic boot options
## If you want special options for specific kernels use kopt_x_y_z
## where x.y.z is kernel version. Minor versions can be omitted.
## e.g. kopt=root=/dev/hda1 ro
##      kopt_2_6_8=root=/dev/hdc1 ro
##      kopt_2_6_8_2_686=root=/dev/hdc2 ro
# kopt=root=/dev/xvda1 ro

## default grub root device
## e.g. groot=(hd0,0)
# groot=(hd0,0)

## should update-grub create alternative automagic boot options
## e.g. alternative=true
##      alternative=false
# alternative=true

## should update-grub lock alternative automagic boot options
## e.g. lockalternative=true
##      lockalternative=false
# lockalternative=false

## additional options to use with the default boot option, but not with the
## alternatives
## e.g. defoptions=vga=791 resume=/dev/hda5
# defoptions=

## should update-grub lock old automagic boot options
## e.g. lockold=false
##      lockold=true
# lockold=false

## Xen hypervisor options to use with the default Xen boot option
# xenhopt=

## Xen Linux kernel options to use with the default Xen boot option
# xenkopt=console=tty0

## altoption boot targets option
## multiple altoptions lines are allowed
## e.g. altoptions=(extra menu suffix) extra boot options
##      altoptions=(single-user) single
# altoptions=(single-user mode) single

## controls how many kernels should be put into the menu.lst
## only counts the first occurence of a kernel, not the
## alternative kernel options
## e.g. howmany=all
##      howmany=7
# howmany=all

## should update-grub create memtest86 boot option
## e.g. memtest86=true
##      memtest86=false
# memtest86=true

## should update-grub adjust the value of the default booted system
## can be true or false
# updatedefaultentry=false

## should update-grub add savedefault to the default options
## can be true or false
# savedefault=false

## ## End Default Options ##

title           Debian GNU/Linux, kernel 3.8-2-amd64
root            (hd0,0)
kernel          /boot/vmlinuz-3.8-2-amd64 root=/dev/xvda1 ro 
initrd          /boot/initrd.img-3.8-2-amd64

title           Debian GNU/Linux, kernel 3.8-2-amd64 (single-user mode)
root            (hd0,0)
kernel          /boot/vmlinuz-3.8-2-amd64 root=/dev/xvda1 ro single
initrd          /boot/initrd.img-3.8-2-amd64

title           Debian GNU/Linux, kernel 3.8-1-amd64
root            (hd0,0)
kernel          /boot/vmlinuz-3.8-1-amd64 root=/dev/xvda1 ro 
initrd          /boot/initrd.img-3.8-1-amd64

title           Debian GNU/Linux, kernel 3.8-1-amd64 (single-user mode)
root            (hd0,0)
kernel          /boot/vmlinuz-3.8-1-amd64 root=/dev/xvda1 ro single
initrd          /boot/initrd.img-3.8-1-amd64

title           Debian GNU/Linux, kernel 3.8-trunk-amd64
root            (hd0,0)
kernel          /boot/vmlinuz-3.8-trunk-amd64 root=/dev/xvda1 ro 
initrd          /boot/initrd.img-3.8-trunk-amd64

title           Debian GNU/Linux, kernel 3.8-trunk-amd64 (single-user mode)
root            (hd0,0)
kernel          /boot/vmlinuz-3.8-trunk-amd64 root=/dev/xvda1 ro single
initrd          /boot/initrd.img-3.8-trunk-amd64

title           Debian GNU/Linux, kernel 3.7-trunk-amd64
root            (hd0,0)
kernel          /boot/vmlinuz-3.7-trunk-amd64 root=/dev/xvda1 ro 
initrd          /boot/initrd.img-3.7-trunk-amd64

title           Debian GNU/Linux, kernel 3.7-trunk-amd64 (single-user mode)
root            (hd0,0)
kernel          /boot/vmlinuz-3.7-trunk-amd64 root=/dev/xvda1 ro single
initrd          /boot/initrd.img-3.7-trunk-amd64

title           Debian GNU/Linux, kernel 3.6-trunk-amd64
root            (hd0,0)
kernel          /boot/vmlinuz-3.6-trunk-amd64 root=/dev/xvda1 ro 
initrd          /boot/initrd.img-3.6-trunk-amd64

title           Debian GNU/Linux, kernel 3.6-trunk-amd64 (single-user mode)
root            (hd0,0)
kernel          /boot/vmlinuz-3.6-trunk-amd64 root=/dev/xvda1 ro single
initrd          /boot/initrd.img-3.6-trunk-amd64

title           Debian GNU/Linux, kernel 3.5-trunk-amd64
root            (hd0,0)
kernel          /boot/vmlinuz-3.5-trunk-amd64 root=/dev/xvda1 ro 
initrd          /boot/initrd.img-3.5-trunk-amd64

title           Debian GNU/Linux, kernel 3.5-trunk-amd64 (single-user mode)
root            (hd0,0)
kernel          /boot/vmlinuz-3.5-trunk-amd64 root=/dev/xvda1 ro single
initrd          /boot/initrd.img-3.5-trunk-amd64

title           Debian GNU/Linux, kernel 3.4-trunk-amd64
root            (hd0,0)
kernel          /boot/vmlinuz-3.4-trunk-amd64 root=/dev/xvda1 ro 
initrd          /boot/initrd.img-3.4-trunk-amd64

title           Debian GNU/Linux, kernel 3.4-trunk-amd64 (single-user mode)
root            (hd0,0)
kernel          /boot/vmlinuz-3.4-trunk-amd64 root=/dev/xvda1 ro single
initrd          /boot/initrd.img-3.4-trunk-amd64

title           Debian GNU/Linux, kernel 3.3.0-trunk-amd64
root            (hd0,0)
kernel          /boot/vmlinuz-3.3.0-trunk-amd64 root=/dev/xvda1 ro 
initrd          /boot/initrd.img-3.3.0-trunk-amd64

title           Debian GNU/Linux, kernel 3.3.0-trunk-amd64 (single-user mode)
root            (hd0,0)
kernel          /boot/vmlinuz-3.3.0-trunk-amd64 root=/dev/xvda1 ro single
initrd          /boot/initrd.img-3.3.0-trunk-amd64

title           Debian GNU/Linux, kernel 3.2.0-4-amd64
root            (hd0,0)
kernel          /boot/vmlinuz-3.2.0-4-amd64 root=/dev/xvda1 ro 
initrd          /boot/initrd.img-3.2.0-4-amd64

title           Debian GNU/Linux, kernel 3.2.0-4-amd64 (single-user mode)
root            (hd0,0)
kernel          /boot/vmlinuz-3.2.0-4-amd64 root=/dev/xvda1 ro single
initrd          /boot/initrd.img-3.2.0-4-amd64

title           Debian GNU/Linux, kernel 3.2.0-3-amd64
root            (hd0,0)
kernel          /boot/vmlinuz-3.2.0-3-amd64 root=/dev/xvda1 ro 
initrd          /boot/initrd.img-3.2.0-3-amd64

title           Debian GNU/Linux, kernel 3.2.0-3-amd64 (single-user mode)
root            (hd0,0)
kernel          /boot/vmlinuz-3.2.0-3-amd64 root=/dev/xvda1 ro single
initrd          /boot/initrd.img-3.2.0-3-amd64

title           Debian GNU/Linux, kernel 2.6.32-5-xen-amd64
root            (hd0,0)
kernel          /boot/vmlinuz-2.6.32-5-xen-amd64 root=/dev/xvda1 ro 
initrd          /boot/initrd.img-2.6.32-5-xen-amd64

title           Debian GNU/Linux, kernel 2.6.32-5-xen-amd64 (single-user mode)
root            (hd0,0)
kernel          /boot/vmlinuz-2.6.32-5-xen-amd64 root=/dev/xvda1 ro single
initrd          /boot/initrd.img-2.6.32-5-xen-amd64

### END DEBIAN AUTOMAGIC KERNELS LIST
$ 

-- System Information:
Debian Release: jessie/sid
  APT prefers unstable
  APT policy: (990, 'unstable'), (600, 'testing'), (400, 'stable'), (110, 'experimental')
Architecture: amd64 (x86_64)
Foreign Architectures: i386

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

Versions of packages grub-common depends on:
ii  gettext-base        0.18.1.1-10
ii  libc6               2.17-3
ii  libdevmapper1.02.1  2:1.02.77-1
ii  libfreetype6        2.4.9-1.1
ii  libfuse2            2.9.2-4
ii  liblzma5            5.1.1alpha+20120614-2
ii  zlib1g              1:1.2.8.dfsg-1

Versions of packages grub-common recommends:
pn  os-prober  <none>

Versions of packages grub-common suggests:
pn  desktop-base   <none>
pn  grub-emu       <none>
pn  multiboot-doc  <none>
pn  xorriso        <none>

-- no debconf information



More information about the Pkg-grub-devel mailing list