Package: lilo Version: 1:23.2-4 Severity: normal Tags: d-i patch Dear Maintainer, *** Please consider answering these questions, where appropriate ***
* What led up to the situation? Tried to use lilo on a dmraid setup after grub2 misconfigured itself beyond my capacity to fix. * What exactly did you do (or not do) that was effective (or ineffective)? Removed all knowledge of dm-devices from lilo. * What was the outcome of this action? Lilo works on dm mirroring only when it doesn't know what it is. *** End of the template - remove these lines *** -- System Information: Debian Release: 7.7 APT prefers stable-updates APT policy: (500, 'stable-updates'), (500, 'stable') Architecture: amd64 (x86_64) Foreign Architectures: i386 Kernel: Linux 3.2.0-4-amd64 (SMP w/4 CPU cores) Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8) (ignored: LC_ALL set to en_US.UTF-8) Shell: /bin/sh linked to /bin/dash Versions of packages lilo depends on: ii debconf [debconf-2.0] 1.5.49 ii dpkg 1.16.15 ii libc6 2.13-38+deb7u6 ii libdevmapper1.02.1 2:1.02.74-8 ii perl 5.14.2-21+deb7u2 lilo recommends no packages. Versions of packages lilo suggests: pn lilo-doc <none> -- debconf information excluded -- debsums errors found: debsums: missing file /sbin/lilo.distrib (from lilo package) (please note this system has a fixed lilo installed)
diff -ur lilo-23.2/src/config.h lilo-23.2.mine/src/config.h --- lilo-23.2/src/config.h 2006-12-16 17:55:12.000000000 -0800 +++ lilo-23.2.mine/src/config.h 2014-11-17 19:51:24.000000000 -0800 @@ -13,6 +13,8 @@ #ifndef CONFIG_H #define CONFIG_H +#undef HAS_LIBDEVMAPPER_H + /* undefine LCF_DEVMAPPER if the library is not present */ #ifdef LCF_DEVMAPPER # ifndef HAS_LIBDEVMAPPER_H diff -ur lilo-23.2/src/device.c lilo-23.2.mine/src/device.c --- lilo-23.2/src/device.c 2014-11-17 20:20:38.000000000 -0800 +++ lilo-23.2.mine/src/device.c 2014-11-17 20:28:23.000000000 -0800 @@ -924,8 +924,8 @@ if (is_dm_major(major)) { #ifndef LCF_DEVMAPPER warn("device-mapper (%d) referenced in " PARTITIONS ",\n" - " but LILO is configured without DEVMAPPER option. Skipping device.", major); - continue; + " but LILO is configured without DEVMAPPER option.", major); + /* This might be safe. */ #endif } else if ((major>=60 && major<=63) || (major>=120 && major<=127) ) { @@ -1307,10 +1307,13 @@ #if BETA_TEST if (verbose>=3) printf("J=%d K=%d\n", j, k); #endif +#if 0 +/* This check is simply wrong */ if (j<0 && k>=0) { die("Devices %04X and %04X are assigned to BIOS 0x%02X", vm[k].device, walk->device, bios+0x80); } +#endif } codes |= 1L << bios; } diff -ur lilo-23.2/src/geometry.c lilo-23.2.mine/src/geometry.c --- lilo-23.2/src/geometry.c 2011-04-09 08:03:29.000000000 -0700 +++ lilo-23.2.mine/src/geometry.c 2014-11-17 20:31:58.000000000 -0800 @@ -721,7 +721,7 @@ if (ioctl(fd,HDIO_GETGEO,&hdprm) < 0) die("geo_query_dev HDIO_GETGEO (dev 0x%04x): %s",device, strerror(errno)); - if (all && !hdprm.sectors) + if (all && !hdprm.sectors && (!geo->sectors || !geo->cylinders || !geo->heads)) die("HDIO_REQ not supported for your DAC960/IBM controller. " "Please use a DISK section"); geo->heads = hdprm.heads;
diff -ur lilo-23.2/src/config.h lilo-23.2.mine/src/config.h --- lilo-23.2/src/config.h 2006-12-16 17:55:12.000000000 -0800 +++ lilo-23.2.mine/src/config.h 2014-11-17 19:51:24.000000000 -0800 @@ -13,6 +13,8 @@ #ifndef CONFIG_H #define CONFIG_H +#undef HAS_LIBDEVMAPPER_H + /* undefine LCF_DEVMAPPER if the library is not present */ #ifdef LCF_DEVMAPPER # ifndef HAS_LIBDEVMAPPER_H diff -ur lilo-23.2/src/device.c lilo-23.2.mine/src/device.c --- lilo-23.2/src/device.c 2014-11-17 20:20:38.000000000 -0800 +++ lilo-23.2.mine/src/device.c 2014-11-17 20:28:23.000000000 -0800 @@ -924,8 +924,8 @@ if (is_dm_major(major)) { #ifndef LCF_DEVMAPPER warn("device-mapper (%d) referenced in " PARTITIONS ",\n" - " but LILO is configured without DEVMAPPER option. Skipping device.", major); - continue; + " but LILO is configured without DEVMAPPER option.", major); + /* This might be safe. */ #endif } else if ((major>=60 && major<=63) || (major>=120 && major<=127) ) { @@ -1307,10 +1307,13 @@ #if BETA_TEST if (verbose>=3) printf("J=%d K=%d\n", j, k); #endif +#if 0 +/* This check is simply wrong */ if (j<0 && k>=0) { die("Devices %04X and %04X are assigned to BIOS 0x%02X", vm[k].device, walk->device, bios+0x80); } +#endif } codes |= 1L << bios; } diff -ur lilo-23.2/src/geometry.c lilo-23.2.mine/src/geometry.c --- lilo-23.2/src/geometry.c 2011-04-09 08:03:29.000000000 -0700 +++ lilo-23.2.mine/src/geometry.c 2014-11-17 20:31:58.000000000 -0800 @@ -721,7 +721,7 @@ if (ioctl(fd,HDIO_GETGEO,&hdprm) < 0) die("geo_query_dev HDIO_GETGEO (dev 0x%04x): %s",device, strerror(errno)); - if (all && !hdprm.sectors) + if (all && !hdprm.sectors && (!geo->sectors || !geo->cylinders || !geo->heads)) die("HDIO_REQ not supported for your DAC960/IBM controller. " "Please use a DISK section"); geo->heads = hdprm.heads;