On Thu, Apr 07, 2011 at 05:33:39PM +0100, Richard W.M. Jones wrote:
> execl: /init: No such file or directory
[...]
I've seen this error before somewhere, but for the life of me I
can't
exactly remember what caused it.
I've seen this error on Debian today. However it was caused by a bug
introduced in the Debian libc6 package yesterday so it was unlikely to
be the cause of your problem. Nevertheless the reason is instructive
so read on.
Yesterday a broken libc6 package was uploaded which omitted the /lib64
directory[1]. All Debian binaries on x86-64 use
/lib64/ld-linux-x86-64.so.2 as the ELF interpreter, so of course this
broke absolutely everything.
It broke febootstrap because when it tries to run /init, it has to run
/bin/sh which in turn has to load the ELF interpreter and all shared
libraries that /bin/sh needs. If the ELF interpreter or any shared
library is missing, then execl returns errno == ENOENT and you would
see the precise error above.
This means that if the error above is seen, we need to look carefully
to check that /bin/sh exists (or is a symlink to something that
exists), _and_ that all dependent stuff it needs exists.
I have added[2] a bunch of debugging into febootstrap so that it
should be simpler in future to diagnose this sort of error.
Rich.
[1]
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=626447
[2]
http://git.annexia.org/?p=febootstrap.git;a=commitdiff;h=6ab9465001dfaa52...
--
Richard Jones, Virtualization Group, Red Hat
http://people.redhat.com/~rjones
Read my programming blog:
http://rwmj.wordpress.com
Fedora now supports 80 OCaml packages (the OPEN alternative to F#)
http://cocan.org/getting_started_with_ocaml_on_red_hat_and_fedora