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