Grub2 Trouble

Ich habe auf meinem Rootserver ein Software Raid1 mit LVM2 Volumes. Nach einem Update von Kernel und Grub2 wollte ich Grub2 wie gewohnt auf den Partitionen /dev/sda und /dev/sdb via grub2-install einrichten aber siehe da, nichts da!

/usr/sbin/grub2-bios-setup: warning: your core.img is unusually large.  It won't fit in the embedding area.
/usr/sbin/grub2-bios-setup: error: embedding is not possible, but this is required for RAID and LVM install.

Kacke! Bing (ja ich nutze Bing!) und Google haben dann doch ein Ergebnis gefunden was hilft!

http://blog.ip.v4.me.uk/grub2-embedding-is-not-possible/ <– Dude you saved my night!

Als wie verhindert man die Fehlermeldung und bekommt Grub2 dazu sich zu installieren? Erstmal ins Rescuesystem und LVM2 stoppen und Softraid stoppen. Folgende Befehle helfen dabei

# lvchange -an /dev/vg/customer
# lvchange -an /dev/vg/portage
# swapoff /dev/md2
# mdadm --stop /dev/md1
# mdadm --stop /dev/md2
# mdadm --stop /dev/md3
# mdadm --stop /dev/md4

So jetzt bleiben uns zwei Möglichkeiten: Entwerder wir verkleinern die erste Partiton dadurch, dass wir den Startsektor späterbeginnen lassen oder wir belassen sie gleich groß und opfern Platz der 2ten Partition (/dev/md2 was bei mir Swap ist). Wichtig ist dennoch Backup der Partition!! Tool der Wahl ist sfdisk

# sfdisk -d /dev/sda > diskpart.txt
# vim diskpart.txt

# partition table of /dev/sda
unit: sectors

/dev/sda1 : start=       63, size=   192717, Id=fd, bootable
/dev/sda2 : start=   192780, size=  9767520, Id=fd
/dev/sda3 : start=  9960300, size= 19535040, Id=fd
/dev/sda4 : start= 29495340, size=1435648725, Id=fd

Die Ausgabe muss nun geändert werden, so das der Platz vor der ersten Partition zunimmt und Grub2 embedded werden kann.

# partition table of /dev/sda
unit: sectors

/dev/sda1 : start=     2048, size=   192717, Id=fd, bootable
/dev/sda2 : start=   194765, size=  9765535, Id=fd
/dev/sda3 : start=  9960300, size= 19535040, Id=fd
/dev/sda4 : start= 29495340, size=1435648725, Id=fd
  • sda1 startet nun bei 2048 (+1985)
  • sda2 startet bei 194765 (+1985)
  • sda2 Größe (size) reduziert sich auf 9765535 (-1985)

Jetzt hoffen das alles klappt und mit folgenden Befehlen wieder alles hübsch machen

cat diskpart.txt | sfdisk /dev/sda
# sda Partitionstabelle nach sdb spiegeln
sfdisk -d /dev/sda | sfdisk /dev/sdb
# Raid Laufwerke suchen und neue erstellen
mdadm --assemle --scan
mdadm --create /dev/md1 --level=1 --metadata=0.90 --raid-devices=2 /dev/sda1 /dev/sdb1 
mdadm --create /dev/md2 --level=1 --metadata=0.90 --raid-devices=2 /dev/sda2 /dev/sdb2
lvscan --all
mkfs.ext2 /dev/md1
# Backup zurückspielen
mkswap /dev/md2
# Ab ins Chroot zum Grub2 installieren

Voila, Syncen abwarten, Grub instalieren und neustarten. Für den Grund des Fehlers können am besten folgende Links konsultiert werden

  • https://wiki.archlinux.org/index.php/Grub#Master_Boot_Record_.28MBR.29_specific_instructions
  • https://bugs.archlinux.org/task/24103

 

Schreibe einen Kommentar