Re: Unable to boot into CompactFlash card - card not found by initrd
Hi,
Thus spoketh Scott Ferguson <prettyfly.productions@gmail.com>
unto us on Wed, 18 Jan 2012 22:10:40 +1100:
(...)
>
> set root='(hd1,msdos1)'
>
> hd0 is the first hard drive (where /boot lives)
I think root=(...) should not point to / but to grub's root, at least the
page you linked suggests this:
"GRUB uses GRUB's root device implicitly. So if you set the root device
to, say, ‘(hd1,1)’ by the command ‘set root=(hd1,1)’ (see set),
then /boot/kernel is the same as (hd1,1)/boot/kernel."
Anyway, changing this line does not have any effect, apparently it is
overridden by
search (...)--fs-uuid --set 7329bb28-71ea-4060-96a1-accaeef453f5
which points to (hd0,msdos1).
Of course I stole the menu entry syntax from the debian installer and it
looks like for some reason they added some redundance here, I tried and
actually I can omit either the "set root..." line or the "search..."
line, but in the latter case I must set root='(hd0,msdos1)' or grub will
try to load the kernel from the CF card and so fail because the BIOS
don't know about it.
(...)
>
> I regret I don't have the time to check the above for you at the moment
> (CF card is in use). I'm not sure if the / in front of the initrd and
> kernel are necessary. (there paths are supposed to be relative to the
> /boot directory). So try without them as well.
Hmm, as long as it finds both kernel and initrd I think it can't be too
bad ;)
> You still get problems we can try boot delays incase it takes too long
> to make the device ready (pcmcia lag).
I have tried before to add rootdelay=30 which is suggested often in these
cases, but without success. And, if the problem is caused by a pcmcia
delay, shouldn't then the card be available after a few minutes in the
rescue shell? If so, I can confirm that at least 15 min. is not enough ;)
Now, as grub boots the kernel ok and tries to mount the right partition
as "/", I am afraid the problem is somewhere else than in the grub menu
entry :(
I have been looking into the udev rules files in the intrd and found the
following in 60-persistent-storage.rules :
# skip removable ide devices, because open(2) on them causes an events
# loop
KERNEL=="hd*[!0-9]", ATTR{removable}=="1", DRIVERS=="ide-cs|ide-floppy", \
GOTO="persistent_storage_end"
KERNEL=="hd*[0-9]", ATTRS{removable}=="1", \
GOTO="persistent_storage_end"
I even tried uncommenting this, but of course it was not that easy ;)
Unfortunately good docs on writing udev rules are even much harder to
find than good grub docs ;)
Thanks for your efforts, I really appreciate that!
Michael
.-.. .. ...- . .-.. --- -. --. .- -. -.. .--. .-. --- ... .--. . .-.
Murder is contrary to the laws of man and God.
-- M-5 Computer, "The Ultimate Computer", stardate 4731.3
Reply to: