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 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<HTML>
<HEAD>
<META NAME="GENERATOR" CONTENT="SGML-Tools 1.0.7">
<TITLE>Yard Documentation: Troubleshooting</TITLE>
<LINK HREF="Yard_doc-7.html" REL=next>
<LINK HREF="Yard_doc-5.html" REL=previous>
<LINK HREF="Yard_doc.html#toc6" REL=contents>
</HEAD>
<BODY>
<A HREF="Yard_doc-7.html">Next</A>
<A HREF="Yard_doc-5.html">Previous</A>
<A HREF="Yard_doc.html#toc6">Contents</A>
<HR>
<H2><A NAME="s6">6. Troubleshooting</A></H2>
<P>
<P>If you followed the instructions and your disk won't boot, the first
step is to determine where the boot is failing. In general, the
further along it gets the easier it is to diagnose (though not
necessarily to fix!). These steps are arranged more-or-less
chronologically.
<P>
<H2><A NAME="ss6.1">6.1 Configuration problems</A>
</H2>
<P>
<P>These should be explained in the doc subdirectory. I try to catch as
many problems as I can in the <CODE>configure</CODE> script, but Yard relies
on many external programs, which change occasionally and introduce bugs.
<P>
<H2><A NAME="ss6.2">6.2 Problems building the root filesystem</A>
</H2>
<P>
<P>
<UL>
<LI> If you're using /dev/ram0 as <CODE>$device</CODE> and Yard
produces the error:
<BLOCKQUOTE><CODE>
<PRE>
Error: You've declared file system size ($fs_size) to be 4096 K
but Linux says /dev/ram0 may only hold 0 K
</PRE>
</CODE></BLOCKQUOTE>
Check your /etc/lilo.conf file for a line like:
<BLOCKQUOTE><CODE>
<PRE>
ramsize = 0
</PRE>
</CODE></BLOCKQUOTE>
and increase it to something more reasonable, like 4096.
Remember to run lilo and reboot.
</LI>
<LI>If you're using a loopback device, occasionally the ext2
filesystem seems to get corrupted for no apparent reason. If you
start getting errors in the middle of <CODE>make_root_fs</CODE> from the sys()
complaining that a directory doesn't exist, this may be what is
happening. I don't know why this happens and I can't reproduce it
consistently. If it happens, try unmounting, deleting and re-creating
the file. This seems to get rid of the problem.
</LI>
</UL>
<P>
<H2><A NAME="ss6.3">6.3 Problems in kernel loading</A>
</H2>
<P>
<P>In the normal boot process you will see a message sequence like:
<P>
<BLOCKQUOTE><CODE>
<PRE>
LILO loading floppylinux...
Uncompressing...done
Now booting the kernel
</PRE>
</CODE></BLOCKQUOTE>
<P>If the sequence halts or displays an error somewhere in this sequence,
the problem is with LILO.
<BLOCKQUOTE>Not necessarily <EM>in</EM> LILO, but
with LILO.</BLOCKQUOTE>
With some exotic floppy disk geometries (usually
involving disk capacities greater than 1440K) LILO's map compaction
won't work, causing the LILO boot sequence to halt. If LILO halts and
you're using a non-1440K floppy, this is likely the problem.
<P>The fix is to remove the <CODE>COMPACT</CODE> line from your bootdisk's
lilo.conf, and run Yard again. This will simply turn off
LILO's map compaction which should fix the problem (although kernel loading
will slow down somewhat).
<P>If that doesn't work, switch to a 1440K floppy and try again. If you
really want to puzzle it out, go read the section ``Disk Geometry'' in
LILO's README file -- and good luck.
<P>If 1440K doesn't work, something is very broken. Make sure LILO has
been installed correctly. If you don't normally use LILO to boot,
re-install a recent version. As a last resort, remake your kernel
with ``make mrproper''.
<P>If you're using a <EM>double</EM>-disk rescue set, both floppies <EM>must</EM> be
formatted identically. The boot loader becomes confused otherwise.
<P>
<H2><A NAME="ss6.4">6.4 Problems finding the compressed root filesystem</A>
</H2>
<P>
<P>If the loader tells you it can't find a compressed root image, make
sure you gave Yard the correct floppy device (eg,
/dev/fd0H1722 for 1722K). If you've constructed a
<EM>single</EM>-disk rescue set and it prompts you to insert a root floppy
disk, that's probably a Yard problem (the rdev in
write_rescue_disk has failed for some reason and the
failure wasn't caught by Yard). Go back and look over
write_rescue_disk.log to make sure nothing failed.
<P>
<H2><A NAME="ss6.5">6.5 Problems with init or login</A>
</H2>
<P>
<P>
<OL>
<LI>If the system repeatedly accepts a login name then offers the login
prompt again, this is a sign that the NSS is not configured. On systems
using the GNU Name Service Switch (NSS), you must include explicitly in
Bootdisk_Contents a selected set of /lib/libnss_* shared
libraries, as well as an /etc/nsswitch.conf file.
</LI>
<LI>If you get a message like:
<BLOCKQUOTE>
Id xxx respawning too fast: disabled for n minutes
</BLOCKQUOTE>
This comes from init, usually indicating that your *getty*
<BLOCKQUOTE>The
notation *getty* will be used to mean some getty-like program, eg getty,
agetty, mgetty or getty_ps.</BLOCKQUOTE>
or login is dying as soon as
it starts up. Check the *getty* and login executables, and the libraries
they depend upon. Make sure the invocations in /etc/inittab are correct.
</LI>
<LI>If halting occurs <EM>after</EM> the root filesystem is loaded, the
problem is in Yard or in you. The first step is to check
<CODE>write_rescue_disk.log</CODE> to make sure nothing failed.
If you ignored warnings from <CODE>make_root_fs</CODE> or
<CODE>check_root_fs</CODE>, look at them again. You should
probably look over all three log files to make sure things are as they
should be. <CODE>make_root_fs.log</CODE> has a listing of where
each file was taken from -- make sure all your system files are coming
from the right places on your hard disk.
</LI>
<LI>If you get strange messages from *getty*, it may mean the calling form
in /etc/inittab is wrong. <CODE>check_root_fs</CODE>
does not perform much inittab call checking because the options are so
variable among the different *getty* programs
<BLOCKQUOTE>Different
versions of agetty are reported to have different incompatible calling
forms.</BLOCKQUOTE>
. If you're using a different call and/or program
from what you use in your hard disk /etc/inittab, double
check it.
</LI>
<LI>When you login, you may get errors about commands that aren't present.
This usually happens when an rc file uses a builtin command that does not
exist in the rescue disk's shell, but did exist in the shell used to run
Yard.
</LI>
</OL>
<P>
<P>
<H2><A NAME="ss6.6">6.6 And if none of that works...</A>
</H2>
<P>Check the Yard webpage:
http://www.croftj.net/~fawcett/yard/
<P>On that page I'll put notes people have sent me about problems they've run
into, before I've had a chance to fix and re-release Yard.
<P>
<P>
<H2><A NAME="ss6.7">6.7 Suggestions</A>
</H2>
<P>
<P>If you find a problem that that Yard didn't catch, but which it could
have caught, please let me know and I'll try to add a check to
<CODE>check_root_fs</CODE>.
<P>
<P>
<P>If you think it's a Yard problem you can try diagnosing it yourself.
In fact, you may have better luck since you're more familiar with your
setup. Otherwise, package up the three .log files along with your
Bootdisk_Contents, Config.pl and Bootdisk_Contents.ls
and send them to me with a reasonable description of what went wrong.
This command should work:
<P>
<BLOCKQUOTE><CODE>
<PRE>
tar cvzf yard_bug.tgz *.log *.ls \
/etc/yard/Bootdisk_Contents /etc/yard/Config.pl
</PRE>
</CODE></BLOCKQUOTE>
<P>Be sure to let me know which Yard version you're using. You might check the
<A HREF="http://www.croftj.net/~fawcett/yard/">yard webpage</A> to make sure there isn't already a newer version of Yard
that fixes your problem, or a note added there.
<P>
<P>
<P>
<HR>
<A HREF="Yard_doc-7.html">Next</A>
<A HREF="Yard_doc-5.html">Previous</A>
<A HREF="Yard_doc.html#toc6">Contents</A>
</BODY>
</HTML>
|