Bug#645603: grub Debian package does not seem to take preseeding into account

Sebastien Hinderer sebastien.hinderer at ens-lyon.org
Mon Oct 17 10:59:38 UTC 2011


Package: grub-pc
Version: 1.99-12
Severity: normal

Hello,

I'm writing a script to install Debian automatically on a memory card.
During the install, the memory card is in a USB card reader connected to a
PC, typically the device for the card is /dev/sdb and the system partition
is on /dev/sdb1.
Once the system is installed, the idea is to put the card in anotehr machine
and to boot on it. At boot time, though, the device corresponding to the
memory card will be /dev/hda and the system partition will thus be on
/dev/hda1.
(it is not possible to perform the installation with the card in the computer
where it will be booted later for some reasons too long to explain here).

Anyway: it is in this context that I tried to use some preseeding to
automate grub's installation.
Ideally I'd like to be able to do the preseeding in a way that allows the
package's postinst script to install grub correctly. As a fallback, it would
be okay that the postinst script does not install grub on the MBR and that
this is done by a command executed by my script after the package has been
installed.

So far, though, nothing worked and I have the problem that although I
preseed some settings before the package is installed, questions are still
asked to the user interactively, which is precisely the behaviour I'd like to
avoid.

For the preseeding I tried things like:
grub-pc grub-pc/install_devices multiselect
grub-pc grub-pc/install_devices seen    true
grub-pc grub-pc/install_devices_empty   boolean true
grub-pc grub-pc/install_devices_empty   seen    true
grub-pc grub-pc/mixed_legacy_and_grub2  boolean false
grub-pc grub-pc/mixed_legacy_and_grub2  seen    true
But that does not work, the questions are still asked as if nothing had been
preseeded.

I also tried:
grub-pc grub-pc/install_devices multiselect     /dev/sdb
but the results are not more satisfactory: postinst still goes interactive.

So, any advice would be greatly appreciated. I'm reporting this as a bug
because I find it very strange that the preseeding seems to be ignored and
the questions seem to be asked in an unconditional way.

Any help greatly appreciated.

Thanks.

PS: there is also the problem that update-grub includes options to bot on
the systems present on the host OS but these will not be present on the real
machine so any advice on how to cleanly proceed so that these alternatives
are not included would also be greatly appreciated.

-- Package-specific info:

*********************** BEGIN /proc/mounts
/dev/disk/by-uuid/80d90ea6-7c6e-4b6d-b1cf-1a37df95ccce / ext3 rw,relatime,errors=remount-ro,commit=5,barrier=0,data=ordered 0 0
/dev/sdb1 /mnt ext3 rw,relatime,errors=continue,user_xattr,acl,barrier=0,data=ordered 0 0
*********************** END /proc/mounts

*********************** BEGIN /boot/grub/device.map
(hd0)	/dev/disk/by-id/ata-FUJITSU_MHZ2160BJ_FFS_G2_K83CT8A26DFU
*********************** 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 part_msdos
insmod ext2
set root='(hd0,msdos4)'
search --no-floppy --fs-uuid --set=root 80d90ea6-7c6e-4b6d-b1cf-1a37df95ccce
if loadfont /usr/share/grub/unicode.pf2 ; then
  set gfxmode=640x480
  load_video
  insmod gfxterm
  insmod part_msdos
  insmod ext2
  set root='(hd0,msdos4)'
  search --no-floppy --fs-uuid --set=root 80d90ea6-7c6e-4b6d-b1cf-1a37df95ccce
  set locale_dir=($root)/boot/grub/locale
  set lang=fr_FR
  insmod gettext
fi
terminal_output gfxterm
set timeout=5
### END /etc/grub.d/00_header ###

### BEGIN /etc/grub.d/05_debian_theme ###
insmod part_msdos
insmod ext2
set root='(hd0,msdos4)'
search --no-floppy --fs-uuid --set=root 80d90ea6-7c6e-4b6d-b1cf-1a37df95ccce
insmod png
if background_image /usr/share/images/desktop-base/spacefun-grub.png; then
  set color_normal=light-gray/black
  set color_highlight=white/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, avec Linux 3.0.0-2-amd64' --class debian --class gnu-linux --class gnu --class os {
	insmod gzio
	insmod part_msdos
	insmod ext2
	set root='(hd0,msdos4)'
	search --no-floppy --fs-uuid --set=root 80d90ea6-7c6e-4b6d-b1cf-1a37df95ccce
	echo	'Chargement de Linux 3.0.0-2-amd64 ...'
	linux	/boot/vmlinuz-3.0.0-2-amd64 root=UUID=80d90ea6-7c6e-4b6d-b1cf-1a37df95ccce ro quiet acpi_osi=Linux 
	echo	'Chargement du disque mémoire initial ...'
	initrd	/boot/initrd.img-3.0.0-2-amd64
}
menuentry 'Debian GNU/Linux, avec Linux 3.0.0-2-amd64 (mode de dépannage)' --class debian --class gnu-linux --class gnu --class os {
	insmod gzio
	insmod part_msdos
	insmod ext2
	set root='(hd0,msdos4)'
	search --no-floppy --fs-uuid --set=root 80d90ea6-7c6e-4b6d-b1cf-1a37df95ccce
	echo	'Chargement de Linux 3.0.0-2-amd64 ...'
	linux	/boot/vmlinuz-3.0.0-2-amd64 root=UUID=80d90ea6-7c6e-4b6d-b1cf-1a37df95ccce ro single quiet
	echo	'Chargement du disque mémoire initial ...'
	initrd	/boot/initrd.img-3.0.0-2-amd64
}
menuentry 'Debian GNU/Linux, avec Linux 3.0.0-1-amd64' --class debian --class gnu-linux --class gnu --class os {
	insmod gzio
	insmod part_msdos
	insmod ext2
	set root='(hd0,msdos4)'
	search --no-floppy --fs-uuid --set=root 80d90ea6-7c6e-4b6d-b1cf-1a37df95ccce
	echo	'Chargement de Linux 3.0.0-1-amd64 ...'
	linux	/boot/vmlinuz-3.0.0-1-amd64 root=UUID=80d90ea6-7c6e-4b6d-b1cf-1a37df95ccce ro quiet acpi_osi=Linux 
	echo	'Chargement du disque mémoire initial ...'
	initrd	/boot/initrd.img-3.0.0-1-amd64
}
menuentry 'Debian GNU/Linux, avec Linux 3.0.0-1-amd64 (mode de dépannage)' --class debian --class gnu-linux --class gnu --class os {
	insmod gzio
	insmod part_msdos
	insmod ext2
	set root='(hd0,msdos4)'
	search --no-floppy --fs-uuid --set=root 80d90ea6-7c6e-4b6d-b1cf-1a37df95ccce
	echo	'Chargement de Linux 3.0.0-1-amd64 ...'
	linux	/boot/vmlinuz-3.0.0-1-amd64 root=UUID=80d90ea6-7c6e-4b6d-b1cf-1a37df95ccce ro single quiet
	echo	'Chargement du disque mémoire initial ...'
	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 ###
menuentry "Microsoft Windows XP Professionnel (on /dev/sda2)" --class windows --class os {
	insmod part_msdos
	insmod ntfs
	set root='(hd0,msdos2)'
	search --no-floppy --fs-uuid --set=root 26F2E230F2E203C1
	drivemap -s (hd0) ${root}
	chainloader +1
}
### 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 /dev/disk/by-id
total 0
lrwxrwxrwx 1 root root  9 Oct 17 11:31 ata-FUJITSU_MHZ2160BJ_FFS_G2_K83CT8A26DFU -> ../../sda
lrwxrwxrwx 1 root root 10 Oct 17 11:31 ata-FUJITSU_MHZ2160BJ_FFS_G2_K83CT8A26DFU-part1 -> ../../sda1
lrwxrwxrwx 1 root root 10 Oct 17 11:31 ata-FUJITSU_MHZ2160BJ_FFS_G2_K83CT8A26DFU-part2 -> ../../sda2
lrwxrwxrwx 1 root root 10 Oct 17 11:31 ata-FUJITSU_MHZ2160BJ_FFS_G2_K83CT8A26DFU-part3 -> ../../sda3
lrwxrwxrwx 1 root root 10 Oct 17 11:31 ata-FUJITSU_MHZ2160BJ_FFS_G2_K83CT8A26DFU-part4 -> ../../sda4
lrwxrwxrwx 1 root root  9 Oct 17 11:31 ata-TSSTcorp_CD-RW_DVD-ROM_TS-L463A -> ../../sr0
lrwxrwxrwx 1 root root  9 Oct 17 11:31 scsi-SATA_FUJITSU_MHZ2160_K83CT8A26DFU -> ../../sda
lrwxrwxrwx 1 root root 10 Oct 17 11:31 scsi-SATA_FUJITSU_MHZ2160_K83CT8A26DFU-part1 -> ../../sda1
lrwxrwxrwx 1 root root 10 Oct 17 11:31 scsi-SATA_FUJITSU_MHZ2160_K83CT8A26DFU-part2 -> ../../sda2
lrwxrwxrwx 1 root root 10 Oct 17 11:31 scsi-SATA_FUJITSU_MHZ2160_K83CT8A26DFU-part3 -> ../../sda3
lrwxrwxrwx 1 root root 10 Oct 17 11:31 scsi-SATA_FUJITSU_MHZ2160_K83CT8A26DFU-part4 -> ../../sda4
lrwxrwxrwx 1 root root  9 Oct 17 11:46 usb-Kingston_FCR-HS219_1_113302001936-0:0 -> ../../sdb
lrwxrwxrwx 1 root root 10 Oct 17 11:46 usb-Kingston_FCR-HS219_1_113302001936-0:0-part1 -> ../../sdb1
lrwxrwxrwx 1 root root  9 Oct 17 11:39 usb-Kingston_FCR-HS219_1_113302001936-0:1 -> ../../sdc
lrwxrwxrwx 1 root root  9 Oct 17 11:39 usb-Kingston_FCR-HS219_1_113302001936-0:2 -> ../../sdd
lrwxrwxrwx 1 root root  9 Oct 17 11:39 usb-Kingston_FCR-HS219_1_113302001936-0:3 -> ../../sde
lrwxrwxrwx 1 root root  9 Oct 17 11:31 wwn-0x500000e042e45b66 -> ../../sda
lrwxrwxrwx 1 root root 10 Oct 17 11:31 wwn-0x500000e042e45b66-part1 -> ../../sda1
lrwxrwxrwx 1 root root 10 Oct 17 11:31 wwn-0x500000e042e45b66-part2 -> ../../sda2
lrwxrwxrwx 1 root root 10 Oct 17 11:31 wwn-0x500000e042e45b66-part3 -> ../../sda3
lrwxrwxrwx 1 root root 10 Oct 17 11:31 wwn-0x500000e042e45b66-part4 -> ../../sda4
*********************** END /dev/disk/by-id

*********************** BEGIN /dev/disk/by-uuid
total 0
lrwxrwxrwx 1 root root 10 Oct 17 11:31 07D8-0A1E -> ../../sda1
lrwxrwxrwx 1 root root 10 Oct 17 11:31 26F2E230F2E203C1 -> ../../sda2
lrwxrwxrwx 1 root root 10 Oct 17 11:31 80d90ea6-7c6e-4b6d-b1cf-1a37df95ccce -> ../../sda4
lrwxrwxrwx 1 root root 10 Oct 17 11:46 bdad3ccb-b432-4667-b429-f55f6bbd8806 -> ../../sdb1
lrwxrwxrwx 1 root root 10 Oct 17 11:31 f626bb76-d216-4ea2-b7dc-3fe22ff9b3cb -> ../../sda3
*********************** END /dev/disk/by-uuid

-- System Information:
Debian Release: wheezy/sid
  APT prefers unstable
  APT policy: (500, 'unstable'), (500, 'testing'), (500, 'stable'), (1, 'experimental')
Architecture: amd64 (x86_64)

Kernel: Linux 3.0.0-2-amd64 (SMP w/2 CPU cores)
Locale: LANG=fr_FR.UTF-8, LC_CTYPE=fr_FR.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-12    
ii  grub-pc-bin            1.99-12    
ii  grub2-common           1.99-12    
ii  ucf                    3.0025+nmu2

grub-pc recommends no packages.

grub-pc suggests no packages.

-- debconf information excluded





More information about the Pkg-grub-devel mailing list