Hi,

It appears that the failure to created /dev/hd* devices is a simple timing issue. If I change 'sleep 2' to 'sleep 20' right after udevsynthesize call on line 77 in init, then the devices are created fine and root disk is mounted. However, it still fails to complete the boot with the following symptoms:

[...]
Begin: Running /scripts/init-bottom ...
Done.
Kernel panic - not syncing: Attempted to kill init!
 <0>Press Stop-A (L1-A) to return to the boot prom
run-init: current directory on the same filesystem as the root: error 0

The last message before the panic is emitted by the following test in klibc's run-init.c:

  /* Make sure the current directory is not on the same filesystem
     as the root directory */
  if ( stat("/", &rst) || stat(".", &cst) )
    die("stat");

  if ( rst.st_dev == cst.st_dev )
    die("current directory on the same filesystem as the root");

I've checked the values returned by stat and, surprisingly, they both were zero. On the other hand, by invoking a shell right before run-init invocation, I was able to confirm that the root disk is indeed mounted as /root, and everything should be set. The only explanation I currently have is that stat() is broken in klibc for sparc. This is indirectly confirmed by the fact that if I remove this check, then next check (verifying the existence of /sbin/init on the root disk using stat()) fails too.

Best regards,

Jurij Smakov                                        [EMAIL PROTECTED]
Key: http://www.wooyd.org/pgpkey/                   KeyID: C99E03CC


--
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

Reply via email to