update-initramfs fails due to loss of /lib/udev/firmware.sh during update

Bug #520021 reported by Peter Belew
14
This bug affects 3 people
Affects Status Importance Assigned to Milestone
initramfs-tools (Ubuntu)
New
Undecided
Unassigned

Bug Description

Binary package hint: initramfs-tools

Serious problem during apt-get dist-upgrade after apt-get update:

The file /lib/udev/firmware.sh is apparently deleted during some part of an update. This file is essential to update-initramfs. It is almost impossible to continue any updates or installs to the system after this file has been lost.

This happened on 2 systems this morning (see below about that).

Is this bug in initramfs-tools, possibly?

About 10 am PST on 2010-02-10

last few lines of screen output from 'apt-get dist-upgrade'

Setting up libmono-system-runtime2.0-cil (2.4.3+dfsg-1ubuntu2) ...
Processing triggers for libc-bin ...
ldconfig deferred processing now taking place
Processing triggers for python-support ...
Processing triggers for initramfs-tools ...
update-initramfs: Generating /boot/initrd.img-2.6.32-12-generic
cpio: ./lib/udev/firmware.sh: Cannot stat: No such file or directory
update-initramfs: failed for /boot/initrd.img-2.6.32-12-generic
dpkg: subprocess installed post-installation script returned error exit status 1
E: Sub-process /usr/bin/dpkg returned an error code (2)

And then ...

# apt-get dist-upgrade
E: dpkg was interrupted, you must manually run 'sudo dpkg --configure -a' to correct the problem.

So then I try dpkg:

# dpkg --configure -a
Setting up initramfs-tools (0.92bubuntu64) ...
update-initramfs: deferring update (trigger activated)

Processing triggers for initramfs-tools ...
update-initramfs: Generating /boot/initrd.img-2.6.32-12-generic
cpio: ./lib/udev/firmware.sh: Cannot stat: No such file or directory
update-initramfs: failed for /boot/initrd.img-2.6.32-12-generic
dpkg: subprocess installed post-installation script returned error exit status 1
root@lightning:~#

The locate command thinks that the script is still there:

# locate firmware.sh
/lib/udev/firmware.sh

But it isn't:

# ls /lib/udev | grep firmware
firmware

This has happened on two systems this morning. It made it really impossible to update the system! Fortunately, since I have two systems, it was possible to copy the script from the other system, and to continue the update.

After copying the file, I could complete the installation:

dpkg --configure -a
root@lightning:/lib/udev# !dpkg
dpkg --configure -a
Setting up initramfs-tools (0.92bubuntu64) ...
update-initramfs: deferring update (trigger activated)

Processing triggers for initramfs-tools ...
update-initramfs: Generating /boot/initrd.img-2.6.32-12-generic
root@lightning:/lib/udev#

#ls -l /boot | grep initrd

-rw-r--r-- 1 root root 7573322 2010-02-10 10:38 /boot/initrd.img-2.6.32-12-generic

ProblemType: Bug
Architecture: i386
Date: Wed Feb 10 10:51:24 2010
DistroRelease: Ubuntu 10.04
Package: initramfs-tools 0.92bubuntu64
PackageArchitecture: all
ProcEnviron:
 PATH=(custom, user)
 LANG=en_US.UTF-8
 SHELL=/bin/bash
ProcVersionSignature: Ubuntu 2.6.32-12.17-generic
SourcePackage: initramfs-tools
Uname: Linux 2.6.32-12-generic i686

Revision history for this message
Peter Belew (peterbe) wrote :
Revision history for this message
Peter Belew (peterbe) wrote :

I am also attaching a copy of the missing script /lib/udev/firmware.sh - from the previous upgrade, copied from another system.

Revision history for this message
Mikael Gerdin (mgerdin) wrote :

This is apparently a bug in update-initramfs, it should be looking for the new /lib/udev/firmware file instead of firmware.sh
so you can apply the patch: http://launchpadlibrarian.net/39011493/udev-firmware.patch
or just symlink /lib/udev/firmware.sh to /lib/udev/firmware
Or wait for an update to update-initramfs

Revision history for this message
Drutten2 (drutten2) wrote :

I hade the same problem

Tried the symlink and worked for me.

Changed in initramfs-tools (Ubuntu):
assignee: nobody → Kernel Bugs (kernel-bugs)
Revision history for this message
Peter Belew (peterbe) wrote :

Thanks, Mikael Gerdin and Drutten2 and Gerry C.! I'll put in the symlink for the time being.

Revision history for this message
Krzysztof Klinikowski (kkszysiu) wrote :

You just need to make symlink to that file. File /lib/udev/firmware exist so:
sudo ln -s /lib/udev/firmware /lib/udev/firmware.sh

Solves that.

Revision history for this message
Theo Nolte (theo-nolte) wrote :

thanks. had the same problem and symlink works fine.

Revision history for this message
Aram Yegenian (aramyegenian) wrote :

symlink solves this, thanks.

Revision history for this message
Tom Louwrier (tom-louwrier) wrote :

"me too"
symlinking did solve it.

thanx
Tom

Curtis Hovey (sinzui)
Changed in initramfs-tools (Ubuntu):
assignee: Registry Administrators (registry) → nobody
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.