[Yaird-devel] Bug#412799: linux-image-2.6.18-4-686 does not boot

Steve Langasek vorlon at debian.org
Thu Mar 22 10:35:27 CET 2007


severity 412799 important
thanks

On Thu, Mar 22, 2007 at 06:43:35AM +0100, Svante Signell wrote:
> On Wed, 2007-03-21 at 20:30 -0700, Steve Langasek wrote:
> > On Wed, Mar 21, 2007 at 12:26:40PM +0100, Svante Signell wrote:
> ...
> > Second, if you can email me the broken initramfs image, I can put it up on a
> > webserver for others to examine, in addition to poking at it myself. 
> > (Emailing to the BTS seems like a bad idea, given that it's a 1MB+ file.)
> Attached is the broken initrd image. The screen output will be mailed
> later.

Thanks, I've had a look and the cause of the failure is clear as soon as I
unpack the initrd:

$ ls -l lib/
total 548
drwxr-xr-x 3 vorlon vorlon   4096 2007-03-22 02:07 i686
-r-xr-xr-x 1 vorlon vorlon 117460 2007-03-22 02:07 ld-2.5.so
lrwxrwxrwx 1 vorlon vorlon     11 2007-03-22 02:07 ld-linux.so.2 -> ld-2.5.soso
lrwxrwxrwx 1 vorlon vorlon     15 2007-03-22 02:07 libblkid.so.1 -> libblkid.so.1.0
-r--r--r-- 1 vorlon vorlon  32248 2007-03-22 02:07 libblkid.so.1.0
-r--r--r-- 1 vorlon vorlon  66292 2007-03-22 02:07 libdevmapper.so.1.02
-r--r--r-- 1 vorlon vorlon  79368 2007-03-22 02:07 libselinux.so.1
-r--r--r-- 1 vorlon vorlon 219824 2007-03-22 02:07 libsepol.so.1
lrwxrwxrwx 1 vorlon vorlon     15 2007-03-22 02:07 libuuid.so.1 -> libuuid.so.1.20
-r--r--r-- 1 vorlon vorlon   9128 2007-03-22 02:07 libuuid.so.1.2
drwxr-xr-x 3 vorlon vorlon   4096 2007-03-22 02:07 modules

lib/ld-linux.so.2 is a broken symlink pointing to ld-2.5.soso. 
libuuid.so.1 is also a broken symlink, which would cause a failure later in
the boot process if ld-linux.so.2 wasn't broken; as is
./lib/i686/cmov/libdl.so.2, a symlink pointing to "libdl-2.5.somov".

So, now it just bears determining why these symlinks are broken.  That's
more than a little unusual, frankly; somehow the target of each of these
links seems to have gotten corrupted with extra characters after the end of
the name, which to me suggests that the name is being written to a reused
buffer and the string is not being null-terminated.  Now how is that
happening, when yaird is written in perl?

Could you try running:
  /usr/sbin/yaird -d -o /tmp/yaird-output -f directory 2.6.18-4-686
and post the output?  This should include debugging info about how yaird is
trying to resolve the symlinks.  It should also create a directory for you,
/tmp/yaird-output, containing the contents that it think *should* have been
written to the initramfs.  Can you verify whether, within this directory,
the symlinks for these libraries are broken the same way that they were in
your initramfs image?

Finally, it appears that you're using glibc 2.5 from experimental.  Can you
please downgrade to the unstable version of libc6, to check whether yaird
works correctly when run on such a system?

FWIW, especially given the last point, I think there's enough reason to
think that yaird is not unusable in etch (it may not have a bug here at
all), so I'm downgrading this report.  Please keep me cc:ed on any replies
though, and I'll do what I can to continue helping with the analysis of this
error.

For now I'll also hang on to the initramfs image you sent, but I'm not going
to bother posting it anywhere unless it's needed for some other reason.

Thanks,
-- 
Steve Langasek                   Give me a lever long enough and a Free OS
Debian Developer                   to set it on, and I can move the world.
vorlon at debian.org                                   http://www.debian.org/




More information about the Yaird-devel mailing list