Thu 09 Sep 2004 12:46:14 PM UTC, original submission:
On a Red Hat 9.0 GNU/Linux system, I'm running grub 0.93. /boot is on the same partition as the root partition. My original root partition was the ext3 partition (hd0,7), and I can still boot that configuration without a problem.
I want to move my root partition to (hd1,0). I used fdisk to partition and format (hd1,0) as ext3. To copy the data from (hd0,7) to (hd1,0), I booted a Knoppix CD, mounted the drives at /mnt/old and /mnt/new, and ran
cp -avx /mnt/old/* /mnt/new/
grub.conf now looks like this on both partitions (at /boot/grub/grub.conf):
default=0
timeout=10
splashimage=(hd1,0)/boot/grub/splash.xpm.gz
title Red Hat Linux (2.4.20-8)
root (hd0,7)
kernel /boot/vmlinuz-2.4.20-8 ro root=/dev/hda8
initrd /boot/initrd-2.4.20-8.img
title Red Hat Linux (2.4.20-8 new hard drive)
root (hd1,0)
kernel /boot/vmlinuz-2.4.20-8 ro root=/dev/hdb1
initrd /boot/initrd-2.4.20-8.img
If I boot using the original partition (hd0,7), then I can mount (hd1,0) at, for example, /newroot. Then I can see /newroot/boot/vmlinuz-2.4.20-8. I mounted (hd1,0) this way and ran rdev to switch the kernel's root device to /dev/hdb1.
Now, I reboot. If I select the original configuration, the system boots fine. If I select the new, (hd1,0) configuration, grub stops with error 15 : File not found, indicating that it cannot find /boot/vmlinuz-2.4.20-8.
I rebooted and dropped to the grub command prompt. If I type
kernel (hd1,0)/boot/vmlinuz-
and press tab, grub tab-completes to
kernel (hd1,0)/boot/vmlinuz-2.4.18-3.
If I tab-complete at (hd1,0)/boot/, then all of the files that show as 2.4.20-8 when the partition is mounted (under Knoppix, for example) show up as 2.4.18-3.
I then tried modifying the config file so that the second configuration read
title Red Hat Linux (2.4.18-3 new hard drive)
root (hd1,0)
kernel /boot/vmlinuz-2.4.18-3 ro root=/dev/hdb1
initrd /boot/initrd-2.4.18-3.img
When I save that to grub.conf and reboot, I can select the new hard drive configuration. Grub boot and apparently finds the kernel file. Of course, then the system has other problems because I have no /lib/modules-2.4.18-3, for example. (It boots to a login prompt, but not all of my modules are loaded correctly.)
My big question is how does grub determine the filename? I just don't even know what to look at next. Why is grub seeing a different filename from the one reported by the OS when I mount the partition under GNU/Linux?
|