ubiquity unsets ubiquity/install_bootloader=false at some point during installation

Bug #348660 reported by Oliver Grawert
6
Affects Status Importance Assigned to Milestone
flash-kernel (Ubuntu)
Fix Released
Undecided
Unassigned
Jaunty
Fix Released
Undecided
Unassigned
ubiquity (Ubuntu)
Fix Released
High
Colin Watson
Jaunty
Fix Released
High
Colin Watson

Bug Description

Binary package hint: ubiquity

on arm where we currently (at the point of jaunty beta) have no bootloader, the ubiquity/install_bootloader=false preseeding option is handed over on the cmdline.

booting into the live session, opening a terminal and issuing the following command:

echo get ubiquity/install_bootloader | sudo debconf-communicate
properly returns false

at the end of the install ubiquity closes with a crash message, checking /var/log/installer/debug shows that it quits with the "No bootloader installer found" message.

checking as above in a terminal with
echo get ubiquity/install_bootloader | sudo debconf-communicate
now suddenly returns true

no other commands or applications apart from ubiquity were run from booting up to the error, the full cmdline used on this hardware is:
"console=ttymxc0,115200 console=tty file=/cdrom/preseed/ubuntu.seed ubiquity/install_bootloader=false boot=casper LIVEMEDIA=/dev/mmcblk0p1 --"

obviously either ubiquity itself or a command it executes in the backend reverts the setting of the preseed value.

Tags: arm
Revision history for this message
Oliver Grawert (ogra) wrote :

i found that piece of code, that indicates that unsetting install_bootloader alone might not be enough:

        install_bootloader = self.db.get('ubiquity/install_bootloader')
        if not (automatic_mode and install_bootloader):
            if self.frontend.get_grub() is not None:
                self.preseed_bool('ubiquity/install_bootloader', self.frontend.get_grub())
            else:
                self.preseed_bool('ubiquity/install_bootloader', True)

Oliver Grawert (ogra)
Changed in ubiquity:
importance: Undecided → High
milestone: none → ubuntu-9.04
Revision history for this message
Emmet Hikory (persia) wrote :

I can reproduce the behaviour, but I believe that the code snippet presented is not the issue: that matches the semantics of automatic_mode. Essentially, in automatic_mode, the preseeding can override the interface. When not in automatic_mode, preseeding only sets default values in the interface, and the interface expects those to change.

To me, the problem consists of the lack of support for a bootloading in ubiquity. The try clause starting around ubiquity/scripts/install.py:1617 should have appropriate clauses for armel to install (or not) appropriate bootloaders (unless in automatic mode, and preseeded to not do so).

Changed in ubiquity:
status: New → Confirmed
Revision history for this message
Emmet Hikory (persia) wrote :

Looking at this in a bit more depth, I think flash-kernel-installer needs rework to not expect to do everything in the postinst, and a ubiquity component written to drive flash-kernel-installer, and flash-kernel added to ubiquity as bootloader-depends in debian/rules. Additionally, flash-kernel-installer probably needs to be reviewed to ensure it sets appropriate sucess/failure in a way that ubiquity can report effectively, and that this doesn't break use in a pure d-i environment.

In the short term, as long as users aren't expecting a bootloader to be installed, the quick hack described lp:~persia/ubiquity/no-bootloader-installer-for-armel should avoid the ubiquity error until the rest can be resolved. A better quick hack would present a non-fatal warning to the user (which requires templates definition, etc.).

Revision history for this message
Oliver Grawert (ogra) wrote :

i can confirm that manually editing the install.py script and adding the two lines fixes the issue and gets me to the reboot prompt in ubiquity

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

I believe I've fixed the preseeding. Can you open a new bug for the proper fixes involving flash-kernel?

Changed in ubiquity (Ubuntu):
assignee: nobody → cjwatson
status: Confirmed → Fix Committed
Revision history for this message
Tormod Volden (tormodvolden) wrote :

I reported the same (I think) issue in bug 344291 which got duped to bug 260001.

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

Tormod, your bug is not the same as this one.

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

Or, well, it's sort of related in that you tried to disable it and it didn't work, and that part will be fixed by my fix for this bug; but the real underlying bug is that it crashed in the first place ...

Revision history for this message
Launchpad Janitor (janitor) wrote :
Download full text (3.6 KiB)

This bug was fixed in the package ubiquity - 1.12.0

---------------
ubiquity (1.12.0) jaunty; urgency=low

  [ Colin Watson ]
  * Update for new message context system in GTK+ 2.15.1, and update
    imported translations from gtk+2.0 2.16.0-1ubuntu2.
  * Stop setting message attribute in InstallStepError; it isn't used and it
    generates a deprecation warning with Python 2.6. Similarly, rename
    PartedServerError's message attribute to parted_error.
  * Always set auto-login for OEM installations.
  * KDE frontend:
    - Hide auto-login and require-password radio buttons for OEM
      installations.
  * Remove reimplementation of gdm and kdm auto-login support for OEM
    installations, since user-setup handles this now and the duplication
    causes oem-config to be unable to undo autologin (LP: #347900).
  * Fix ubiquity/install_bootloader handling (LP: #348660):
    - Check the seen flag rather its value when deciding whether to override
      it with the UI's value.
    - Outside automatic mode, default the UI's "Install boot loader"
      question to the value of ubiquity/install_bootloader.
  * Offer "Yes" and "No" choices for user-setup/password-weak (LP: #349173).
  * Depend on grub | grub-pc, and don't remove grub-pc until after
    grub-installer has had the chance to decide whether it wants to use it
    (LP: #349835).
  * Add a compatibility wrapper for update-dev to ensure that it never
    attempts to call 'udevadm trigger', which isn't necessary in ubiquity
    and can cause problems (LP: #349937).
  * Permit dmraid-style /dev/mapper/* device names in advanced boot loader
    selector, as well as disk and partition numbers over 9 (LP: #342354).
  * Remove /target/var/lib/apt-xapian-index per Michael Vogt, since it needs
    to be rebuilt based on the installed system's sources.list, and apt's
    cron.daily script and/or synaptic will do this.
  * Preserve ordering of automatic partitioning choices when replacing them
    with our customised strings (LP: #351547).
  * Update translations from Launchpad.
  * Automatic update of included source packages: apt-setup 1:0.37ubuntu11,
    base-installer 1.98ubuntu4, console-setup 1.28ubuntu7, grub-installer
    1.36ubuntu5, hw-detect 1.71ubuntu6, partman-base 129ubuntu4,
    partman-target 58ubuntu6.

  [ Evan Dandrea ]
  * Make the partman/unmount_active dialog a yes or no question
    (LP: #346589).
  * Sort the list of regions on the timezone page (LP: #344334).
  * Merge Roman's city placement code into the GTK frontend.
  * Work in bytes rather than percentages in the partition bar code
    (LP: #336203).
  * Fix partition bar slider (for resizing) code by adding correct
    calculations for bounds checking and slider positioning.
  * Properly encode data from os-prober (LP: #345573).
  * Make sure that the before and after partitioning bars use the same
    colors for the same partitions (LP: #289324).
  * Fix the placement of the partition bars in scrolled windows when
    necessary.
  * Don't let the partition bars eat up any extra space.
  * Move selecting a disk from radio buttons to a drop down box on the
    automatic partitioning page. This saves a lot of space when...

Read more...

Changed in ubiquity:
status: Fix Committed → Fix Released
Revision history for this message
Oliver Grawert (ogra) wrote :

fixed with new flash-kernel-installer.postinst code

Changed in flash-kernel (Ubuntu Jaunty):
status: New → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

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