Isadora install to /dev/sdb1 gives wrong grub setup

Bug #658140 reported by pgmer6809 on 2010-10-11
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Linux Mint
Triaged
Undecided
Unassigned
ubiquity
Invalid
Undecided
Unassigned
ubiquity (Ubuntu)
Undecided
Unassigned

Bug Description

During install of Isadora (LXDE 32 bit download .iso image) it asks you if it should create a boot loader on /dev/sda
I said NO. I have a boot loader there already, and also a dual boot setup that I would have a hard time recreating.

Isadora then creates a /boot/grub/grub.cfg file on /dev/sdb1 that refers to /dev/sda1 and also has UUID's in the menu entry
that do not exist on my machine.

When I reboot into Ubuntu and run sudo update-grub, the new grub.cfg on /dev/sda1 picks up the linux Mint 9 entries, but it copies the info from the file that Isadora made, and hence the menus are wrong.

When I try to boot isadora, it exits to busybox saying it cannot find the disk with the UUID isadora has created.

I have to manually edit the grub.cfg file to fill in the correct UUID's.

affects: community.linuxmint.com → linuxmint
pgmer6809 (pgmer6809-gmail) wrote :

PS, I was installing Mint 9 Isadora to /dev/sdb1. /dev/sda1 and /dev/sda2 already had Win XP and Ubuntu Lucid on them.
pgmer6809

Ikey Doherty (ikey) on 2011-02-27
Changed in linuxmint:
status: New → Triaged
tags: added: grub install invalid lxde ubiquity
Colin Watson (cjwatson) wrote :

I don't understand why this is a Ubiquity bug. Surely it is a bug in Isadora?

Changed in ubiquity:
status: New → Invalid
Changed in ubiquity (Ubuntu):
status: New → Incomplete
Colin Watson (cjwatson) wrote :

Also, if it is a bug in Ubiquity, we would need installation logs in order to investigate it.

eexo (electric-exo) wrote :

Same problem here.
It seems to be caused by linux-boot-prober:
# linux-boot-prober /dev/sdb1
/dev/sdb1:/dev/sdb1:Linux Mint 14 MATE 32-bit, 3.4.34-030434-i7 (/dev/sda3):/boot/vmlinuz-3.4.34-030434-i7:/boot/initrd.img-3.4.34-030434-i7:root=UUID=ce078971-fdfb-4b0f-aaa8-728dc9b2f83b ro crashkernel=384M-2G:64M,2G-:128M quiet splash $vt_handoff

while blkid shows:
# blkid
/dev/sda3: UUID="ce078971-fdfb-4b0f-aaa8-728dc9b2f83b" TYPE="ext4"
/dev/sdb1: UUID="a1849561-5dae-4680-b989-8651e05fe1eb" TYPE="ext4"

i.e it puts wrong "root=".

The code below works it around, insert at approriate place in /etc/grub.d/30_os_prober:

    linux)
      LINUXPROBED="`linux-boot-prober ${DEVICE} 2> /dev/null | tr ' ' '^' | paste -s -d ' '`"
      prepare_boot_cache=
      boot_device_id=
      is_first_entry=true
      title_correction_code=
      OS="${LONGNAME}"

      for LINUX in ${LINUXPROBED} ; do
        LROOT="`echo ${LINUX} | cut -d ':' -f 1`"
        LBOOT="`echo ${LINUX} | cut -d ':' -f 2`"
        LLABEL="`echo ${LINUX} | cut -d ':' -f 3 | tr '^' ' '`"
        LKERNEL="`echo ${LINUX} | cut -d ':' -f 4`"
        LINITRD="`echo ${LINUX} | cut -d ':' -f 5`"
        LPARAMS="`echo ${LINUX} | cut -d ':' -f 6- | tr '^' ' ' | sed -e 's/root=[^ ]*//;'`"

        if [ -z "${LLABEL}" ] ; then
          LLABEL="${LONGNAME}"
        fi

        if [ "${LROOT}" != "${LBOOT}" ]; then
          LKERNEL="${LKERNEL#/boot}"
          LINITRD="${LINITRD#/boot}"
        fi

        if [ -z "${prepare_boot_cache}" ]; then
          prepare_boot_cache="$(prepare_grub_to_access_device ${LBOOT} | sed -e "s/^/\t/")"
          [ "${prepare_boot_cache}" ] || continue
        fi

        found_other_os=1
        onstr="$(gettext_printf "(on %s)" "${DEVICE}")"
        if [ -z "$boot_device_id" ]; then
            boot_device_id="$(grub_get_device_id "${DEVICE}")"
        fi
        LPARAMS="root=$boot_device_id ${LPARAMS}"

To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers