GRUB files not created (Dapper Flight 4 LiveCD)

Bug #32047 reported by John C Barstow
24
Affects Status Importance Assigned to Milestone
espresso (Ubuntu)
Fix Released
Medium
Colin Watson

Bug Description

Ran from Dapper Flight 4
During install, selected ERASE entire drive (auto-partitioning). Rebooted upon completion.

Output:
----
GRUB Loading stage 1.5.

GRUB loading, please wait...
Error 15
----
Error 15 is "file not found" according to doco.
Rebooted into LiveCD and mounted hard drive.
Checked for /boot/grub, directory does not exist. Also checked /boot and /etc for grub related files, nothing found.

Revision history for this message
olive (olivier.fraysse) wrote :

In addition, grub is missing on the installed system.
a chroot + grub-install is difficult without that.

Revision history for this message
Ian B (ectogon) wrote :

Duplicated

Revision history for this message
Leif (leif) wrote :

I did an "erase entire disk" espresso install on a machine that previously had mswindows installed, and after rebooting I get "Error loading operating system" which I believe is actually coming from the old windows MBR. I also did a "dd if=/dev/hda of=foo bs=512 count=1 && hexdump -C foo" on this system (while booted off the live cd again), and then did the same on a healthy system, and looking at this confirmed my suspicion that there is no grub here. I am currently doing another espresso install on top of a system that had breezy installed, and next I will do it over a system that has already had dapper installed from the install CD... I am trying to figure out under what preexisting configuration the espresso installer will currently produce a bootable system.

Revision history for this message
Leif (leif) wrote :

Unsurprisngly, doing an espresso "erase and install" on top of a preexisting breezy system resulted in grub error 15 after rebooting, which I am now sure is coming from breezy's old MBR which survived the erasing and installing done by the espresso flight 4 live disc.

Revision history for this message
John C Barstow (jbowtie) wrote :

The installer needs to add the following steps at the end:

1. Install the grub package (is the udeb even included on the LiveCD?)

2. Run update-grub to generate the menu.lst (I think the kernel deb post-install does this)

3. Run grub-install on the boot drive to generate the appropriate files and replace the MBR

The 15 status code is caused by having grub in the MBR (presumably from a previous Linux installation), but no /boot/grub/stage1 file to hand off to.

Changed in espresso:
status: Unconfirmed → Confirmed
Revision history for this message
John C Barstow (jbowtie) wrote :

Colin maintains this package, and it leaves systems in an unbootable state, so I'm making sure he sees it. :)

I'll look at generating a patch this weekend.

Changed in espresso:
assignee: nobody → kamion
Revision history for this message
Colin Watson (cjwatson) wrote :

Yes, I'm sorry I haven't replied to this but it was already a known issue (although I'm sorry I forgot to put it in the Flight CD 4 announcement) so I had more pressing things to do. :-)

Don't get distracted by thinking of udebs (there are none on the live CD), nor about update-grub or grub-install (all the code for this is already in espresso, and it does work - sometimes). The problem is simply that espresso sometimes fails to install the grub package on the target system, which in turn is because it tries to install it from the network and networking isn't always properly operational at that point (or indeed ever, if you're installing without a network!). If you look in /var/log/installer/espresso (or ~/.xsession-errors before rebooting, if you're using Flight CD 4; the version of espresso in that release didn't send all errors to the same place, unfortunately), you'll see the problem pretty clearly down near the end.

A relatively simple workaround for this is to include the grub package pre-installed on the live filesystem and make sure we don't remove it when (in future) we remove various packages that are installed on the live filesystem but shouldn't be on the target system. I've just made this change in the seeds, so it should take effect soon.

There is also the more general problem that espresso does not correctly report errors from espresso-grub and various other components that are run around that stage, but carries on regardless. I think I'll beat on this today.

Revision history for this message
Ricardo Pérez López (ricardo) wrote :

I can confirm this bug, too.

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

Thank you, but there is no need for further comments confirming this bug.

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

espresso (0.99.18) dapper; urgency=low

  * Rip all the /target unmounting code out of espresso.backend.copy and do
    it in the main espresso program just before exiting.
  * Parse /proc/mounts for mountpoints to unmount; this saves having to have
    a get_mountpoints method in every frontend.
  * Unmount /target before starting the frontend, since we will behave badly
    if /target is still mounted from a previous installation attempt.

  * Handle all PROGRESS commands entirely in debconffilter, without passing
    them through to the debconf frontend.
  * Add a PROGRESS REGION extension to debconffilter, and a ProgressPosition
    class to keep track of progress bar regions; allows a single progress
    bar to be subdivided into pieces for different stages.
  * Hack FilteredCommand.run_command() to execute the command without any
    debconffiltering glue if frontend is None; this allows nested
    FilteredCommands to more or less work.
  * Stop FilteredCommand.error() from running a UI loop; we assume that the
    frontend's error_dialog() method runs synchronously.

  * Move espresso/components/summary to a new scripts directory.
  * Rework copy and configuration progress bars using debconffilter. This
    fixes some responsiveness bugs, allows for localisation, and finally
    unifies all progress bar handling.
  * Add debconf template translation boilerplate.

  * Move call_gparted from espresso.backend.part into the GTK frontend, as
    it's widget-set-dependent. Unhardcode the path to gparted.
  * Remove espresso/backend/, none of which is used any more except by the
    netcloner and noui frontends which are both broken at the moment anyway.
    The frontend/backend division is now between espresso.frontend and
    espresso.components, mediated by debconffilter.

  * Make espresso-frontend-gtk Architecture: any, due to the Evolution map
    widget (closes: Malone #32874).
  * Build Evolution map widget and Python bindings with -fPIC; should fix
    build failure on amd64.
  * Only enable the TimezoneMap.flash_selected_point handler when the
    timezone map is visible.
  * Remove text that claims /home will not be formatted; partly fixes Malone
    #32534.
  * Display an error dialog on GRUB installation failures (closes: Malone
    #32047; grub has been seeded, so this shouldn't generally happen any
    more anyway).
  * Notice and exit on errors from the copy and configuration stages.
  * Run 'make distclean' rather than 'make clean' on 'debian/rules clean'.

 -- Colin Watson <email address hidden> Mon, 27 Feb 2006 14:22:15 +0000

Changed in espresso:
status: Confirmed → Fix Released
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.