tech-kern archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: /rescue/init for alternative (Re: CVS commit:src/share/man/man8)
mouse%Rodents-Montreal.ORG@localhost wrote:
> >>> "init: not found".
> >> Should we add "/rescue/init" to initpaths[] in src/sys/kern/init_main.c?
>
> I still think the right thing to do is prompt for a path if the exec
> fails, rather than having a handful of built-in paths and being SOL if
> none of them work.
I agree "no init" panic is really annoying.
(it's not easy to set RB_ASKNAME on some ports)
How about this change (taken from kern_subr.c:setroot())?
---
Index: init_main.c
===================================================================
RCS file: /cvsroot/src/sys/kern/init_main.c,v
retrieving revision 1.364
diff -u -r1.364 init_main.c
--- init_main.c 9 Oct 2008 10:48:21 -0000 1.364
+++ init_main.c 20 Oct 2008 15:33:23 -0000
@@ -811,13 +811,25 @@
path = initpaths[ipx++];
else
continue;
+ } else if (len == 4 && strcmp(ipath, "halt") == 0) {
+ cpu_reboot(RB_HALT, NULL);
+ } else if (len == 6 && strcmp(ipath, "reboot") == 0) {
+ cpu_reboot(0, NULL);
+#if defined(DDB)
+ } else if (len == 3 && strcmp(ipath, "ddb") == 0) {
+ console_debugger();
+ continue;
+#endif
} else {
ipath[len] = '\0';
path = ipath;
}
} else {
- if ((path = initpaths[ipx++]) == NULL)
- break;
+ if ((path = initpaths[ipx++]) == NULL) {
+ ipx = 0;
+ boothowto |= RB_ASKNAME;
+ continue;
+ }
}
ucp = (char *)USRSTACK;
---
Home |
Main Index |
Thread Index |
Old Index