Note: This is a beta release of Red Hat Bugzilla 5.0. The data contained within is a snapshot of the live data so any changes you make will not be reflected in the production Bugzilla. Also email is disabled so feel free to test any aspect of the site that you want. File any problems you find or give feedback here.
Bug 81469 - init=/bin/bash and init=/bin/ash don't work
Summary: init=/bin/bash and init=/bin/ash don't work
Alias: None
Product: Red Hat Public Beta
Classification: Retired
Component: kernel
Version: phoebe
Hardware: All
OS: Linux
Target Milestone: ---
Assignee: Arjan van de Ven
QA Contact: Brian Brock
Depends On:
Blocks: 79578
TreeView+ depends on / blocked
Reported: 2003-01-09 19:39 UTC by Miloslav Trmac
Modified: 2007-04-18 16:49 UTC (History)
3 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Last Closed: 2003-03-26 00:03:10 UTC

Attachments (Terms of Use)

Description Miloslav Trmac 2003-01-09 19:39:40 UTC
I have no idea where the bug is, but the kernel folks will at least have
an idea how to debug it.

I'm booting my Phoebe install using a boot disk without problems.

When starting it with
        linux root=/dev/hda2 init=/bin/bash
        linux root=/dev/hda2 init=/bin/ash
I get 
  Kernel panic: attempted to kill init!

OTOH, running
        linux root=/dev/hda2 init=/sbin/init
works just fine.

Bot init and *sh are dynamically linked (altough bash uses
a few more libraries).

Comment 1 Bill Nottingham 2003-01-10 05:12:05 UTC
Yeah, I've seen this with up to 2.4.20-2.9 (have *not* tested 2.10 yet.)

Comment 2 Bill Nottingham 2003-01-14 22:53:00 UTC
Still happens with 2.4.20-2.18, FWIW.

Comment 3 Bill Nottingham 2003-01-14 23:05:54 UTC
2.4.18-19.8.0 works ok on top of Phoebe.

Comment 4 Bill Nottingham 2003-01-29 17:03:24 UTC
init=/usr/bin/gdb fails
init=/bin/ash.static fails

They seem to be exiting prematurely.

Of note when running init=specially-hacked-strace-that-just-runs-bash:

open of /dev/tty fails with ENXIO
ioctl()s on stdin fail with ENOTTY

Later, *read* of fd 0 fails with EISDIR (?????)

Comment 5 Bill Nottingham 2003-02-12 20:28:02 UTC
Followup to last comments:

If you look at init:

[root@nostromo 1]# ls -l fd/
total 0
lrwx------    1 root     root           64 Feb 12 15:22 10 -> /dev/initctl
lr-x------    1 root     root           64 Feb 12 15:22 3 -> /
lr-x------    1 root     root           64 Feb 12 15:22 4 -> /

3 & 4 are the initrd root.

7.2, 7.3, and 8.0 kernels don't have these fds.

These fds certainly sound related to the ENOTTY, EISDIR errors above.

Comment 6 Florian La Roche 2003-02-13 00:13:44 UTC
The following patch fixes this for me and looks like the right patch.


Florian La Roche

--- linux-2.4.20/init/    Wed Feb 12 22:54:02 2003
+++ linux-2.4.20/init/do_mounts.c       Wed Feb 12 22:55:57 2003
@@ -837,6 +837,9 @@
        sys_umount("/old/dev", 0);

+       close (root_fd);
+       close (old_fd);
        if (real_root_dev == ram0) {

Comment 7 Brian Brock 2003-03-26 00:03:10 UTC
Fix verified in most recent kernel.  Resolving as fixed in rawhide.

Note You need to log in before you can comment on or make changes to this bug.