File: 22.html

package info (click to toggle)
lg-issue65 2-1
  • links: PTS
  • area: main
  • in suites: sarge
  • size: 3,780 kB
  • ctags: 230
  • sloc: sh: 201; perl: 133; makefile: 34
file content (338 lines) | stat: -rw-r--r-- 14,712 bytes parent folder | download
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
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
<!--startcut ======================================================= -->
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<html>
<head>
<META NAME="generator" CONTENT="lgazmail v1.3E.t">
<TITLE>The Answer Gang 65: Take a Breath!</TITLE>
</HEAD><BODY BGCOLOR="#FFFFFF" TEXT="#000000"
	LINK="#3366FF" VLINK="#A000A0">
<!-- ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: -->
<P> <hr> 
<CENTER>
<!-- *** BEGIN navbar *** -->
<!-- *** END navbar *** -->
</CENTER>
</p>
<P> <hr> <P>
<!-- ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: -->
<center>
<H1><A NAME="answer">
	<img src="../../gx/dennis/qbubble.gif" alt="(?)" 
		border="0" align="middle">
	<font color="#B03060">The Answer Gang</font>
	<img src="../../gx/dennis/bbubble.gif" alt="(!)" 
		border="0" align="middle">
</A></H1> 
<BR>
<H4>By Jim Dennis, Ben Okopnik, Dan Wilder, Breen, Chris, and the Gang,
	the Editors of Linux Gazette... 
	and You!
<br>Send questions (or interesting answers) to
	<a href="mailto:linux-questions-only@ssc.com">linux-questions-only@ssc.com</a>
</H4>
<p><em><font color="#990000">There is no guarantee that your questions
	here will <b>ever</b> be answered.  You can be published anonymously 
	- just let us know!
</font></em></p>
</center>

<p><hr><p>
<!--  endcut ======================================================= -->
<!-- begin 22 -->
<H3 align="left"><img src="../../gx/dennis/qbubble.gif" 
	height="50" width="60" alt="(?) " border="0"
	>Take a Breath!</H3>


<p><strong>From Wolf
</strong></p> 
<p align="right"><strong>Answered By Jim Dennis, Heather Stern
<br></strong></p>

<!-- sig -->

<!-- ::
Take a Breath!
~~~~~~~~~~~~~~
:: -->
<P><STRONG>
Answer Guy,
</STRONG></P>
<P><STRONG>
I just recently read that message from Rik, having trouble with
some bad clusters under Windows. Anyway, I used to run a Win98
system, and I experienced the same problems, even if they might not
be related to Rik's (just bad hardware or mis-partitioning, I
assume). I had my HD partitioned into one primary and one extended
partition, with approximately 20 gig each (HD is a Samsung 40.8
gig). Then, I used Partition Commander to make 4 out of the primary
partition: One FAT32 (14 gig), and 3 FAT16 (2 gig each); and on the
extended partition I put a 12 gig FAT32 and 8 gig for Linux,
pre-formatted with Partition Commander. Now I know, that Linux
doesn't like anything above 1024 cyl., but I always assumed, that
it's translated in such a way, that only 1024 are reported (or am I
wrong?). Installing Linux on that last partition was a bold
failure. First, I never got it to boot from the HD, no matter if I
used Loadlin or (tried) LILO, in the MBR or on the partition. When
it booted after the CD install, fsck found a load of errors, and
they all seemed to be beyond 32 gig. So I deleted the last
partition and reformatted it as FAT32, which seemed to succeed
without errors; even with bad clusters checking on. Letting a disk
utility have it's way with it later, revealed again a bunch of bad
clusters, and again. above the 32 gig limit. Not sure, if that's an
OS or a hard error? Right now, I'm going to low-level format and
re-partition the drive, then assign Linux all the space (this
version doesn't like partitions picked from the middle of the
drive). Hopefully it boots. Or the HD craps out altogether, there's
still warranty on it... Had anyone reporting similar stuff with a
big HD like mine is? Windoze is good for all kind of surprising
crap, but I need it for development...
</STRONG></P>
<P><STRONG>
Thx,
</STRONG></P>
<P><STRONG><DL><DT>
Wolf
</DL></STRONG></P>
<BLOCKQUOTE><IMG SRC="../../gx/dennis/bbub.gif" ALT="(!)"
	HEIGHT="28" WIDTH="50" BORDER="0"
	> [JimD]
Wolf,  I promise, no one was going to interrupt you.  [This whole
messages was all in one line of text!]  Perhaps a few paragraph
breaks would have also helped.
</BLOCKQUOTE>
<BLOCKQUOTE><IMG SRC="../../gx/dennis/bbub.gif" ALT="(!)"
	HEIGHT="28" WIDTH="50" BORDER="0"
	> [Heather]
Heh. The advantage of email is that folks can use paragraphs, commas
and periods - but still get their whole say before anyone <EM>gets</EM> to
interrupt.
</BLOCKQUOTE>
<BLOCKQUOTE>
To give the short form of the answer -- it's not an OS error at all.
Bootloaders come before the OS, whether DOS or Linux.  It's a dependency
on firmware features - the BIOS on your system either does, or doesn't,
have 1024 cylinder problems.  If your BIOS doesn't have the boundary, the
bootloader still has to make <EM>different</EM> calls to ask about later areas
of the disk, because this is a newer feature, and is tacked on to the
BIOS design.
</BLOCKQUOTE>
<BLOCKQUOTE>
I can just about guarantee that the final 8 Gb on a 40 Gb drive would
be above that boundary!
</BLOCKQUOTE>
<BLOCKQUOTE>
LILO has an old keyword to beat this boundary (linear) and a new way (LBA)
but this drive is so large you may need an even more special call (LBA32).
Linear basically asks for cylinder/head/sector stuff.  The LBA flavors
tell LILO to make the new BIOS calls.
</BLOCKQUOTE>
<BLOCKQUOTE>
You mentioned the drive but not the motherboard - assuming it's modern
enough, I'd try the LBA32 keyword in <TT>/etc/lilo.conf.</TT>  (On a line alone.)
If that doesn't work I'd probably use Loadlin, throw an icon for its
correct command line on my desktop (looking like Tux of course) and forget
worrying about it.  Just remember to copy your kernel to the right place
on your FAT drive that loadlin expects, whenever you decide to update your
kernel.
</BLOCKQUOTE>
<BLOCKQUOTE>
Unfortunately, that you're seeing the drive poorly when the 8 Gb are FAT
partitioned or ext2 partitioned, implies that I may be wrong about how
modern it is.  Or, the drive has memorized something poor about how to
present itself to us.  (Yes, drives have had their own brains for a while,
that means they get to be artificially stupid sometimes too.)  So, I'd
check if your motherboard manufacturer has a BIOS revision, because it
may help some.  And during low level format I'd be really extra picky
about looking through the options, in case something leaps out as meaning
"My motherboard is so stupid I can't even see all 40 Gb.  Just give me 32
of it.  Thanks."  Or as we'd say, ack!  No thanks!
</BLOCKQUOTE>
<BLOCKQUOTE><IMG SRC="../../gx/dennis/bbub.gif" ALT="(!)"
	HEIGHT="28" WIDTH="50" BORDER="0"
	> [JimD]
I'm responding to your message to dispel the misconception that
you've repeated here.
</BLOCKQUOTE>
<BLOCKQUOTE>
Linux has no problem at all with anything past the 1024th cylinder.
The Linux kernel can handle any commodity drive.
</BLOCKQUOTE>
<BLOCKQUOTE><IMG SRC="../../gx/dennis/bbub.gif" ALT="(!)"
	HEIGHT="28" WIDTH="50" BORDER="0"
	> [Heather]
vmlinuz doesn't care, no more than Windows should care how big its C: is -
by the time you're this far, you're in protected mode, and not using the
BIOS directly anymore.  It's fdisk that gets all the headaches.
</BLOCKQUOTE>
<BLOCKQUOTE><IMG SRC="../../gx/dennis/bbub.gif" ALT="(!)"
	HEIGHT="28" WIDTH="50" BORDER="0"
	> [JimD]
However, the <EM>bootloader</EM> (LILO) has traditionally been constrained
by the level of support offered by your system BIOS (or the lack
thereof).  Once you get the Linux kernel "bootstrapped" (loaded into
memory and running) then it can easily handle just about any
arrangement of partitions.  LILO has to ask the BIOS to locate and
load the specific device and blocks in which the kernel (and any
initial RAM disk) are stored.  So the BIOS must support calls to
access these devices.  If the BIOS only supports calls to handle
the first 1024 cylinders of a device (a common constraint several
years ago) then we have to locate the kernel (and our RAM disk)
within those 1024 cylinders.  Alternatively we can use a different
bootloader (syslinux off of a floppy, or Zipdisk, etc; grub,
<TT>LOADLIN.EXE</TT>, etc).
</BLOCKQUOTE>
<BLOCKQUOTE>
Now over the years that have been several different workarounds
to this problem.  First we note that SCSI drives have normally
not been afflicted with these limitations (since they don't
emulate the old WD-1003 controller interface; they have their
own BIOS extensions which provide the necessary support through
the "INT 13" calls).  Also we note that this problem is specific
to the PC (so it's never been a problem on Macs, SPARCs or the
many other platforms that Linux supports).
</BLOCKQUOTE>
<BLOCKQUOTE>
Also most IDE drives, though they mostly emulate the ST-506
interface, mostly as implemented by Western Digital's old 1003
chipset; they will perform their own "autotranslation" internally
translating "virtual head" addresses into larger cylinder numbers.
Later these drives dropped all pretense of using cylinder/head/sector
(CHS) co-ordinates and used a technique called LBA (linear block
addressing).  That basically means that any block request it gets
(which comes in the form of a cylinder/head/sector triplet) is
translated into a single number (multiple the three numbers in the
triplet together) and that is fetch according to the drive's own
indexing and mapping.  BIOS' then started supporting LBA which
overcame the 8Gb limit.
</BLOCKQUOTE>
<BLOCKQUOTE>
Meanwhile the latest versions of LILO support the necessary BIOS
call extensions to boot from any cylinder on any IDE drive; so
long at the PC BIOS in question also supports the extension.
</BLOCKQUOTE>
<BLOCKQUOTE>
I've described alternatives to LILO <EM>MANY</EM> times in our column.
Since this is almost always an issue of installing Linux unto a
system that already has a copy of MS-DOS (or any of it's
ilk, Win '9x, OS/2, etc) then it's usually easiest to configure
you system to boot into MS-DOS and to run a program called
<TT>LOADLIN.EXE</TT> to load your Linux kernel.  Because MS-DOS	is
being booted from "the first" partition on the first or second
drive (the only supported configuration) and because it has
access to the "rest" of the drive (with it's device drivers, and
various Microsoft supplied extensions) then LOADLIN can load
any kernel that MS-DOS can "see."
</BLOCKQUOTE>
<BLOCKQUOTE>
Anyway, this issue is old and obsolete.  Please reconsider before
you repeat this misconception any further.  This is not a "Linux"
problem.  It is a PC problem which has been faced (and addressed)
by many Linux users *because Linux doesn't impose arbitrary
constraints on how you configure your filesystems*.  Linux doesn't
make you install it in the first drive or the first partition,
etc.  Unfortunately with the freedom has common the confusing
choices that have caused so many questions among Linux users.
</BLOCKQUOTE>
<BLOCKQUOTE><IMG SRC="../../gx/dennis/bbub.gif" ALT="(!)"
	HEIGHT="28" WIDTH="50" BORDER="0"
	> [Heather]
Having choices available, means actually having to make choices.  It's
a tough job sometimes but I vastly prefer it to the alternative.
</BLOCKQUOTE>
<BLOCKQUOTE>
This is the part where I rant about how if we improve the documentation
enough at least these can be <EM>informed</EM> choices.
</BLOCKQUOTE>
<BLOCKQUOTE><IMG SRC="../../gx/dennis/bbub.gif" ALT="(!)"
	HEIGHT="28" WIDTH="50" BORDER="0"
	> [JimD]
LILO and the related questions are confusing to converts from
MS-DOS	and Windows, and they are just as confusing for old hand
UNIX users coming from RISC platforms, and for converts from
the old SCO and other PC UNIX platforms.
</BLOCKQUOTE>
<BLOCKQUOTE><IMG SRC="../../gx/dennis/bbub.gif" ALT="(!)"
	HEIGHT="28" WIDTH="50" BORDER="0"
	> [Heather]
Yup.  There are other bootloaders around too, which are easier for some
but each has their own new flavors of problem.  And not all of them can
get over this 1024 thing, which is to say, they actually expect the BIOS
to be helpful.  Can't always trust that.  Welcome to the PC.
</BLOCKQUOTE>

<!-- end 22 -->
<!--startcut ======================================================= -->
<P> <hr> </p>
<!-- *** BEGIN copyright *** -->
<H5 align="center">This page edited and maintained by the Editors
        of <I>Linux Gazette</I>
<a href="http://www.linuxgazette.com/copying.html"
        >Copyright &copy;</a> 2001
<BR>Published in issue 65 of <I>Linux Gazette</I> April 2001</H5>
<H6 ALIGN="center">HTML script maintained by
        <A HREF="mailto:star@starshine.org">Heather Stern</a> of
        Starshine Technical Services,
        <A HREF="http://www.starshine.org/">http://www.starshine.org/</A>
</H6>
<!-- *** END copyright *** -->
<P> <hr> 
<!-- begin tagnav ::::::::::::::::::::::::::::::::::::::::::::::::::-->
<p align="center">
<table width="100%" border="0"><tr>
<td align="right" valign="center"
	><IMG ALT="" SRC="../../gx/navbar/left.jpg"
        WIDTH="14" HEIGHT="45" BORDER="0" ALIGN="middle" border="0"
><A HREF="..//"
	><IMG SRC="../../gx/navbar/toc.jpg" align="middle"
              ALT="[ Table Of Contents ]" border="0"></A
><A HREF="../lg_answer65.html"
	><IMG SRC="../../gx/dennis/answertoc.jpg" align="middle"
              ALT="[ Answer Guy Current Index ]" border="0"></A></td>
<td align="center" valign="center"><A HREF="../lg_answer65.html#greeting"><img align="middle"
	src="../../gx/dennis/smily.gif" alt="greetings" border="0"></A> &nbsp;
  <A HREF="1.html">1</A> &nbsp;
  <A HREF="2.html">2</A> &nbsp;
  <A HREF="3.html">3</A> &nbsp;
  <A HREF="4.html">4</A> &nbsp;
  <A HREF="5.html">5</A> &nbsp;
  <A HREF="6.html">6</A> &nbsp;
  <A HREF="7.html">7</A> &nbsp;
  <A HREF="8.html">8</A> &nbsp;
  <A HREF="9.html">9</A> &nbsp;
  <A HREF="10.html">10</A> &nbsp;
  <A HREF="11.html">11</A> &nbsp;
  <A HREF="12.html">12</A> &nbsp;
  <A HREF="13.html">13</A> &nbsp;
  <A HREF="14.html">14</A> &nbsp;
  <A HREF="15.html">15</A> &nbsp;
  <A HREF="16.html">16</A> &nbsp;
  <A HREF="17.html">17</A> &nbsp;
  <A HREF="18.html">18</A> &nbsp;
  <A HREF="19.html">19</A> &nbsp;
  <A HREF="20.html">20</A> &nbsp;
  <A HREF="21.html">21</A> &nbsp;
  <A HREF="22.html">22</A> &nbsp;
  <A HREF="23.html">23</A> &nbsp;
  <A HREF="24.html">24</A> &nbsp;
  <A HREF="25.html">25</A> &nbsp;
  <A HREF="26.html">26</A> &nbsp;
  <A HREF="27.html">27</A> &nbsp;
  <A HREF="28.html">28</A> &nbsp;
  <A HREF="29.html">29</A></td>
<td align="left" valign="center"><A HREF="../../tag/kb.html"
	><IMG SRC="../../gx/dennis/answerpast.jpg" align="middle"
              ALT="[ Index of Past Answers ]" border="0"></A
><IMG ALT="" SRC="../../gx/navbar/right.jpg" align="middle"
        WIDTH="14" HEIGHT="45" BORDER="0"></td></tr></table>
</p>
<!-- end tagnav ::::::::::::::::::::::::::::::::::::::::::::::::::::-->
<P> <hr> 
<CENTER>
<!-- *** BEGIN navbar *** -->
<!-- *** END navbar *** -->
</CENTER>
</p>
<!-- ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: -->
</BODY></HTML>
<!--endcut ========================================================= -->