[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#385180: marked as done (GRUB 2 support)



Your message dated Thu, 31 Aug 2006 15:32:12 -0700
with message-id <E1GIv52-0003dV-JT@spohr.debian.org>
and subject line Bug#385180: fixed in grub-installer 1.18
has caused the attached Bug report to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what I am
talking about this indicates a serious mail system misconfiguration
somewhere.  Please contact me immediately.)

Debian bug tracking system administrator
(administrator, Debian Bugs database)

--- Begin Message ---
Package: grub-installer
Severity: wishlist
Tags: patch

Attached patch allows grub-installer to optionaly install GRUB 2.

-- System Information:
Debian Release: testing/unstable
  APT prefers testing
  APT policy: (500, 'testing'), (1, 'experimental')
Architecture: amd64 (x86_64)
Shell:  /bin/sh linked to /bin/bash
Kernel: Linux 2.6.16-2-amd64-k8
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8) (ignored: LC_ALL set to en_US.UTF-8)
Index: debian/grub-installer.templates
===================================================================
--- debian/grub-installer.templates	(revision 40258)
+++ debian/grub-installer.templates	(working copy)
@@ -89,6 +89,16 @@
  .
  This is a fatal error.
 
+Template: grub-installer/grub2_instead_of_grub_legacy
+Type: boolean
+Default: false
+_Description: Install GRUB 2 instead of GRUB Legacy?
+ GRUB 2 is the next generation of GNU GRUB.  It has interesting new features but
+ is yet in experimental stage.  If you choose to install it, you should be
+ prepared for breakage, and have an idea on how to recover your system if it
+ becomes unbootable.  You're advised not to do try this on production
+ environments.
+
 Template: grub-installer/progress/title
 Type: text
 _Description: Installing GRUB boot loader
Index: grub-installer
===================================================================
--- grub-installer	(revision 40258)
+++ grub-installer	(working copy)
@@ -188,6 +188,22 @@
 
 bootfstype=$(findfstype /boot)
 [ -n "$bootfstype" ] || bootfstype="$(findfstype /)"
+
+# GRUB Legacy defaults
+grub_version="grub"
+menu_file="menu.lst"
+
+# reiserfs is the only filesystem that d-i supports and grub2 doesn't yet
+if [ "$bootfstype" != "reiserfs" ]; then
+  db_input critical grub-installer/grub2_instead_of_grub_legacy || [ $? -eq 30 ]
+  db_go || true
+  db_get grub-installer/grub2_instead_of_grub_legacy
+  if [ "$RET" = true ]; then
+    grub_version="grub2"
+    menu_file="grub.cfg"
+  fi
+fi
+
 if [ "$bootfstype" = "xfs" ]; then
 	# warn user that grub on xfs is not safe and let them back out to
 	# main menu.
@@ -203,8 +219,13 @@
 
 db_progress INFO grub-installer/progress/step_install
 
-if ! apt-install grub ; then
-	info "Calling 'apt-install grub' failed"
+# apt-install passes --no-remove to apt, but grub{,2} conflict each other, so
+# we need to purge them first to support users who try grub2 and then switch
+# to grub legacy, or vice-versa.
+log-output -t grub-installer $chroot $ROOT dpkg -P grub grub2
+
+if ! apt-install ${grub_version} ; then
+	info "Calling 'apt-install ${grub_version}' failed"
 	# Hm, unable to install grub into $ROOT/, what should we do?
 	db_input critical grub-installer/apt-install-failed || [ $? -eq 30 ]
 	if ! db_go; then
@@ -366,7 +387,7 @@
 db_progress INFO grub-installer/progress/step_config_loader
 
 # Delete for idempotency.
-rm -f $ROOT/boot/grub/menu.lst
+rm -f $ROOT/boot/grub/${menu_file}
 update_grub
 
 # Set up a password if asked.
@@ -389,11 +410,11 @@
 	# Add a line to menu.lst to use the given password
 	# The line is appended after the commented example
 	sed '/^# password/r /tmp/menu.lst.password' \
-		< $ROOT/boot/grub/menu.lst > $ROOT/boot/grub/menu.lst.new
-	mv $ROOT/boot/grub/menu.lst.new $ROOT/boot/grub/menu.lst
+		< $ROOT/boot/grub/${menu_file} > $ROOT/boot/grub/${menu_file}.new
+	mv $ROOT/boot/grub/${menu_file}.new $ROOT/boot/grub/${menu_file}
 	# By default, menu.lst is world-readable, which is not so good if it
 	# contains a password.
-	chmod o-r $ROOT/boot/grub/menu.lst
+	chmod o-r $ROOT/boot/grub/${menu_file}
 	rm -f /tmp/menu.lst.password
 fi 
 
@@ -401,8 +422,8 @@
 if [ -n "$user_params" ]; then
 	# Modify menu.lst to include user parameters.
 	sed "s!^\(# kopt=.*\)!\1 $user_params!" \
-		< $ROOT/boot/grub/menu.lst > $ROOT/boot/grub/menu.lst.new
-	mv $ROOT/boot/grub/menu.lst.new $ROOT/boot/grub/menu.lst
+		< $ROOT/boot/grub/${menu_file} > $ROOT/boot/grub/${menu_file}.new
+	mv $ROOT/boot/grub/${menu_file}.new $ROOT/boot/grub/${menu_file}
 	update_grub # again, to add new options to all the Debian kernel entries
 fi
 
@@ -424,37 +445,48 @@
 
 # This entry automatically added by the Debian installer for a non-linux OS
 # on $partition
+EOF
+				if [ "${grub_version}" = "grub" ] ; then
+					cat >> $tmpfile <<EOF
 title		$title
 root		$grubdrive
 savedefault
 EOF
-				# Only set makeactive if grub is installed
-				# in the mbr.
-				if [ "$bootdev" = "(hd0)" ]; then
-					cat >> $tmpfile <<EOF
+					# Only set makeactive if grub is installed
+					# in the mbr.
+					if [ "$bootdev" = "(hd0)" ] ; then
+						cat >> $tmpfile <<EOF
 makeactive
 EOF
-				fi
-				# DOS/Windows can't deal with booting from a
-				# non-first hard drive.
-				case $shortname in
-					MS*|Win*)
-						grubdisk="$(echo "$grubdrive" | sed 's/^(//; s/)$//; s/,.*//')"
-						case $grubdisk in
-							hd0)	;;
-							hd*)
-								cat >> $tmpfile <<EOF
+					fi
+					# DOS/Windows can't deal with booting from a
+					# non-first hard drive.
+					case $shortname in
+						MS*|Win*)
+							grubdisk="$(echo "$grubdrive" | sed 's/^(//; s/)$//; s/,.*//')"
+							case $grubdisk in
+								hd0)	;;
+								hd*)
+									cat >> $tmpfile <<EOF
 map		(hd0) ($grubdisk)
 map		($grubdisk) (hd0)
 EOF
-								;;
-						esac
-						;;
-				esac
-				cat >> $tmpfile <<EOF
+									;;
+							esac
+							;;
+					esac
+					cat >> $tmpfile <<EOF
 chainloader	+1
 
 EOF
+				else # grub2
+					cat >> $tmpfile <<EOF
+menuentry "$title" {
+	set root=$grubdrive
+	chainloader +1
+}
+EOF
+				fi
 			fi
 		;;
 		linux)
@@ -488,20 +520,39 @@
 
 # This entry automatically added by the Debian installer for an existing
 # linux installation on $mappedpartition.
+EOF
+				if [ "${grub_version}" = "grub" ] ; then
+					cat >> $tmpfile <<EOF
 title		$label (on $mappedpartition)
 root		$grubdrive
 kernel		$kernel $params
 EOF
-				if [ -n "$initrd" ]; then
-					cat >> $tmpfile <<EOF
+					if [ -n "$initrd" ]; then
+						cat >> $tmpfile <<EOF
 initrd		$initrd
 EOF
-				fi
-				cat >> $tmpfile <<EOF
+					fi
+					cat >> $tmpfile <<EOF
 savedefault
 boot
 
 EOF
+				else # grub2
+					cat >> $tmpfile <<EOF
+menuentry "$label (on $mappedpartition)" {
+	set root=$grubdrive
+	linux $kernel $params
+EOF
+					if [ -n "$initrd" ]; then
+						cat >> $tmpfile <<EOF
+	initrd $initrd
+EOF
+					fi
+					cat >> $tmpfile <<EOF
+}
+
+EOF
+				fi
 				IFS="$newline"
 			done
 			IFS="$OLDIFS"
@@ -515,6 +566,9 @@
 
 # This entry automatically added by the Debian installer for an existing
 # hurd installation on $partition.
+EOF
+			if [ "${grub_version}" = "grub" ] ; then
+				cat >> $tmpfile <<EOF
 title		$title (on $partition)
 root		$grubdrive
 kernel		/boot/gnumach.gz root=device:$hurddrive
@@ -529,6 +583,22 @@
 boot
 
 EOF
+			else
+				cat >> $tmpfile <<EOF
+menuentry "$title (on $partition)" {
+	set root=$grubdrive
+	multiboot /boot/gnumach.gz root=device:$hurddrive
+	module /hurd/ext2fs.static --readonly \\
+			--multiboot-command-line=\${kernel-command-line} \\
+			--host-priv-port=\${host-port} \\
+			--device-master-port=\${device-port} \\
+			--exec-server-task=\${exec-task} -T typed \${root} \\
+			\$(task-create) \$(task-resume)
+	module /lib/ld.so.1 /hurd/exec \$(exec-task=task-create)
+}
+
+EOF
+			fi
 		;;
 		*)
 			info "unhandled: $os"
@@ -539,8 +609,9 @@
 IFS="$OLDIFS"
 rm -f /tmp/os-probed
 
-if [ -s $tmpfile ]; then
-	cat >> $ROOT/boot/grub/menu.lst << EOF
+if [ -s $tmpfile ] ; then
+	if [ "${grub_version}" = "grub" ] ; then
+		cat >> $ROOT/boot/grub/${menu_file} << EOF
 
 # This is a divider, added to separate the menu items below from the Debian
 # ones.
@@ -548,7 +619,8 @@
 root
 
 EOF
-	cat $tmpfile >> $ROOT/boot/grub/menu.lst
+	fi
+	cat $tmpfile >> $ROOT/boot/grub/${menu_file}
 	rm -f $tmpfile
 fi
 

--- End Message ---
--- Begin Message ---
Source: grub-installer
Source-Version: 1.18

We believe that the bug you reported is fixed in the latest version of
grub-installer, which is due to be installed in the Debian FTP archive:

grub-installer_1.18.dsc
  to pool/main/g/grub-installer/grub-installer_1.18.dsc
grub-installer_1.18.tar.gz
  to pool/main/g/grub-installer/grub-installer_1.18.tar.gz
grub-installer_1.18_i386.udeb
  to pool/main/g/grub-installer/grub-installer_1.18_i386.udeb



A summary of the changes between this version and the previous one is
attached.

Thank you for reporting the bug, which will now be closed.  If you
have further comments please address them to 385180@bugs.debian.org,
and the maintainer will reopen the bug report if appropriate.

Debian distribution maintenance software
pp.
Otavio Salvador <otavio@debian.org> (supplier of updated grub-installer package)

(This message was generated automatically at their request; if you
believe that there is a problem with it please contact the archive
administrators by mailing ftpmaster@debian.org)


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Format: 1.7
Date: Thu, 31 Aug 2006 19:10:57 -0300
Source: grub-installer
Binary: grub-installer
Architecture: source i386
Version: 1.18
Distribution: unstable
Urgency: low
Maintainer: Debian Install System Team <debian-boot@lists.debian.org>
Changed-By: Otavio Salvador <otavio@debian.org>
Description: 
 grub-installer - Install GRUB on a hard disk (udeb)
Closes: 380351 385180
Changes: 
 grub-installer (1.18) unstable; urgency=low
 .
   [ Joey Hess ]
   * Fix mistake in displaying failure message if grub-install run in rescue
     mode fails.
 .
   [ Simon Huggins ]
   * Allow installation to more than one disk if preseeding.
 .
   [ Otavio Salvador ]
   * Apply patch from Robert Millan <rmh@aybabtu.com> to removed hardcoded
     paths from grub-install and update-grub. Closes: #380351
   * Apply patch from Robert Millan <rmh@aybabtu.com> to allow use of grub2
     instead of grub legacy. Closes: 385180
 .
   [ Updated translations ]
   * Arabic (ar.po) by Ossama M. Khayat
   * Catalan (ca.po) by Jordi Mallach
   * Czech (cs.po) by Miroslav Kure
   * Danish (da.po) by Claus Hindsgaul
   * German (de.po) by Jens Seidel
   * Dzongkha (dz.po) by Jurmey Rabgay
   * Greek, Modern (1453-) (el.po) by quad-nrg.net
   * Esperanto (eo.po) by Serge Leblanc
   * Spanish (es.po) by Javier Fernández-Sanguino Peña
   * Estonian (et.po) by Siim Põder
   * Basque (eu.po) by Piarres Beobide
   * Finnish (fi.po) by Tapio Lehtonen
   * French (fr.po) by Christian Perrier
   * Galician (gl.po) by Jacobo Tarrio
   * Gujarati (gu.po) by Kartik Mistry
   * Hebrew (he.po) by Lior Kaplan
   * Hungarian (hu.po) by SZERVÃ?C Attila
   * Italian (it.po) by Giuseppe Sacco
   * Japanese (ja.po) by Kenshi Muto
   * Khmer (km.po) by Khoem Sokhem
   * Korean (ko.po) by Sunjae park
   * Lithuanian (lt.po) by KÄ?stutis BiliÅ«nas
   * Macedonian (mk.po) by Georgi Stanojevski
   * Norwegian Bokmål (nb.po) by Bjørn Steensrud
   * Dutch (nl.po) by Bart Cornelis
   * Panjabi (pa.po) by A S Alam
   * Polish (pl.po) by Bartosz Fenski
   * Portuguese (Brazil) (pt_BR.po) by André Luís Lopes
   * Portuguese (pt.po) by Miguel Figueiredo
   * Romanian (ro.po) by Eddy PetriÅ?or
   * Russian (ru.po) by Yuri Kozlov
   * Northern Sami (se.po) by Børre Gaup
   * Slovak (sk.po) by Peter Mann
   * Swedish (sv.po) by Daniel Nylander
   * Thai (th.po) by Theppitak Karoonboonyanan
   * Tagalog (tl.po) by Eric Pareja
   * Turkish (tr.po) by Recai OktaÅ?
   * Ukrainian (uk.po) by Eugeniy Meshcheryakov
   * Vietnamese (vi.po) by Clytie Siddall
   * Simplified Chinese (zh_CN.po) by Carlos Z.F. Liu
   * Traditional Chinese (zh_TW.po) by Tetralet
Files: 
 d5b5fd9ed9449b6a5e442aa12285c6a1 717 debian-installer standard grub-installer_1.18.dsc
 c1b0afdcd903da9afb4c8cef43b5f633 119358 debian-installer standard grub-installer_1.18.tar.gz
 1d8d25585daaa4437c228b8f0584039a 94510 debian-installer standard grub-installer_1.18_i386.udeb
Package-Type: udeb

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.5 (GNU/Linux)

iD8DBQFE918BLqiZQEml+FURAmizAJ4qVvQXW+1sG6A0vq473So65ZXqwgCgkXcI
pBxTHso7OOUnZjRoctCAKyM=
=hKpJ
-----END PGP SIGNATURE-----


--- End Message ---

Reply to: