On Wed, Dec 06, 2006 at 01:16:27PM +0100, Loïc Minier <[EMAIL PROTECTED]> was 
heard to say:
> On Sat, Dec 02, 2006, Daniel Burrows wrote:
> >   My system has a somewhat unusual setup: I'm using lvm on RAID1.  Sometime
> > recently, lilo just quit working:
> > [EMAIL PROTECTED]:~$ sudo lilo
> > Warning: COMPACT may conflict with LBA32 on some systems
> > device-mapper: table ioctl failed: No such device or address
> > Fatal: device-mapper: dm_task_run(DM_DEVICE_TABLE) failed
> >   This happens with all versions of lilo back to 7.1 (which is from before
> > the computer in question existed).  Web searches turn up references to old
> > bugs that prevented lilo from working with lvm2 systems.  But the disk
> > configuration on this system hasn't changed since I built it and it's always
> > used lilo, so that can't possibly be it.  The only thing I can think of is
> > that maybe there's an incompatibility with recent 2.6.18 kernels; I don't
> > have easy access to the console at the moment, though [0].
> 
>  Could you send a lilo run in verbose mode and your lilo.conf to the
>  bug?  A "dmsetup ls" would be nice as well.

  Sure.  I'd like to add that I object to the reclassification of this bug
as "normal", since it leads to a nonbootable system.  (I can only run because
I'm using a boot image that was previously installed and hasn't been wiped
out behind lilo's back; I can't use grub because it doesn't work with root on
RAID).

  I've also attached an strace, but at a very cursory scan, it looks like it
just repeats the above info (that an ioctl failed).  I'd analyze this stuff
more myself, but I'm about half asleep right now...

  dmsetup sez:

dmsetup: command not found

  Whoops, let's try that again.

system-var      (253, 1)
system-home     (253, 3)
system-swap     (253, 2)
system-root     (253, 0)

    Thanks,
  Daniel

execve("/sbin/lilo", ["lilo"], [/* 13 vars */]) = 0
uname({sys="Linux", node="jeeves", ...}) = 0
brk(0)                                  = 0x80f3000
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
mmap2(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 
0xb7fb1000
access("/etc/ld.so.preload", R_OK)      = -1 ENOENT (No such file or directory)
open("/etc/ld.so.cache", O_RDONLY)      = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=107156, ...}) = 0
mmap2(NULL, 107156, PROT_READ, MAP_PRIVATE, 3, 0) = 0xb7f96000
close(3)                                = 0
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
open("/lib/libncurses.so.5", O_RDONLY)  = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\200\345"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0644, st_size=263040, ...}) = 0
mmap2(NULL, 264196, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 
0xb7f55000
mmap2(0xb7f8d000, 32768, PROT_READ|PROT_WRITE, 
MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x38) = 0xb7f8d000
mmap2(0xb7f95000, 2052, PROT_READ|PROT_WRITE, 
MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xb7f95000
close(3)                                = 0
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
open("/lib/tls/i686/cmov/libdl.so.2", O_RDONLY) = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\20\f\0"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0644, st_size=9592, ...}) = 0
mmap2(NULL, 12404, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 
0xb7f51000
mmap2(0xb7f53000, 8192, PROT_READ|PROT_WRITE, 
MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1) = 0xb7f53000
close(3)                                = 0
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
open("/lib/tls/i686/cmov/libc.so.6", O_RDONLY) = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\240O\1"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0644, st_size=1241580, ...}) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 
0xb7f50000
mmap2(NULL, 1247388, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 
0xb7e1f000
mmap2(0xb7f46000, 28672, PROT_READ|PROT_WRITE, 
MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x127) = 0xb7f46000
mmap2(0xb7f4d000, 10396, PROT_READ|PROT_WRITE, 
MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xb7f4d000
close(3)                                = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 
0xb7e1e000
mprotect(0xb7f46000, 20480, PROT_READ)  = 0
set_thread_area({entry_number:-1 -> 6, base_addr:0xb7e1e6c0, limit:1048575, 
seg_32bit:1, contents:0, read_exec_only:0, limit_in_pages:1, seg_not_present:0, 
useable:1}) = 0
munmap(0xb7f96000, 107156)              = 0
rt_sigprocmask(SIG_BLOCK, NULL, [], 8)  = 0
open("/dev/tty", O_RDWR|O_NONBLOCK|O_LARGEFILE) = 3
close(3)                                = 0
brk(0)                                  = 0x80f3000
brk(0x80f4000)                          = 0x80f4000
open("/usr/lib/locale/locale-archive", O_RDONLY|O_LARGEFILE) = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=1209120, ...}) = 0
mmap2(NULL, 1209120, PROT_READ, MAP_PRIVATE, 3, 0) = 0xb7cf6000
close(3)                                = 0
brk(0x80f5000)                          = 0x80f5000
brk(0x80f6000)                          = 0x80f6000
getuid32()                              = 0
getgid32()                              = 0
geteuid32()                             = 0
getegid32()                             = 0
rt_sigprocmask(SIG_BLOCK, NULL, [], 8)  = 0
time(NULL)                              = 1165470342
brk(0x80f7000)                          = 0x80f7000
open("/etc/mtab", O_RDONLY)             = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=641, ...}) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 
0xb7fb0000
read(3, "/dev/mapper/system-root / ext3 r"..., 4096) = 641
close(3)                                = 0
munmap(0xb7fb0000, 4096)                = 0
open("/proc/meminfo", O_RDONLY)         = 3
fstat64(3, {st_mode=S_IFREG|0444, st_size=0, ...}) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 
0xb7fb0000
read(3, "MemTotal:       971636 kB\nMemFre"..., 1024) = 676
close(3)                                = 0
munmap(0xb7fb0000, 4096)                = 0
brk(0x80f8000)                          = 0x80f8000
rt_sigaction(SIGCHLD, {SIG_DFL}, {SIG_DFL}, 8) = 0
rt_sigaction(SIGCHLD, {SIG_DFL}, {SIG_DFL}, 8) = 0
rt_sigaction(SIGINT, {SIG_DFL}, {SIG_DFL}, 8) = 0
rt_sigaction(SIGINT, {SIG_DFL}, {SIG_DFL}, 8) = 0
rt_sigaction(SIGQUIT, {SIG_DFL}, {SIG_DFL}, 8) = 0
rt_sigaction(SIGQUIT, {SIG_DFL}, {SIG_DFL}, 8) = 0
rt_sigprocmask(SIG_BLOCK, NULL, [], 8)  = 0
rt_sigaction(SIGQUIT, {SIG_IGN}, {SIG_DFL}, 8) = 0
uname({sys="Linux", node="jeeves", ...}) = 0
brk(0x80fa000)                          = 0x80fa000
getcwd("/home/daniel", 4096)            = 13
brk(0x80fb000)                          = 0x80fb000
getpid()                                = 25274
open("/usr/lib/gconv/gconv-modules.cache", O_RDONLY) = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=21568, ...}) = 0
mmap2(NULL, 21568, PROT_READ, MAP_SHARED, 3, 0) = 0xb7fab000
close(3)                                = 0
getppid()                               = 25273
getpgrp()                               = 25273
rt_sigaction(SIGCHLD, {0x807acd0, [], 0}, {SIG_DFL}, 8) = 0
rt_sigprocmask(SIG_BLOCK, NULL, [], 8)  = 0
open("/sbin/lilo", O_RDONLY|O_LARGEFILE) = 3
ioctl(3, SNDCTL_TMR_TIMEBASE or TCGETS, 0xbfeb38f8) = -1 ENOTTY (Inappropriate 
ioctl for device)
_llseek(3, 0, [0], SEEK_CUR)            = 0
read(3, "#!/bin/sh -e\n\n# if chroot.\nif [ "..., 80) = 80
_llseek(3, 0, [0], SEEK_SET)            = 0
getrlimit(RLIMIT_NOFILE, {rlim_cur=1024, rlim_max=1024}) = 0
dup2(3, 255)                            = 255
close(3)                                = 0
fcntl64(255, F_SETFD, FD_CLOEXEC)       = 0
fcntl64(255, F_GETFL)                   = 0x8000 (flags O_RDONLY|O_LARGEFILE)
fstat64(255, {st_mode=S_IFREG|0755, st_size=602, ...}) = 0
_llseek(255, 0, [0], SEEK_CUR)          = 0
brk(0x80fc000)                          = 0x80fc000
rt_sigprocmask(SIG_BLOCK, NULL, [], 8)  = 0
read(255, "#!/bin/sh -e\n\n# if chroot.\nif [ "..., 602) = 602
rt_sigprocmask(SIG_BLOCK, NULL, [], 8)  = 0
rt_sigprocmask(SIG_BLOCK, NULL, [], 8)  = 0
rt_sigprocmask(SIG_BLOCK, NULL, [], 8)  = 0
rt_sigprocmask(SIG_BLOCK, NULL, [], 8)  = 0
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
rt_sigprocmask(SIG_BLOCK, [INT CHLD], [], 8) = 0
clone(child_stack=0, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, 
child_tidptr=0xb7e1e708) = 25275
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
rt_sigprocmask(SIG_BLOCK, [CHLD], [], 8) = 0
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
rt_sigprocmask(SIG_BLOCK, [CHLD], [], 8) = 0
rt_sigaction(SIGINT, {0x807b920, [], 0}, {SIG_DFL}, 8) = 0
waitpid(-1, [{WIFEXITED(s) && WEXITSTATUS(s) == 1}], 0) = 25275
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
--- SIGCHLD (Child exited) @ 0 (0) ---
waitpid(-1, 0xbfeb2fdc, WNOHANG)        = -1 ECHILD (No child processes)
sigreturn()                             = ? (mask now [])
rt_sigaction(SIGINT, {SIG_DFL}, {0x807b920, [], 0}, 8) = 0
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
exit_group(1)                           = ?

LILO version 22.6.1, Copyright (C) 1992-1998 Werner Almesberger
Development beyond version 21 Copyright (C) 1999-2004 John Coffman
Released 17-Nov-2004, and compiled at 15:50:43 on Nov 17 2006
Debian GNU/Linux

Warning: LBA32 addressing assumed
Warning: COMPACT may conflict with LBA32 on some systems
raid_setup: dev=000D  rdev=0900
pf_hard_disk_scan: (8,0) /dev/sda
pf_hard_disk_scan: (8,1) /dev/sda1
lookup_dev:  number=0800
lookup_dev:  number=0800
pf:  dev=0800  id=0000000A  name=/dev/sda
geo_query_dev: device=0800
lookup_dev:  number=0800
lookup_dev:  number=0300
lookup_dev:  number=0340
exit geo_query_dev
bios_dev:  device 0800
lookup_dev:  number=0800
bios_dev:  masked device 0800, which is /dev/sda
bios_dev: geometry check found 0 matches
bios_dev: (0x81)  vol-ID=0001FF1A  *PT=08077136
bios_dev: (0x80)  vol-ID=0000000A  *PT=080770EE
bios_dev: PT match found 2 matches (0x80)
bios_dev: S/N match found 1 match (0x80)
pf_hard_disk_scan: (3,0) /dev/hda
pf_hard_disk_scan: (3,1) /dev/hda1
lookup_dev:  number=0300
lookup_dev:  number=0300
pf:  dev=0300  id=0001FF1A  name=/dev/hda
geo_query_dev: device=0300
lookup_dev:  number=0300
exit geo_query_dev
bios_dev:  device 0300
lookup_dev:  number=0300
bios_dev:  masked device 0300, which is /dev/hda
bios_dev: geometry check found 0 matches
bios_dev: (0x81)  vol-ID=0001FF1A  *PT=08077136
bios_dev: (0x80)  vol-ID=0000000A  *PT=080770EE
bios_dev: PT match found 2 matches (0x80)
bios_dev: S/N match found 1 match (0x81)
pf_hard_disk_scan: (9,0) /dev/md0
pf_hard_disk_scan: (253,0) /dev/dm-0
Caching device /dev/dm-0 (0xFD00)
pf_hard_disk_scan: (253,1) /dev/dm-1
Caching device /dev/dm-1 (0xFD01)
pf_hard_disk_scan: (253,2) /dev/dm-2
Caching device /dev/dm-2 (0xFD02)
pf_hard_disk_scan: (253,3) /dev/dm-3
Caching device /dev/dm-3 (0xFD03)
  0800  0000000A  /dev/sda
  0300  0001FF1A  /dev/hda
pf_hard_disk_scan: ndevs=2
  0300  0001FF1A  /dev/hda
  0800  0000000A  /dev/sda
Resolve invalid VolumeIDs
Resolve duplicate VolumeIDs
  0300  0001FF1A  /dev/hda
  0800  0000000A  /dev/sda
device codes (user assigned pf) = 0
device codes (user assigned) = 0
device codes (BIOS assigned) = 3
device codes (canonical) = 3
lookup_dev:  number=0900
RAID info:  nr=2, raid=2, active=2, working=2, failed=0, spare=0
md: RAIDset device 0 = 0x0301
lookup_dev:  number=0301
geo_get: device 0301, all=1
geo_query_dev: device=0301
lookup_dev:  number=0301
exit geo_query_dev
bios_dev:  device 0301
lookup_dev:  number=0300
bios_dev:  masked device 0300, which is /dev/hda
bios_dev: geometry check found 0 matches
bios_dev: (0x81)  vol-ID=0001FF1A  *PT=08077136
bios_dev: (0x80)  vol-ID=0000000A  *PT=080770EE
bios_dev: PT match found 2 matches (0x80)
bios_dev: S/N match found 1 match (0x81)
Device 0x0301: BIOS drive 0x81, 255 heads, 16383 cylinders,
               63 sectors. Partition offset: 63 sectors.
registering bios=0x81  device=0x0301
Using Volume ID 0001FF1A on bios 81
RAID scan: geo_get: returns geo->device = 0x81 for device 0301
disk->start = 63                raid_offset = 0 (00000000)
lookup_dev:  number=0300
Name: /dev/hda1  yields MBR: /dev/hda  (without primary partition check)
md: RAIDset device 1 = 0x0801
lookup_dev:  number=0801
geo_get: device 0801, all=1
geo_query_dev: device=0801
lookup_dev:  number=0801
exit geo_query_dev
bios_dev:  device 0801
lookup_dev:  number=0800
bios_dev:  masked device 0800, which is /dev/sda
bios_dev: geometry check found 0 matches
bios_dev: (0x81)  vol-ID=0001FF1A  *PT=08077136
bios_dev: (0x80)  vol-ID=0000000A  *PT=080770EE
bios_dev: PT match found 2 matches (0x80)
bios_dev: S/N match found 1 match (0x80)
Device 0x0801: BIOS drive 0x80, 255 heads, 12161 cylinders,
               63 sectors. Partition offset: 63 sectors.
registering bios=0x80  device=0x0801
Using Volume ID 0000000A on bios 80
RAID scan: geo_get: returns geo->device = 0x80 for device 0801
disk->start = 63                raid_offset = 0 (00000000)
lookup_dev:  number=0800
Name: /dev/sda1  yields MBR: /dev/sda  (without primary partition check)
Using BIOS device code 0x80 for RAID boot blocks
raid_setup returns offset = 00000000  ndisk = 2
 device-mapper: table ioctl failed: No such device or address
BIOS   VolumeID   Device
  80    0000000A    0800
  81    0001FF1A    0300
raid flags: at bsect_open  0x02
Reading boot sector from /dev/md0
geo_get: device 0900, all=1
Device 0x0301: BIOS drive 0x81, 255 heads, 16383 cylinders,
               63 sectors. Partition offset: 63 sectors.
lookup_dev:  number=FD00
Fatal: device-mapper: dm_task_run(DM_DEVICE_TABLE) failed

# /etc/lilo.conf - See: `lilo(8)' and `lilo.conf(5)',
# ---------------       `install-mbr(8)', `/usr/share/doc/lilo/',
#                       and `/usr/share/doc/mbr/'.

# +---------------------------------------------------------------+
# |                        !! Reminder !!                         |
# |                                                               |
# | Don't forget to run `lilo' after you make changes to this     |
# | conffile, `/boot/bootmess.txt' (if you have created it), or   |
# | install a new kernel.  The computer will most likely fail to  |
# | boot if a kernel-image post-install script or you don't       |
# | remember to run `lilo'.                                       |
# |                                                               |
# +---------------------------------------------------------------+

# Specifies the boot device.  This is where Lilo installs its boot
# block.  It can be either a partition, or the raw device, in which
# case it installs in the MBR, and will overwrite the current MBR.
#
boot=/dev/md0

# Specifies the device that should be mounted as root. (`/')
#
root=/dev/mapper/system-root

# This option may be needed for some software RAID installs.
#
raid-extra-boot=mbr-only

# Enable map compaction:
# Tries to merge read requests for adjacent sectors into a single
# read request. This drastically reduces load time and keeps the
# map smaller.  Using `compact' is especially recommended when
# booting from a floppy disk.  It is disabled here by default
# because it doesn't always work.
#
compact

# Installs the specified file as the new boot sector
# You have the choice between: text, bmp, and menu
# Look in lilo.conf(5) manpage for details
#
install=bmp

bitmap=/boot/coffee.bmp

# Specifies the location of the map file
#
map=/boot/map

# You can set a password here, and uncomment the `restricted' lines
# in the image definitions below to make it so that a password must
# be typed to boot anything but a default configuration.  If a
# command line is given, other than one specified by an `append'
# statement in `lilo.conf', the password will be required, but a
# standard default boot will not require one.
#
# This will, for instance, prevent anyone with access to the
# console from booting with something like `Linux init=/bin/sh',
# and thus becoming `root' without proper authorization.
#
# Note that if you really need this type of security, you will
# likely also want to use `install-mbr' to reconfigure the MBR
# program, as well as set up your BIOS to disallow booting from
# removable disk or CD-ROM, then put a password on getting into the
# BIOS configuration as well.  Please RTFM `install-mbr(8)'.
#
# password=tatercounter2000

# Specifies the number of deciseconds (0.1 seconds) LILO should
# wait before booting the first image.
#
delay=20

# You can put a customized boot message up if you like.  If you use
# `prompt', and this computer may need to reboot unattended, you
# must specify a `timeout', or it will sit there forever waiting
# for a keypress.  `single-key' goes with the `alias' lines in the
# `image' configurations below.  eg: You can press `1' to boot
# `Linux', `2' to boot `LinuxOLD', if you uncomment the `alias'.
#
# message=/boot/bootmess.txt
#       prompt
#       delay=100
#       timeout=100

# Specifies the VGA text mode at boot time. (normal, extended, ask, <mode>)
#
# vga=ask
# vga=9
#


# Kernel command line options that apply to all installed images go
# here.  See: The `boot-prompt-HOWTO' and `kernel-parameters.txt' in
# the Linux kernel `Documentation' directory.
#
append="resume=/dev/system/swap"
 
# If you used a serial console to install Debian, this option should be
# enabled by default.
# serial=

#
# Boot up Linux by default.
#
default=Linux

image=/vmlinuz
        label=Linux
        read-only
#       restricted
#       alias=1

        initrd=/initrd.img

image=/vmlinuz.old
        label=LinuxOLD
        read-only
        optional
#       restricted
#       alias=2

        initrd=/initrd.img.old


# If you have another OS on this machine to boot, you can uncomment the
# following lines, changing the device name on the `other' line to
# where your other OS' partition is.
#
# other=/dev/hda4
#       label=HURD
#       restricted
#       alias=3

Reply via email to