Comment 8 for bug 222421

Revision history for this message
Steve Langasek (vorlon) wrote : Re: [Bug 222421] Re: initrd not configured in menu.lst after upgrade from Ubuntu 7.10 to 8.04

On Thu, Jun 26, 2008 at 09:44:07PM -0000, Paul Taylor wrote:
> This dialogue seems to be split between two pages - it is not possible
> to merge them?

Not without explicitly copying from one to the other. Sorry, there's no
perfect way to merge bug reports. (The 'perfect' way is to make sure
duplicate bug reports are never filed. :)

> I would point out that in my case the initrd.img WAS created - that was
> how I eventually got 8.04 to work on my machine. But (1) it was called
> /boot/initrd.img-2.6.24-16-generic.bak and (2) it was not mentioned in
> menu.lst.

Right; the fact that you only had a .bak image available indicates that
something went wrong in the upgrade of the kernel package or a related
package, and therefore the initrd was not available under the correct name.
Under those circumstances, update-grub could not possibly do anything other
than what it did; although not the normal use case with Ubuntu-provided
kernel packages, it is valid to have a kernel which is set up to boot
without the use of an initrd, and update-grub must not fail to set up the
boot entry in that case.

There's also no available information channel we could use for the kernel
to pass information to update-grub about whether an initrd is required.
That would require substantial redesign of the interface, and it really is
much simpler to ensure that a failure to create the initramfs file is
treated as a failure at the kernel level and stops the process there, rather
than asking grub to detect this scenario after the fact.

> The absolute priority here is that the user should at least be informed of
> what has happened before the installation CD quits, and provided at least
> with some advice as to how to get out of the mess and back to the old
> system. In particular, the installer should NOT TRASH THE OLD SYSTEM.

I agree that the failure to properly set up the kernel is an error that
needs to be communicated to the user - and by all rights, this already
*should* happen. As you're the only user who has reported this error as
part of an install, we're largely dependent on your help to figure out how
to reproduce this bug and figure out why this error is not being
communicated correctly.

As for not trashing the old system, installing an operating system carries
inherent risk of rendering a system unbootable; there is no way to prove
with 100% certainty that this won't happen to some set of users. We try to
make the installer as robust and bug-free as possible, but at the same time
the Wubi installer has been introduced in Ubuntu 8.04 precisely to provide
an alternative install method that doesn't have this risk.

The particular problem you've described is one that certainly should be
preventable - and prevented! - but again, we need to understand why the
initrd.img was missing in order to do that.

From the log file you provided, I notice the following:

 Apr 27 19:12:12 ubuntu ubiquity: update-initramfs: Generating /boot/initrd.img-2.6.24-16-generic
 Apr 27 19:14:00 ubuntu ubiquity: cpio: write error: Broken pipe
 Apr 27 19:14:00 ubuntu ubiquity: Segmentation fault
 Apr 27 19:14:00 ubuntu kernel: [ 7286.703810] gzip[6126]: segfault at 080a6002 eip 0804ed9c esp bfca18a0 error 4
 Apr 27 19:14:00 ubuntu ubiquity: update-initramfs: failed for /boot/initrd.img-2.6.24-16-generic

The segfault itself looks like a kernel problem, or an out-of-memory
condition. We would need to investigate further to understand why this
happened.

More directly, we see that ubiquity noticed the update-initramfs failure
(because it reported it), but did not stop the install at that time. So
this should be treated as an ubiquity bug; adding that task here.

--
Steve Langasek Give me a lever long enough and a Free OS
Debian Developer to set it on, and I can move the world.
Ubuntu Developer http://www.debian.org/
<email address hidden> <email address hidden>