Remove obsolete image symlinks in /boot
[rrq/maintain_lilo.git] / readme / INCOMPAT
1 Incompatibilities between LILO >= 22 and earlier versions
2 =========================================================
3
4 Boot loaders
5 ------------
6
7 Starting with version 22, a third boot loader, '/boot/boot-bmp.b' is now
8 available.  This loader supports booting from a bitmapped screen, defined in
9 a bitmap file referenced from the config file.  This boot loader requires a
10 VGA adapter which supports video mode 0x12: 16-color, 640x480 pixels.  It
11 will fall back to the teletype-text interface if such an adapter is not
12 present.
13
14 Chain loaders
15 -------------
16
17 The chain loader for loading OS/2 from other than the C: drive, 'os2_d.b',
18 is now obsolete.  All of the functionality is combined into 'chain.b'.
19
20 Disk addressing
21 ---------------
22
23 A Makefile option in version 22, LBA32, makes 32-bit sector addressing the
24 default, instead of geometric addressing.  Thus, the 1024 cylinder limit on
25 large disks will be avoided on virtually all newer (post 1998) systems. 
26 With the fallback to geometric addressing as before, compatibility with
27 older systems is extremely likely.  If geometric addressing must be forced
28 on older system, there is now the 'geometric' command and '-g' switch.  Not
29 all versions of LILO will be compiled with the LBA32 switch to enable this
30 feature.
31
32 RAID installation
33 -----------------
34
35 Installation on RAID1 partitions is completely re-written.  Consult the
36 tutorial "README.raid1" for details.  The boot loaders are no longer written
37 unconditionally to the MBRs of the disks containing the raid set partitions,
38 but preferably to the raid partition itself.  Auxiliary records may be
39 written to MBRs, but this writing may be controlled with 'raid-extra-boot='.
40 A mode of operation compatible with previous versions is available.
41
42
43 Incompatibilities between LILO >= 21 and earlier versions
44 =========================================================
45
46 Serial lines
47 ------------
48
49 Since version 21.7, all IBM standard bit rates from 110 to 9600 are
50 supported, as well as extended rates of 19200, 38400, 57600, & 115200.
51
52 Boot loaders
53 ------------
54
55 Starting with version 21.5, the default boot loader is '/boot/boot-menu.b',
56 referenced as '/boot/boot.b' through a symbolic link.  This boot loader
57 allows booting from a text-based menu using the keyboard arrow keys to make
58 the kernel/other selection.  For strict compatibility with earlier
59 teletype-text based boot loaders, '/boot/boot-text.b' is still available,
60 although probably unneeded.
61
62 Change Rules
63 ------------
64
65 A more complete set of default partition change-rules is available starting 
66 with version 21.6 and later.
67
68 A Makefile option allows the automatic insertion of the "CHANGE AUTOMATIC"
69 command into the config file.  A comment is now issued when this is done,
70 and it is possible to see the partition change rules in force by using a
71 verbosity level of 3:  -v3 or verbose=3.  Not all versions of LILO will be
72 compiled with the AUTOAUTO switch to enable this feature.
73
74 Disk addressing
75 ---------------
76
77 32-bit 0-based sector addressing has been available since version 21.2,
78 enabled by the 'lba32' (-L) option.  If the BIOS does not support the EDD
79 packet calls on int 0x13 to use this feature, then the boot loader will fall
80 back to geometric (Cylinder:Head:Sector) addressing by using int 0x13, fn 8,
81 to obtain the disk geometry.  
82
83
84 Incompatibilities between LILO >= 20 and earlier versions
85 =========================================================
86
87 Special chain loaders
88 ---------------------
89
90 The functionality of the chain loaders any_b.b and any_d.b has been
91 generalized and integrated into chain.b. any_b.b and any_d.b are
92 therefore no longer supported. Their behaviour can be emulated as
93 follows:
94
95    other = foo
96      loader = /boot/any_b.b
97
98 becomes
99
100    other = foo
101      map-drive = 0
102        to = 1
103      map-drive = 1
104        to = 0
105
106 and
107
108    other = foo
109      loader = /boot/any_d.b
110
111 becomes
112
113    other = foo
114      map-drive = 0x80
115        to = 0x81
116      map-drive = 0x81
117        to = 0x80
118
119 The use of os2_d.b changes as follows:
120
121    other = foo
122      loader = /boot/os2_d.b
123
124 becomes
125
126    other = foo
127      loader = /boot/os2_d.b
128      map-drive = 0x80
129        to = 0x81
130      map-drive = 0x81
131        to = 0x80
132
133
134 Removal of less common baud rates
135 ---------------------------------
136
137 The baud rates 150 bps and 600 bps are no longer available with the SERIAL
138 option.
139
140
141 Incompatibilities between LILO >= 18 and earlier versions
142 =========================================================
143
144 Partition type check
145 --------------------
146
147 Starting with version 18, LILO checks the type of the partition where it
148 stores its boot sector. LILO installation may therefore fail on systems
149 where the LILO boot sector resides on a seemingly unsuitable partition.
150 This problem can be solved by either changing the partition type of by
151 using the IGNORE-TABLE configuration option.
152
153
154 disktab
155 -------
156
157 Is no longer documented and support for it will be removed in a future
158 version of LILO. See section "Disk geometry" in the accompanying
159 documentation for the right way to configure unusual disk geometry.
160
161
162 Booting kernel images from a device
163 -----------------------------------
164
165 An essentially useless feature of LILO is to be able to boot a kernel
166 from a device without file system, e.g.
167
168   image = /dev/fd0
169     range = 1+512
170
171 Support for this will be removed in a future version of LILO. Also, new
172 functions such as kernels > 512kB are not supported for kernels booted
173 from a device.
174
175 Note that booting of non-Linux systems (other = /dev/...) will in no
176 way be affected by this feature removal.
177
178
179 REWRITE-TABLE
180 -------------
181
182 The REWRITE-TABLE configuration option and the compile-time options
183 REWRITE_TABLE, FIX_TYPE, and HIDE_DOS are not available in the current
184 version of LILO, because deficiencies were found in the implementation
185 in version 17 (e.g. attempts to alter the partition table of the second
186 disk resulted in a modification of the partition table of the first
187 disk, using the parameters of the second disk), and there was not
188 enough time to complete an improved version.
189
190 Future versions will use a radically different internal mechanism, but
191 no configuration change should be required in most cases. Users who
192 depend on REWRITE-TABLE to be available should continue to use their
193 current version of LILO and wait for a later version before upgrading.
194
195
196 Incompatibilities between LILO >= 17 and earlier versions
197 =========================================================
198
199 Documentation change
200 --------------------
201
202 The last traces of "old-style" configuration have been removed.
203
204
205 Incompatibilities between LILO >= 0.16 and earlier versions
206 ===========================================================
207
208 Sanity checks
209 -------------
210
211 When booting an operating system from any device than the first hard or floppy
212 disk, specifying the chain loader is now mandatory.
213
214
215 Incompatibilities between LILO >= 0.14 and earlier versions
216 ===========================================================
217
218 mkbindist
219 ---------
220
221 ... is gone. I don't think anybody used it and I got tired of updating it.
222
223
224 Variable-size setup
225 -------------------
226
227 Kernels >= 1.1.43 support setup segments of variable size. LILO 0.15 is able
228 to detect this and act accordingly. However, older kernels could possibly
229 contain other information at that place. This can be discovered by running
230 the following command:
231
232 # /sbin/lilo -t -v -v | grep Setup
233
234 If very unusual numbers (e.g. below four or significantly bigger than five)
235 are shown, you may have such a kernel.
236
237 LILO has to be compiled without the VARSETUP option in such cases. Note that
238 later kernels may no longer support running LILO without VARSETUP.
239
240
241 Incompatibilities between LILO >= 0.13 and earlier versions
242 ===========================================================
243
244 Possible conflict with /etc/disktab from Shoelace
245 -------------------------------------------------
246
247 When using the new path names, installation of LILO may fail with
248     Invalid line in /etc/disktab:
249     "w0|wini|Generic hard disk:\"
250 if you have an old /etc/disktab file from Shoelace (a different boot loader
251 that is quite obsolete nowadays). Remove or rename that file before running
252 /sbin/lilo (or QuickInst).
253
254 Note: you may have an /etc/disktab file even if you've never used Shoelace,
255 because even current versions of SLS still install that file.
256
257
258 Removal of support for unstripped kernels
259 -----------------------------------------
260
261 (Compound) unstripped kernels are no longer supported by LILO, because
262 current kernels are expected to be compressed. This change also obsoletes
263 /etc/lilo/install (see below).
264
265 A new concept to support compressed kernels carrying symbol information may
266 be devised later.
267
268
269 Removal of /etc/lilo/install
270 ----------------------------
271
272 Early versions of LILO expected to find all parameters on the command line.
273 In order to simplify repeated re-installations of LILO, the invocation of
274 LILO with all its parameters was stored in /etc/lilo/install.
275
276 Because this was messy and introduced syntactical limitations,
277 /etc/lilo/config was introduced after a while and support for command-line
278 options was drastically reduced later. /etc/lilo/install now typically just
279 invoked /etc/lilo/lilo with no options or with -C /etc/lilo/config, which
280 became the default. Only when using compound unstripped kernels, one had to
281 put additional instructions to build the kernel file into /etc/lilo/install.
282
283 Now, that unstripped kernels are gone too (see above), /etc/lilo/install is
284 superfluous. Because the kernel Makefile still invokes LILO by calling
285 /etc/lilo/install, /etc/lilo/install should be a symbolic link to /sbin/lilo
286 or /etc/lilo/lilo until everybody has switched to the new directory
287 structure.
288
289
290 Directory hierarchy change
291 --------------------------
292
293 A new Linux directory structure is in the process of being standardized.
294 Most distributions will support the new structure. In order to install LILO
295 with the new structure, you have to use the .new versions of QuickInst and
296 Makefile. Otherwise, you have to use the .old versions.
297
298 The locations of the following files change:
299
300   Old location                  New location
301   ------------------------      -----------------
302   /etc/lilo/config.defines      /etc/lilo.defines
303   /etc/lilo/config              /etc/lilo.conf
304   /etc/lilo/disktab             /etc/disktab
305   /etc/lilo/lilo                /sbin/lilo
306   /etc/lilo/boot.NNNN           /boot/boot.NNNN
307   /etc/lilo/part.NNNN           /boot/part.NNNN
308   /etc/lilo/map                 /boot/map
309   /etc/lilo/*.b                 /boot/*.b
310
311 /etc/lilo/install should be a symbolic link to /sbin/lilo for backwards
312 compatibility. If you already have a (very old) /etc/disktab file from
313 Shoelace, you have to delete or replace it. (Note: SLS 1.03 still installs
314 that file, so you might have it even if you've never heard of Shoelace.)
315
316 The current documentation still uses the old paths.
317
318
319 Temporary unavailability of RAM disk size override
320 --------------------------------------------------
321
322 The RAM disk size override option (RAMDISK) has no effect when using
323 0.99pl13 or older kernels, because no corresponding parameter line item
324 exists. Support for it may be available in 0.99pl14 or later kernels.
325
326
327 Incompatibilities between LILO >= 0.12 and earlier versions
328 ===========================================================
329
330 The first stage boot loader now displays diagnostic codes if loading
331 the second stage loader fails. This may create irritating messages
332 like L06ILO on systems, where the first read access on a disk after
333 booting usually fails. These diagnostics can be disabled by setting
334 the compile-time option NO1STDIAG.
335
336
337 Incompatibilities between LILO >= 0.11 and earlier versions
338 ===========================================================
339
340 The configuration variable INSTALL is no longer required. If absent, a
341 default of /etc/lilo/boot.b is used. This means that it is no longer
342 possible to avoid installing a new boot sector when updating the map
343 file. The old behaviour can be restored by setting the compile-time
344 option NOINSTDEF.
345
346
347 Incompatibilities between LILO >= 0.10 and earlier versions
348 ===========================================================
349
350 Version 0.10 of LILO is intentionally incompatible in many ways with
351 earlier versions. However, in most cases, there is an easy migration
352 path.
353
354 LILO 0.10 may not work with versions of the following programs older
355 than specified:
356
357   Kernel                                0.99pl8
358   Peter Orbaek's poeigl                 1.13a
359   Miquel van Smoorenburg's SysV-init    2.1
360   Mike Jagdis' bootsys                  version 3 (?)
361
362
363 Documentation cleaning and splitting
364 ------------------------------------
365
366 Because the documentation was slowly becoming a multiple-choice test,
367 all references to old versions of kernels and other programs have been
368 removed. All traces of removed features have vanished too.
369
370 The single file "doc.tex" is now split in two parts: the user's guide
371 "user.tex" and the technical overview "tech.tex". Reading the
372 technical overview is not necessary in order to install LILO.
373
374
375 Old-style configuration has been removed
376 ----------------------------------------
377
378 Old-style configuration (e.g. /etc/lilo/lilo /vmlinux,/dev/hda1) is no
379 longer supported. New-style configuration uses a configuration file in
380 a far better readable format (/etc/lilo/config). There is also space
381 for future extensions.
382
383 If you're still using old-style configuration, you have to switch to
384 new-style configuration before installing LILO 0.10.
385
386 For all versions of LILO since 0.7, an automated migration facility is
387 provided. See section "Migration" in the documentation of that version
388 of LILO. In short, you have to run the following commands _before_
389 upgrading to LILO 0.10:
390
391 # /etc/lilo/install -D >/etc/lilo/config
392 # mv install.new /etc/lilo/install
393
394 If you're using an older version of LILO than 0.7 or if you're not
395 using /etc/lilo/install, you should either manually create a
396 configuration file or use QuickInst to re-install from scratch.
397
398
399 No support for dumps
400 --------------------
401
402 Because LILO 0.10 doesn't understand old-style configuration, the dump
403 option (-D) is no longer supported. Therefore, if you need to migrate
404 from old-style configuration, you have to use the installed version of
405 LILO to do that.
406
407
408 No support for not-compound unstripped kernels
409 ----------------------------------------------
410
411 Since LILO 0.9, compound unstripped kernels are supported. They are
412 easier to handle and provide the same functionality as not-compound
413 unstripped kernels. Note: all this has _nothing_ to do with compressed
414 (zipped) kernels. They work fine with all versions of LILO.
415
416
417 Suggesting using a link for /etc/lilo/install
418 ---------------------------------------------
419
420 Because not-compound unstripped kernels, which were needing some
421 support code in /etc/lilo/install, have been removed, and because the
422 -C option is no longer necessary to distinguish between old-style and
423 new-style configuration, /etc/lilo/install is unnecessary in most
424 cases.
425
426 In order to preserve compatibility with older installations and with
427 installations that use code for special actions in /etc/lilo/install,
428 a symbolic link should be created from /etc/lilo/install to lilo.
429
430
431 Removed configuration option NOAUTO
432 -----------------------------------
433
434 The compile-time configuration option NOAUTO has been removed. This
435 means that you have to upgrade to poeigl ?.??? (or later) if you're
436 using simpleinit from an earlier version of poeigl. If the option
437 NOAUTO is still present, it is ignored.
438
439
440 Incompatibilities between LILO >= 0.9 and earlier versions
441 ==========================================================
442
443 Case-insensitive name matching
444 ------------------------------
445
446 By default, LILO is now configured to ignore case when matching image
447 names. This can cause problems if labels are being used that differ
448 only in case. (Detected at map creation time.) Either change the
449 label names or remove -DIGNORECASE from the configuration section of
450 the Makefile.
451
452
453 New keyword "auto" passed to init
454 ---------------------------------
455
456 If the system boots without manual intervention, the word "auto" is
457 passed on the command line to the kernel, which in turn passes it to
458 init. Some init programs don't recognize that word and issue an error
459 message or fail to process other command-line options (e.g. some
460 versions of poeigl init expects "single" to be the only word on the
461 command line). The old behaviour can be obtained by setting the build-
462 time configuration variable NOAUTO in the configuration section of the
463 Makefile.
464
465
466 -r implied if environment variable ROOT is set
467 ----------------------------------------------
468
469 The map installer acts as if the option -r was on the command line if
470 the environment variable ROOT is set. If you are using ROOT for other
471 purposes than indicating the path of the actual root of the file
472 system (i.e. it should be set to "/" during normal system operation),
473 you have to pass the option  -r /  to the map installer. Typically,
474 ROOT is not used for anything but LILO (or possibly programs that are
475 aware of how LILO uses it), so this should be no problem.
476
477
478 Incompatibilities between LILO >= 0.7 and earlier versions
479 ==========================================================
480
481 There are a number of incompatibilities between LILO 0.7 (or newer)
482 and earlier versions that cause working /etc/lilo/install scripts to
483 fail or that change earlier behaviour without warning.
484
485
486 Root device presetting
487 ----------------------
488
489 The way how the root device is preset differs from LILO >= 0.7 and
490 earlier versions if using /etc/lilo/config. If the boot images are
491 listed on the command line, LILO >= 0.7 emulates the old behaviour.
492
493 Old behaviour:
494   - if the root device was specified after the image descriptor
495     (e.g. foo=/bar,/dev/hda1), that device was used.
496   - if a root device was set in the boot image and no device was
497     specified at the command line, the setting from the boot
498     image was used. Later changes of the settings (e.g. with rdev
499     aka setroot) had no effect.
500   - if no root device was set in the boot image, LILO used the
501     current root partition instead. Again, changing the setting
502     later had no effect.
503
504 New behaviour:
505   - if the ROOT variable is set, that value is used and the
506     setting in the boot image is ignored.
507   - otherwise, the value found in the boot image at boot time is
508     used. This means that changing the root device setting after
509     map creation has the desired effect.
510
511
512 Swap device settings
513 --------------------
514
515 Presetting the swap device (e.g. /linux,/dev/root,/dev/swap) is no
516 longer supported. Linus has already stopped providing that feature
517 in recent kernels.
518
519 Kernels that expect swap device settings in the boot sector may no
520 longer work. I'm not sure when presettable swap devices were removed,
521 but generally 0.96 and early 0.97 kernels may be considered
522 incompatible.
523
524 The memory location where the swap device preset value used to be
525 stored has been occupied by the VGA mode value in 0.98pl6 and
526 possibly also in SLS versions of 0.98pl5.
527
528 Workaround: Create a /etc/lilo/config file and set the VGA variable
529             to zero to disable using a swap device at boot time.
530
531
532 BIOS code overrides
533 -------------------
534
535 Appending BIOS codes to file names (e.g. /foo/bar:0x80) is no longer
536 supported. /etc/lilo/disktab can be used for most purposes where
537 BIOS code overrides might have been useful.
538
539
540 Command-line arguments of the map installer
541 -------------------------------------------
542
543 Older versions of the map installer accepted multiple ocurrences of
544 the same flag. LILO 0.7 and later versions are only guaranteed to
545 accept repetition of -v. However, variables set in /etc/lilo/config
546 can be overridden on the command line in LILO 0.8.