FC10 does not boot when HDD moved to another machine

Frank Millman frank at chagford.com
Tue Dec 23 09:11:40 UTC 2008


Mikkel L. Ellertson wrote:
> Frank Millman wrote:
> > 
> > I did a search for '*grub*' on my system. It found a few files. The 
> > following could be relevant -
> > 
> > 1. /etc/sysconfig/grub
> >     boot=/dev/sda
> >     forcelba=0
> > 
> > 2. /sbin/grub-install
> >     I ran it, but it asked for an install_device. I prefer not to 
> > guess, so I did not try any further.
> > 
> > 
> > For the record, 'ls /boot' looks like this -
> > 
> > config-2.6.27.7-134.fc10.i686
> > initrd-2.6.27.7-134.fc10.i686.img
> > System.map-2.6.27.7-134.fc10.i686
> > vmlinuz-2.6.27.7-134.fc10.i686
> > 
> > If I type 'umount /boot', it says '/boot: not mounted'. Is that 
> > expected? As mentioned in my reply to Paulo, /etc/fstab has 
> changed. 
> > It used to contain an entry for /boot, but now it does not. 
> I am not 
> > sure when it changed, but I think it was when I selected 
> > Install/Upgrade on the second machine. I got a warning 
> message and did 
> > not proceed, but a couple of things seem to have changed after that.
> > 
> OK - this makes things interesting. Grub know where to find 
> the /boot partition, but booting in the rescue mode does not find it.
> (It uses /etc/fstab to mount your other partitions.) The 
> reason you have files in /boot is because they were written 
> there when it was not being used as a mount point. If you get 
> the /boot partition mounted on /boot, you will no longer see them.
> 
> I suspect that what you need to do is add the
> 
> UUID=b6c62c5a-0afb-4258-a726-6a377a6f3b9e  /boot ext3 defaults  1  2
> 
> line back into /etc/fstab, and then "mount /boot".
> 
> If that works, then you will want to unmount it again, and 
> copy the file that will be there to a temporary location, 
> remount /boot, and copy them back. After that, you should be 
> able to move the drive to the second machine, boot from the 
> rescue disk, and have the full /boot tree. You can then build 
> the initrd and make the changes in the Grub menu we talked about.
> 

BRILLIANT!

Thank you, Mikkel. I followed your instructions, and it worked exactly as
you predicted.

There were a couple of minor hurdles to overcome. I will document them here
in case anyone else tries the same thing.

I had to make the following changes to /etc/grub.conf -

Before -
  timeout=0
  hiddenmenu

After -
  timeout=10
  #hiddenmenu

Then I could see the menu and select the alternative boot image.

After moving the hard drive to the second machine and booting in rescue
mode, /boot is *not* mounted. You have to type 'mount /boot' first.
Otherwise mkinitrd writes the new image to the unmounted /boot point, and it
will not be detected on a reboot.

Rebooting on the new machine appeared to hang, but then I realised it was
because the onboard graphics card is different. Luckily I could type Alt+F2
and get a text login screen, change /etc/inittab default from 5 to 3, and
reboot in text mode. Then I could configure X.

When booting the new machine, 'Starting udev' takes about 40 seconds. On the
original machine it takes 5 seconds. I don't know if there is anything one
can do about that.

I have now moved the drive back to the original machine, so I did not test
it thoroughly in the second machine, but as far as I could tell everything
was working fine.

Thank you very much indeed for all the assistance.

Regards

Frank




More information about the fedora-list mailing list