Bug#526177: Option --root-directory of grub-install is broken in 0.97-47lenny2

Daniel Beyer debian at ymc.ch
Wed Apr 29 18:24:29 UTC 2009


Package: grub
Version: 0.97-47lenny2
Severity: important
Tags: patch


The patch 'debian/patches/xfs_freeze.diff' in the source package from version 0.97-47lenny2
breaks the option '--root-directory=' of '/usr/sbin/grub-install'. Fixing this can be done
easily by adding '--device-map=${device_map}' in line 374 of '/usr/sbin/grub-install':
 --------------------------------------------------------------------------------
|  if [ `grub-probe -t fs ${grubdir}` = "xfs" ] ; then                            |
|--- TO --->                                                                      |
|  if [ `grub-probe --device-map=${device_map} -t fs ${grubdir}` = "xfs" ] ; then |
 --------------------------------------------------------------------------------

Attached is a patch which cann be applied against 'debian/patches/xfs_freeze.diff' of the
source packages which fixes the probleme there.



-- Package-specific info:

*********************** BEGIN /boot/grub/device.map
(hd0)	/dev/sda
(hd1)	/dev/sdb
(hd2)	/dev/sdc
(hd3)   /dev/sdi
*********************** END /boot/grub/device.map

*********************** BEGIN /proc/mounts
/dev/md0 / reiserfs rw,notail 0 0
/dev/md1 /home reiserfs rw 0 0
/dev/md2 /boot ext2 rw,errors=continue 0 0
*********************** END /proc/mounts

*********************** BEGIN /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-doc/.

## default num
# Set the default entry to the entry number NUM. Numbering starts from 0, and
# the entry number 0 is the default if the command is not used.
#
# You can specify 'saved' instead of a number. In this case, the default entry
# is the entry saved with the command 'savedefault'.
# WARNING: If you are using dmraid do not change this entry to 'saved' or your
# array will desync and will not let you boot your system.
default		0

## timeout sec
# Set a timeout, in SEC seconds, before automatically booting the default entry
# (normally the first entry defined).
timeout		5

# Pretty colours
color cyan/blue white/blue

### PASSWORD LINE REMOVED ###
# If used in the first section of a menu file, disable all interactive editing
# control (menu entry editor and command-line)  and entries protected by the
# command 'lock'
### PASSWORD LINE REMOVED ###
### PASSWORD LINE REMOVED ###
### PASSWORD LINE REMOVED ###

### DABE !!! //start ###
title           Debian GNU/Linux, CURRENT kernel (resume)
root            (hd0,3)
kernel          (hd0,3)/vmlinuz ro root=/dev/md0 md=0,/dev/sda1,/dev/sdb1,/dev/sdc1 resume=/dev/sdb3 vga=791
initrd          (hd0,3)/initrd.img
savedefault

title           Debian GNU/Linux, CURRENT kernel (NO resume)
root            (hd0,3)
kernel          (hd0,3)/vmlinuz ro root=/dev/md0 md=0,/dev/sda1,/dev/sdb1,/dev/sdc1 resume=/dev/sdb3 noresume vga=791
initrd          (hd0,3)/initrd.img
savedefault

title           Debian GNU/Linux, CURRENT kernel (failed sda, boot from sdb)
root            (hd1,3)
kernel          (hd1,3)/vmlinuz ro root=/dev/md0 md=0,/dev/sdb1,/dev/sdc1
initrd          (hd1,3)/initrd.img
savedefault

title           Debian GNU/Linux, CURRENT kernel (failed sdb, boot from sdc)
root            (hd2,3)
kernel          (hd2,3)/vmlinuz ro root=/dev/md0 md=0,/dev/sda1,/dev/sdc1
initrd          (hd2,3)/initrd.img
savedefault

title           Debian GNU/Linux, CURRENT kernel (failed sdc, boot from sda)
root            (hd0,3)
kernel          (hd0,3)/vmlinuz ro root=/dev/md0 md=0,/dev/sda1,/dev/sdb1
initrd          (hd0,3)/initrd.img
savedefault
### DABE !!! //end###

#
# examples
#
# title		Windows 95/98/NT/2000
# root		(hd0,0)
# makeactive
# chainloader	+1
#
# title		Linux
# root		(hd0,1)
# kernel	/vmlinuz root=/dev/hda2 ro
#

#
# 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=ro root=/dev/md0 md=0,/dev/sda1,/dev/sdb1,/dev/sdc1

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

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

## 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 2.6.26.5 Default
root		(hd0,3)
kernel		/vmlinuz ro root=/dev/md0 md=0,/dev/sda1,/dev/sdb1,/dev/sdc1 
initrd		/initrd.img

title		Debian GNU/Linux, kernel 2.6.26.5
root		(hd0,3)
kernel		/vmlinuz-2.6.26.5 ro root=/dev/md0 md=0,/dev/sda1,/dev/sdb1,/dev/sdc1 
initrd		/initrd.img-2.6.26.5

title		Debian GNU/Linux, kernel 2.6.26-2-amd64
root		(hd0,3)
kernel		/vmlinuz-2.6.26-2-amd64 ro root=/dev/md0 md=0,/dev/sda1,/dev/sdb1,/dev/sdc1 
initrd		/initrd.img-2.6.26-2-amd64

### END DEBIAN AUTOMAGIC KERNELS LIST
*********************** END /boot/grub/menu.lst

-- System Information:
Debian Release: 5.0
  APT prefers testing
  APT policy: (500, 'testing')
Architecture: amd64 (x86_64)

Kernel: Linux 2.6.26.5 (SMP w/4 CPU cores)
Locale: LANG=de_DE at euro, LC_CTYPE=de_DE at euro (charmap=ISO-8859-15)
Shell: /bin/sh linked to /bin/bash

Versions of packages grub depends on:
ii  grub-common             1.96+20080724-16 GRand Unified Bootloader, version 

grub recommends no packages.

Versions of packages grub suggests:
pn  grub-legacy-doc      <none>              (no description available)
ii  mdadm                2.6.8-12-gb47dff6-2 tool to administer Linux MD arrays
pn  multiboot-doc        <none>              (no description available)

-- no debconf information
-------------- next part --------------
--- broken/debian/patches/xfs_freeze.diff	2009-04-29 19:58:04.000000000 +0200
+++ fixed/debian/patches/xfs_freeze.diff	2009-04-29 20:09:20.000000000 +0200
@@ -10,7 +10,7 @@
 +sync
 +
 +# On XFS, sync() is not enough.
-+if [ `grub-probe -t fs ${grubdir}` = "xfs" ] ; then
++if [ `grub-probe --device-map=${device_map} -t fs ${grubdir}` = "xfs" ] ; then
 +  xfs_freeze -f ${grubdir} && xfs_freeze -u ${grubdir}
 +  # We don't have set -e.  If xfs_freeze failed, it's worth trying anyway,
 +  # maybe we're lucky.


More information about the Pkg-grub-devel mailing list