You are not logged in.
After a good deal of experimentation, I think I'm finally ready to completely make the move from Fedora to Arch. Only one obstacle stands in my way - getting my existing GRUB installation to point at my Arch drive instead of my Fedora drive. I can't find any examples of how to do this particular switch, so I would really appreciate the help of a GRUB guru or two here.
Here is my existing drive configuration, as seen by Arch:
/dev/sda is my Windows XP drive. XP is on sda1, with the entire disk devoted to this partition and formatted as NTFS. GRUB is installed on the MBR of this drive.
/dev/sdb is my Arch drive. Here is the fstab file:
#
# /etc/fstab: static file system information
#
# <file system> <dir> <type> <options> <dump> <pass>
none /dev/pts devpts defaults 0 0
none /dev/shm tmpfs defaults 0 0
# /dev/cdrom /mnt/cdrom iso9660 ro,user,noauto,unhide 0 0
# /dev/dvd /mnt/dvd udf ro,user,noauto,unhide 0 0
/dev/fd0 /mnt/fd0 vfat user,noauto 0 0
/dev/sdb2 / ext3 defaults 0 1
/dev/sdb1 /boot ext3 defaults 0 2
/dev/sdb3 swap swap defaults 0 0
/dev/sdb5 /usr ext3 defaults 0 2
/dev/sdb6 /tmp ext3 defaults 0 2
/dev/sdb7 /home ext3 defaults 0 2
/dev/sda1 /mnt/FNORD_101 ntfs-3g defaults,locale=en_US.UTF-8 0 0
/dev/sdc is my old Fedora drive. The /boot partition is on /dev/sdc1, while the / partition is on /dev/sdc2. The GRUB installation in the MBR of /dev/sda reads the grub.conf menu.lst file from this drive, which is softlinked to by menu.lst. Here is my current grub.conf:
# grub.conf generated by anaconda
#
# Note that you do not have to rerun grub after making changes to this file
# NOTICE: You have a /boot partition. This means that
# all kernel and initrd paths are relative to /boot/, eg.
# root (hd2,0)
# kernel /vmlinuz-version ro root=/dev/sdb2
# initrd /initrd-version.img
#boot=/dev/sdc
default=0
timeout=10
splashimage=(hd2,0)/grub/splash.xpm.gz
hiddenmenu
title Fedora (2.6.23.14-115.fc8)
root (hd2,0)
kernel /vmlinuz-2.6.23.14-115.fc8 ro root=/dev/sdb2 rhgb quiet
initrd /initrd-2.6.23.14-115.fc8.img
title Fedora (2.6.23.14-107.fc8)
root (hd2,0)
kernel /vmlinuz-2.6.23.14-107.fc8 ro root=/dev/sdb2 rhgb quiet
initrd /initrd-2.6.23.14-107.fc8.img
title Arch Linux (Main)
root (hd1,0)
kernel /vmlinuz26 root=/dev/sdb2 ro vga=775
initrd /kernel26.img
title Memtest86+ (1.70)
root (hd2,0)
kernel /memtest86+-1.70 ro root=/dev/sdb2 rhgb quiet
title Windows XP (bleaugh)
rootnoverify (hd0,0)
chainloader +1
In essence, I want to keep GRUB on the MBR of /dev/sda (hd0,0) and just re-point it so that it looks at /dev/sdb (hd1,0) instead of /dev/sdc (hd2,0) for the files it needs. What exactly do I need to do in order to accomplish this?
Thank you!
Offline
You have to reinstall grub.
Run grub from your arch install and type:
root (hd1,0)
setup (hd0)
root (hdX, Y) : Tell grub to look for the necessary files at disk X partition Y
setup (hdX) : Install grub to the MBR of disk X
Last edited by DkSoul (2008-02-22 15:28:23)
Offline
Offline
title Arch Linux (Main)
root (hd1,0)
kernel /vmlinuz26 root=/dev/sdb2 ro vga=775
initrd /kernel26.img
this does not work???
Offline
title Arch Linux (Main) root (hd1,0) kernel /vmlinuz26 root=/dev/sdb2 ro vga=775 initrd /kernel26.img
this does not work???
No, because grub is pointing to /dev/sdc1 (hd2,0) and he wants it to point to /dev/sdb1 (hd1,0)
Offline
You have to reinstall grub.
Run grub from your arch install and type:root (hd1,0) setup (hd0)
root (hdX, Y) : Tell grub to look for the necessary files at disk X partition Y
setup (hdX) : Install grub to the MBR of disk X
This is what I eventually needed, but I had to do a couple of other things on top of it all.
To begin with, I had to copy the files from /usr/lib/grub/i386-pc into /boot/grub so that grub could find what it needed. The only file that was originally in the /boot/grub directory on my Arch drive was a menu.lst file. I'm guessing that's because I didn't install a bootloader when I installed Arch (I just edited my existing Fedora grub setup).
I also had to mount more than what is shown in the wiki for reinstalling grub. The wiki doesn't take into account the possibility of someone's /boot and/or /usr directories being on their own partitions. I had to explicitly mount these before doing the chroot.
One other note, for anyone using a dual boot with WinXP and using NTFS-3G - think twice before keeping the "makeactive" line in your Windows boot section. The default menu.lst contains this line, but if you boot into XP with it present and then boot back into Arch, NTFS-3G will give you an error saying that the NTFS drive is in use and will refuse to mount it. I had to remove the "makeactive" line, boot back into XP, and then boot back into Arch again before NTFS-3G would mount the NTFS drive.
A final caveat - once I got grub pointed in the right direction, I tried replacing it with grub-gfx. A pacman install of grub-gfx doesn't update the stage files in your /boot/grub directory. I had to manually copy the new contents of /usr/lib/grub/i386-pc into /boot/grub once again before grub would use a bootsplash file.
Thanks for the help! I hope the above proves helpful in return.
Offline