File: INCOMPAT

package info (click to toggle)
lilo 21-4
  • links: PTS
  • area: main
  • in suites: slink
  • size: 812 kB
  • ctags: 895
  • sloc: ansic: 3,420; asm: 2,546; sh: 767; perl: 607; makefile: 193; cpp: 3
file content (463 lines) | stat: -rw-r--r-- 16,298 bytes parent folder | download | duplicates (3)
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
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
Incompatibilities between LILO >= 20 and earlier versions
=========================================================

Special chain loaders
---------------------

The functionality of the chain loaders any_b.b and any_d.b has been
generalized and integrated into chain.b. any_b.b and any_d.b are
therefore no longer supported. Their behaviour can be emulated as
follows:

   other = foo
     loader = /boot/any_b.b

becomes

   other = foo
     map-drive = 0
       to = 1
     map-drive = 1
       to = 0

and

   other = foo
     loader = /boot/any_d.b

becomes

   other = foo
     map-drive = 0x80
       to = 0x81
     map-drive = 0x81
       to = 0x80

The use of os2_d.b changes as follows:

   other = foo
     loader = /boot/os2_d.b

becomes

   other = foo
     loader = /boot/os2_d.b
     map-drive = 0x80
       to = 0x81
     map-drive = 0x81
       to = 0x80


Removal of less common baud rates
---------------------------------

The baud rates 150 bps and 600 bps are no longer available with the SERIAL
option.


Incompatibilities between LILO >= 18 and earlier versions
=========================================================

Partition type check
--------------------

Starting with version 18, LILO checks the type of the partition where it
stores its boot sector. LILO installation may therefore fail on systems
where the LILO boot sector resides on a seemingly unsuitable partition.
This problem can be solved by either changing the partition type of by
using the IGNORE-TABLE configuration option.


disktab
-------

Is no longer documented and support for it will be removed in a future
version of LILO. See section "Disk geometry" in the accompanying
documentation for the right way to configure unusual disk geometry.


Booting kernel images from a device
-----------------------------------

An essentially useless feature of LILO is to be able to boot a kernel
from a device without file system, e.g.

  image = /dev/fd0
    range = 1+512

Support for this will be removed in a future version of LILO. Also, new
functions such as kernels > 512kB are not supported for kernels booted
from a device.

Note that booting of non-Linux systems (other = /dev/...) will in no
way be affected by this feature removal.


REWRITE-TABLE
-------------

The REWRITE-TABLE configuration option and the compile-time options
REWRITE_TABLE, FIX_TYPE, and HIDE_DOS are not available in the current
version of LILO, because deficiencies were found in the implementation
in version 17 (e.g. attempts to alter the partition table of the second
disk resulted in a modification of the partition table of the first
disk, using the parameters of the second disk), and there was not
enough time to complete an improved version.

Future versions will use a radically different internal mechanism, but
no configuration change should be required in most cases. Users who
depend on REWRITE-TABLE to be available should continue to use their
current version of LILO and wait for a later version before upgrading.


Incompatibilities between LILO >= 17 and earlier versions
=========================================================

Documentation change
--------------------

The last traces of "old-style" configuration have been removed.


Incompatibilities between LILO >= 0.16 and earlier versions
===========================================================

Sanity checks
-------------

When booting an operating system from any device than the first hard or floppy
disk, specifying the chain loader is now mandatory.


Incompatibilities between LILO >= 0.14 and earlier versions
===========================================================

mkbindist
---------

... is gone. I don't think anybody used it and I got tired of updating it.


Variable-size setup
-------------------

Kernels >= 1.1.43 support setup segments of variable size. LILO 0.15 is able
to detect this and act accordingly. However, older kernels could possibly
contain other information at that place. This can be discovered by running
the following command:

# /sbin/lilo -t -v -v | grep Setup

If very unusual numbers (e.g. below four or significantly bigger than five)
are shown, you may have such a kernel.

LILO has to be compiled without the VARSETUP option in such cases. Note that
later kernels may no longer support running LILO without VARSETUP.


Incompatibilities between LILO >= 0.13 and earlier versions
===========================================================

Possible conflict with /etc/disktab from Shoelace
-------------------------------------------------

When using the new path names, installation of LILO may fail with
    Invalid line in /etc/disktab:
    "w0|wini|Generic hard disk:\"
if you have an old /etc/disktab file from Shoelace (a different boot loader
that is quite obsolete nowadays). Remove or rename that file before running
/sbin/lilo (or QuickInst).

Note: you may have an /etc/disktab file even if you've never used Shoelace,
because even current versions of SLS still install that file.


Removal of support for unstripped kernels
-----------------------------------------

(Compound) unstripped kernels are no longer supported by LILO, because
current kernels are expected to be compressed. This change also obsoletes
/etc/lilo/install (see below).

A new concept to support compressed kernels carrying symbol information may
be devised later.


Removal of /etc/lilo/install
----------------------------

Early versions of LILO expected to find all parameters on the command line.
In order to simplify repeated re-installations of LILO, the invocation of
LILO with all its parameters was stored in /etc/lilo/install.

Because this was messy and introduced syntactical limitations,
/etc/lilo/config was introduced after a while and support for command-line
options was drastically reduced later. /etc/lilo/install now typically just
invoked /etc/lilo/lilo with no options or with -C /etc/lilo/config, which
became the default. Only when using compound unstripped kernels, one had to
put additional instructions to build the kernel file into /etc/lilo/install.

Now, that unstripped kernels are gone too (see above), /etc/lilo/install is
superfluous. Because the kernel Makefile still invokes LILO by calling
/etc/lilo/install, /etc/lilo/install should be a symbolic link to /sbin/lilo
or /etc/lilo/lilo until everybody has switched to the new directory
structure.


Directory hierarchy change
--------------------------

A new Linux directory structure is in the process of being standardized.
Most distributions will support the new structure. In order to install LILO
with the new structure, you have to use the .new versions of QuickInst and
Makefile. Otherwise, you have to use the .old versions.

The locations of the following files change:

  Old location			New location
  ------------------------	-----------------
  /etc/lilo/config.defines	/etc/lilo.defines
  /etc/lilo/config		/etc/lilo.conf
  /etc/lilo/disktab		/etc/disktab
  /etc/lilo/lilo		/sbin/lilo
  /etc/lilo/boot.NNNN		/boot/boot.NNNN
  /etc/lilo/part.NNNN		/boot/part.NNNN
  /etc/lilo/map			/boot/map
  /etc/lilo/*.b			/boot/*.b

/etc/lilo/install should be a symbolic link to /sbin/lilo for backwards
compatibility. If you already have a (very old) /etc/disktab file from
Shoelace, you have to delete or replace it. (Note: SLS 1.03 still installs
that file, so you might have it even if you've never heard of Shoelace.)

The current documentation still uses the old paths.


Temporary unavailability of RAM disk size override
--------------------------------------------------

The RAM disk size override option (RAMDISK) has no effect when using
0.99pl13 or older kernels, because no corresponding parameter line item
exists. Support for it may be available in 0.99pl14 or later kernels.


Incompatibilities between LILO >= 0.12 and earlier versions
===========================================================

The first stage boot loader now displays diagnostic codes if loading
the second stage loader fails. This may create irritating messages
like L06ILO on systems, where the first read access on a disk after
booting usually fails. These diagnostics can be disabled by setting
the compile-time option NO1STDIAG.


Incompatibilities between LILO >= 0.11 and earlier versions
===========================================================

The configuration variable INSTALL is no longer required. If absent, a
default of /etc/lilo/boot.b is used. This means that it is no longer
possible to avoid installing a new boot sector when updating the map
file. The old behaviour can be restored by setting the compile-time
option NOINSTDEF.


Incompatibilities between LILO >= 0.10 and earlier versions
===========================================================

Version 0.10 of LILO is intentionally incompatible in many ways with
earlier versions. However, in most cases, there is an easy migration
path.

LILO 0.10 may not work with versions of the following programs older
than specified:

  Kernel				0.99pl8
  Peter Orbaek's poeigl			1.13a
  Miquel van Smoorenburg's SysV-init	2.1
  Mike Jagdis' bootsys			version 3 (?)


Documentation cleaning and splitting
------------------------------------

Because the documentation was slowly becoming a multiple-choice test,
all references to old versions of kernels and other programs have been
removed. All traces of removed features have vanished too.

The single file "doc.tex" is now split in two parts: the user's guide
"user.tex" and the technical overview "tech.tex". Reading the
technical overview is not necessary in order to install LILO.


Old-style configuration has been removed
----------------------------------------

Old-style configuration (e.g. /etc/lilo/lilo /vmlinux,/dev/hda1) is no
longer supported. New-style configuration uses a configuration file in
a far better readable format (/etc/lilo/config). There is also space
for future extensions.

If you're still using old-style configuration, you have to switch to
new-style configuration before installing LILO 0.10.

For all versions of LILO since 0.7, an automated migration facility is
provided. See section "Migration" in the documentation of that version
of LILO. In short, you have to run the following commands _before_
upgrading to LILO 0.10:

# /etc/lilo/install -D >/etc/lilo/config
# mv install.new /etc/lilo/install

If you're using an older version of LILO than 0.7 or if you're not
using /etc/lilo/install, you should either manually create a
configuration file or use QuickInst to re-install from scratch.


No support for dumps
--------------------

Because LILO 0.10 doesn't understand old-style configuration, the dump
option (-D) is no longer supported. Therefore, if you need to migrate
from old-style configuration, you have to use the installed version of
LILO to do that.


No support for not-compound unstripped kernels
----------------------------------------------

Since LILO 0.9, compound unstripped kernels are supported. They are
easier to handle and provide the same functionality as not-compound
unstripped kernels. Note: all this has _nothing_ to do with compressed
(zipped) kernels. They work fine with all versions of LILO.


Suggesting using a link for /etc/lilo/install
---------------------------------------------

Because not-compound unstripped kernels, which were needing some
support code in /etc/lilo/install, have been removed, and because the
-C option is no longer necessary to distinguish between old-style and
new-style configuration, /etc/lilo/install is unnecessary in most
cases.

In order to preserve compatibility with older installations and with
installations that use code for special actions in /etc/lilo/install,
a symbolic link should be created from /etc/lilo/install to lilo.


Removed configuration option NOAUTO
-----------------------------------

The compile-time configuration option NOAUTO has been removed. This
means that you have to upgrade to poeigl ?.??? (or later) if you're
using simpleinit from an earlier version of poeigl. If the option
NOAUTO is still present, it is ignored.


Incompatibilities between LILO >= 0.9 and earlier versions
==========================================================

Case-insensitive name matching
------------------------------

By default, LILO is now configured to ignore case when matching image
names. This can cause problems if labels are being used that differ
only in case. (Detected at map creation time.) Either change the
label names or remove -DIGNORECASE from the configuration section of
the Makefile.


New keyword "auto" passed to init
---------------------------------

If the system boots without manual intervention, the word "auto" is
passed on the command line to the kernel, which in turn passes it to
init. Some init programs don't recognize that word and issue an error
message or fail to process other command-line options (e.g. some
versions of poeigl init expects "single" to be the only word on the
command line). The old behaviour can be obtained by setting the build-
time configuration variable NOAUTO in the configuration section of the
Makefile.


-r implied if environment variable ROOT is set
----------------------------------------------

The map installer acts as if the option -r was on the command line if
the environment variable ROOT is set. If you are using ROOT for other
purposes than indicating the path of the actual root of the file
system (i.e. it should be set to "/" during normal system operation),
you have to pass the option  -r /  to the map installer. Typically,
ROOT is not used for anything but LILO (or possibly programs that are
aware of how LILO uses it), so this should be no problem.


Incompatibilities between LILO >= 0.7 and earlier versions
==========================================================

There are a number of incompatibilities between LILO 0.7 (or newer)
and earlier versions that cause working /etc/lilo/install scripts to
fail or that change earlier behaviour without warning.


Root device presetting
----------------------

The way how the root device is preset differs from LILO >= 0.7 and
earlier versions if using /etc/lilo/config. If the boot images are
listed on the command line, LILO >= 0.7 emulates the old behaviour.

Old behaviour:
  - if the root device was specified after the image descriptor
    (e.g. foo=/bar,/dev/hda1), that device was used.
  - if a root device was set in the boot image and no device was
    specified at the command line, the setting from the boot
    image was used. Later changes of the settings (e.g. with rdev
    aka setroot) had no effect.
  - if no root device was set in the boot image, LILO used the
    current root partition instead. Again, changing the setting
    later had no effect.

New behaviour:
  - if the ROOT variable is set, that value is used and the
    setting in the boot image is ignored.
  - otherwise, the value found in the boot image at boot time is
    used. This means that changing the root device setting after
    map creation has the desired effect.


Swap device settings
--------------------

Presetting the swap device (e.g. /linux,/dev/root,/dev/swap) is no
longer supported. Linus has already stopped providing that feature
in recent kernels.

Kernels that expect swap device settings in the boot sector may no
longer work. I'm not sure when presettable swap devices were removed,
but generally 0.96 and early 0.97 kernels may be considered
incompatible.

The memory location where the swap device preset value used to be
stored has been occupied by the VGA mode value in 0.98pl6 and
possibly also in SLS versions of 0.98pl5.

Workaround: Create a /etc/lilo/config file and set the VGA variable
	    to zero to disable using a swap device at boot time.


BIOS code overrides
-------------------

Appending BIOS codes to file names (e.g. /foo/bar:0x80) is no longer
supported. /etc/lilo/disktab can be used for most purposes where
BIOS code overrides might have been useful.


Command-line arguments of the map installer
-------------------------------------------

Older versions of the map installer accepted multiple ocurrences of
the same flag. LILO 0.7 and later versions are only guaranteed to
accept repetition of -v. However, variables set in /etc/lilo/config
can be overridden on the command line in LILO 0.8.