1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN"
"http://www.w3.org/TR/REC-html40/strict.dtd">
<HTML>
<HEAD>
<TITLE>GNU Hurd - Free Software Foundation (FSF)</TITLE>
<LINK REV="made" HREF="mailto:web-hurd@gnu.org">
</HEAD>
<BODY BGCOLOR="#000000" LINK="#8888EE" VLINK="#9F00DD" ALINK="#000088">
<IMAGE SRC="/graphics/hurd_sm_mf_invert.jpg">
<TABLE width="100%" border="0" cellspacing="0" cellpadding="20">
<TR>
<TD ALIGN="LEFT" VALIGN="TOP">
<A HREF="../hurd.html#contents"><STRONG>The GNU Hurd</STRONG></A><BR>
<A HREF="../learning-more-about-hurd.html#contents">About the Hurd</A><BR>
<A HREF="../learning-more-about-microkernels.html#contents">About Microkernels</A><BR>
<P>
<A HREF="../software.html#contents"><STRONG>Software</STRONG></A><BR>
<A HREF="../trying-out-hurd.html#contents">Trying out the Hurd</A><BR>
<A HREF="../getting-help.html#contents">Getting Help</A><BR>
<p>
<a href="/software/hurd/whatis/">Whatis?</a><br>
<a href="/software/hurd/howto/">Howto?</a><br>
</p>
<P>
<!---A HREF="mirrors.html#contents">Mirrors</A><BR--->
<A HREF="../acknowledgements.html#contents">Acknowledgements</A><BR>
<!---A HREF="copyright.html#contents">Copyright Notice</A--->
</TD>
<TD ALIGN="LEFT" VALIGN="TOP" TEXT="#000000" BGCOLOR="#FFFFFF">
<h1>Running a Subhurd</h1>
<p class="author">By Roland McGrath</p>
<p>The most useful thing you can do when trying to troubleshoot the boot
sequence of the Hurd is try to run your the system in a
sub-hurd, while watching it using ps and gdb from the working hurd. Since
the sub-hurd is never going to make it all the way up, you don't even
really need to make a separate filesystem for it; you can just boot the
sub-hurd read-only on your main root filesystem if you like.</p>
<p>The way to boot the sub-hurd is with `boot'. I would suggest something
like this: boot -d -I -Tdevice /boot/servers.boot hd0s6</p>
<p>The -d says to pause before the start-up of each server and wait for you to
hit return, which gives you time to go attach gdb to the task before it
starts running. The -I says to leave the terminal signals normal, so
hitting C-z will suspend boot rather than sending a C-z to the virtual
console device of the sub-hurd. (Note that suspending boot does not
suspend the sub-hurd, just boot itself; boot acts as the server for device
access from the sub-hurd, so the sub-hurd's attempts to write to its
console or open devices block while boot is suspended.)</p>
<p>When you do `ps -A' on the main hurd, the sub-hurd tasks will appear as
unknown processes. You can figure out which is which just by looking at
the order of unknown processes that appear with higher PIDs than the boot
process. They appear in the order you see in the "bootstrap: ..."
messages, i.e. the first unknown after boot will be ext2fs.static, the
second exec, then init, then proc.</p>
<HR>
Return to <A HREF="/home.html" TARGET="_parent">GNU's home page</A>.
<P>
Please send FSF & GNU inquiries & questions to
<A HREF="mailto:gnu@gnu.org"><EM>gnu@gnu.org</EM></A>.
There are also <A HREF="/home.html#ContactInfo" TARGET="_parent">other ways to
contact</A> the FSF.
<P>
Please send comments on these web pages to
<A HREF="mailto:web-hurd@gnu.org"><EM>web-hurd@gnu.org</EM></A>,
send other questions to
<A HREF="mailto:gnu@gnu.org"><EM>gnu@gnu.org</EM></A>.
<P>
Copyright (C) 1998, 1999 Free Software Foundation, Inc.,
59 Temple Place - Suite 330, Boston, MA 02111, USA
<P>
Verbatim copying and distribution of this entire article is
permitted in any medium, provided this notice is preserved.<P>
Updated:
<!-- hhmts start -->
$Date$ $Author$
<!-- hhmts end -->
<HR>
</TD>
</TR>
</TABLE>
</BODY>
</HTML>
|