[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#357538: immediate cause of problem diagnosed



hello ross,

adding the evms maintainer on cc.

On Mon, 20 Mar 2006, Ross Boylan wrote:

> On Sun, 2006-03-19 at 19:35 -0800, Ross Boylan wrote:
> > I've looked at the initramfs image and tried to trace through
> > execution by inspection (I'm not at the machine).  I may be off base,
> > but here's what I noticed.  In short, it looks as if the root
> > parameter of /dev/evms/newroot in lilo.conf is not making it to the
> > scripts that run off the ramdisk.
> > 
> 
> I've verified this at run (or boot) time. /proc/cmdline has "root=fe06"
> not the "root=/dev/evms/newroot" from lilo.conf.  As a result, the evms
> scripts don't think evms is in play, and never run evms_activate. lilo
> has resolved the partition name to a BIOS address (I guess); that's fine
> for lilo, but not great for others.

the major fe is the old evms major nr. afaik evms switched to newer 117.
no idea if the libdevmapper patch from lilo got updated in debian?
 
> In general, I don't think there's any guarantee that the root= option
> will resolve to anything at the time lilo is run; it might only be
> visible after the evms_activate in the new environment.
> 
> parse_numeric() has code that deals with this case, but it doesn't solve
> the evms problem.

parse_numeric() is rudimentary lilo support of initramfs-tools.
it should work now for most cases of usual block devices.
my small test programm show that it is not able to parse
correctly "fe" it translates that to 254 instead of 63

--
#/bin/dash
test () {
        echo "$1"
        minora=$((0x${1#??}))
        minorb=$((0x${1#?}))
        major=$((0x${1%??}))
        echo "$major $minora $minorb"
}
# broken major
test 'fe06'
# works
test '341'
test '2206'
--


 
> I'm less sure what the solution is, or even who is misbehaving.  It
> looks like a lilo problem.  Possible solutions include
> 1. don't use lilo
grub gets much more testing due beeing the default bootloader these days.

> 2. use lilo but pass explicit kernel options with append=.  I'm not sure
> if that would work.
> 3. change lilo to preserve the value given to it in the root= parameter,
> at least with initrd.
> 4. work around this in initramfs-tools, or maybe in evms.
the small compat stuff in initramfs-tools should be fixed.
patches welcome :)

> 5. other.
evms recommends/depends grub?
 
> P.S. I had a lot of unsuccessful attempts to build my own initrd to
> diagnose the problem, and ultimately hacked /usr/share/initramfs-tools/
> to get the value of /proc/cmdline output.  Then I ran update-initramfs.
> Any pointers on this would be great. 

you can pass break on the kernel append line to drop at special moments
in the boot to check. i'm not sure i understood your question?

regards and sorry for the late reply.

-- 
maks



Reply to: