I borked my primary boot device’s grub installation last week because I wanted to start Windows 7 to play some LAN games. Windows 7 wouldn’t boot from grub, so I thought I’d install a new grub version. I reinstalled grub before regenerating the config file and rebooted. Too bad the Arch packages don’t handle that for you, as I was used to in Debian. This caused the grub to fail booting both Windows and Arch, so I resorted to changing my primary boot device in the BIOS.
Now, one week later, I decided to fix it, and as I can never recall by heart what the steps to take are, here’s a recipe, pretty much for my own convenience.
I’m running Arch Linux currently, but the same principle should work for any Linux flavour you might be using.
- Boot from whatever live CD you have lying around
- Login in a shell
- Create a local mount point for your hard disk’s root device (eg
Mount the root partition onto that mount point
# mount /dev/sda1 /mnt/root
Mount the device system
# mount -o bind /dev /mnt/root/dev
Mount the proc file system
# mount -t proc none /mnt/root/proc
# chroot /mnt/root
Make sure the boot partition is mounted, if you have one.
# mount /boot
Regenerate grub config
# grub-mkconfig -o /boot/grub/grub.cfg
# grub-install /dev/sda
Reboot and enjoy.
# shutdown -r now
Of course, you need to substitute the device names with your own.