Incorrect groot makes wubi installations unbootable

Bug #283520 reported by Agostino Russo
16
This bug affects 1 person
Affects Status Importance Assigned to Milestone
grub-installer (Ubuntu)
Fix Released
High
Unassigned
Intrepid
Fix Released
High
Unassigned

Bug Description

Binary package hint: grub-installer

Loop-installations expect a root argument such as:

root ()/ubuntu/disks

There following code used to replace the existing groot to produce the above string

if db_get grub-installer/bootdev_directory && [ "$RET" ]; then
        sed -i "/^# groot=/s:).*:)$RET:" $ROOT/boot/grub/$menu_file
        need_update_grub=1
fi

But because of the recent changes in update-grub that provide UUID support, groot/boot_device are handled differently, and in particular the groot string returned is a UUID with no "()", hence the above sed command fails. The following should work:

if db_get grub-installer/bootdev_directory && [ "$RET" ]; then
        sed -i "s:^# groot=.*:# groot=()$RET:" $ROOT/boot/grub/$menu_file
        need_update_grub=1
fi

Tags: iso-testing
Agostino Russo (ago)
Changed in grub-installer:
importance: Undecided → High
status: New → Triaged
status: Triaged → Confirmed
Agostino Russo (ago)
description: updated
Agostino Russo (ago)
description: updated
Changed in grub-installer:
status: Confirmed → Triaged
Revision history for this message
Colin Watson (cjwatson) wrote :

I'd rather be able to handle both UUID and non-UUID styles.

Revision history for this message
Colin Watson (cjwatson) wrote :

Oh, err, the fix I committed ended up with root=UUID/ubuntu/disks where UUID is whatever was there before. Will that work? It didn't occur to me until now that you'd specifically written () - please reopen if we need to change this again.

Revision history for this message
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package grub-installer - 1.32ubuntu8

---------------
grub-installer (1.32ubuntu8) intrepid; urgency=low

  * Cope with new UUID-style groot when handling
    grub-installer/bootdev_directory (LP: #283520).

 -- Colin Watson <email address hidden> Wed, 15 Oct 2008 09:20:51 +0100

Changed in grub-installer:
status: Triaged → Fix Released
Revision history for this message
Agostino Russo (ago) wrote :

Colin, I doubt that grub4dos supports UUIDs (haven't tested that), and even if it does, things will be a bit tricky, since

A) in case of updates we need to ship a new grub4dos (wubildr & co, which, by the way, might not be under /host)

B) wubi actually uses a first embedded menu.lst that uses heuristics to set the bootloader root and then loads a second menu.lst (the one visible as /boot/grub/menu.lst) within that root. The second menu.lst does not set root, it only sets the relative path, which is why we use "()". Such heuristic approach, while not bullet proof for obvious reasons, seemed to work ok also with multiple disks.

Hence i would suggest to stick with "root ()/relative/path" for this release.

Changed in grub-installer:
status: Fix Released → In Progress
Revision history for this message
Agostino Russo (ago) wrote :

Well once groot is set in menu.lst, that will not be changed by update-grub, so updates will be ok.

Revision history for this message
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package grub-installer - 1.32ubuntu9

---------------
grub-installer (1.32ubuntu9) intrepid; urgency=low

  * grub4dos can't handle UUIDs, so tweak previous change to continue using
    groot=()/ubuntu/disks in that case (LP: #283520).

 -- Colin Watson <email address hidden> Wed, 15 Oct 2008 11:17:06 +0100

Changed in grub-installer:
status: In Progress → Fix Released
tags: added: iso-testing
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Duplicates of this bug

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.