Grub-Bootloader in einer chroot-Umgebung wiederherstellen
Es passiert irgendwie immer wieder. Ich habe jüngst auf einer Partition Windows 7 installiert und irgendwie wurde (mal wieder) der GRUB Bootloader überschrieben.
Um das Ganze wieder zu reparieren besorgt man sich zunächst das entsprechende archlinux-iso und schreibt dieses auf einen USB Stick und bootet dan von diesem USB Stick. Das Archlinux-Image nehme ich deshalb, da es praktischerweise sowohl für x86_32 als auch für x86_64 Systeme passt, man kann nämlich nicht mit einem 32-bit Linux in eine 64-bit Chroot-Umgebung wechseln. Welche Laufwerke und Partitionen vorhanden sind erhält man mittels:
$: lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 111,8G 0 disk
├─sda1 8:1 0 72,7G 0 part
└─sda4 8:4 0 39,1G 0 part
sdb 8:16 0 232,9G 0 disk
├─sdb1 8:17 0 100M 0 part
└─sdb2 8:18 0 232,8G 0 part
sdc 8:32 0 596,2G 0 disk
├─sdc1 8:33 0 14,9G 0 part
├─sdc2 8:34 0 156,3G 0 part
└─sdc3 8:35 0 425G 0 part
sdd 8:48 1 1007M 0 disk
└─sdd1 8:49 1 1005M 0 part
sr0 11:0 1 1024M 0 rom
In meinem Fall ist /dev/sda4 meine Linux-Partition. Nun kann man die chroot-Umgebung vorbereiten:
#: mkdir mnt
#: mount /dev/sda4 mnt/
#: mount -t proc proc mnt/proc
#: mount -t sysfs sys mnt/sys
#: mount -o bind /dev mnt/dev
Als nächstes kann die Chroot-Umgebung betreten werden und grub auf /dev/sda installiert werden:
#: chroot mnt/ /bin/bash
#: pacman -S grub
#: grub-install /dev/sda
#: grub-mkconfig -o /boot/grub/grub.cfg
Danach die Chroot Umgebung verlassen und die mounts wieder auflösen:
#: exit
#: umount mnt/dev
#: umount mnt/sys
#: umount mnt/proc
#: umount mnt/
#: reboot
Das war's. Wie man sieht eine Sache von ein paar Minuten :-)