Craig White wrote:
On Sat, 2009-01-17 at 17:57 -0600, Roger Heflin wrote:
M. Fioretti wrote:
Greetings,
My motherboard, on which I was running F9 x86_64 off one SATA drive, died.
I bought a new motherboard with a new cpu of the same type (AMD) and
connected the hard disk with F9 to it. Now Grub does start with these
options:
kernel/vmlinuz/-2.6.27-etc ro root=/dev/sda3 rhgb mem=2048M enforcing 0
but the process stops at a certain point, saying:
Trying to resume from /dev/sda2
Unable to access resume device (/dev/sda2)
Creating root device
Mounting root filesystem
Mount: error mounting /dev/root on /sysroot as ext3: no such file or
directory
IIRC I had these partitions:
/boot /dev/sda1
swap /dev/sda2
/ /dev/sda3
/home /sda5
So (also from some research I made before posting) this means that on the
new board the kernel cannot find the swap anymore, but why? I mean, if it
boots, as it does, it means that it has found the device corresponding to
the hard drive, isn't it?
It means that *grub* has found the device using *bios* calls. Linux
does not use *bios* calls. And Linux is not find *any* partitions at
all, even the boot one. Grub through bios calls loads vmlinuz and
initrd into memory and then starts it up, which will find through
Linux drivers everything needed to actually boot.
The base problem is the new MB likely has a *different* sata device
controlling the drives, and the driver for that is not in the initrd
used to boot Linux, so Linux cannot find any disk devices.
The typical fix is to boot a rescue, figure out from the rescue what
driver is needed and update modprobe.conf and rebuilt the initial ram
disk with that driver, and try again.
----
My only question to that is that it actually loaded the kernel
from /boot before things went awry.
*Grub* loaded the kernel/initrd from /boot using *bios* calls, it only
knows enough to find the kernel/initrd files, it knows very little
beyond that and it turns over everything to Linux.
Linux does not use *bios* calls because they have speed and a number
of other limitations (16 bit only is a big issue), Linux uses it's own
drivers, and if you have the wrong one this is what happens.
Yes, I would agree that booting something like a live cd or rescue disk,
checking the loaded modules and rebuilding initrd makes sense but I'm
not convinced that it would work based upon the fact that it does
read /boot (/dev/sda1).
Grub is not Linux. Grub can fail to read devices that Linux can
read, and Linux can fail to read devices that grub supports through
bios calls.
I typically rebuilt the initrd before changing MB's but that is not an
option if the MB is dead. And sometimes I get the wrong driver and
have it do exactly as he is seeing and have to re-do it again with the
proper driver.
Craig
--
fedora-list mailing list
fedora-list@xxxxxxxxxx
To unsubscribe: https://www.redhat.com/mailman/listinfo/fedora-list
Guidelines: http://fedoraproject.org/wiki/Communicate/MailingListGuidelines