thinkretro.de

Mär 06, 2016

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 :-)