• Debian Update: Grub-Probleme

    So, da war es mal wieder: das Update des Grauens, das man „mal schnell“ anstoßen wollte und das einem dann den Sonntagnachmittag versaut. Bei mir war’s das Update auf Lenny 6.0.3. Als mich apt-get nach den Platten gefragt hat, auf denen ich Grub installieren möchte, wurde ich schon stutzig. sda, sdb, md1 und md2 standen zur Auswahl – und es kam, wie es kommen musste: egal, welche ich ausgewählt habe, kam nur dieses Gemopper:

    /usr/sbin/grub-setup: warn: This msdos-style partition label has no post-MBR gap; 
        embedding won't be possible!.
    /usr/sbin/grub-setup: error: embedding is not possible, but this is required when 
        the root device is on a RAID array or LVM volume.

    Na toll. Leider spuckt Tante Google hierzu nicht sonderlich viel zielführendes aus, also hier mein kleines How-To.

    Warnhinweis: bitte nur nachmachen, wenn man weiß, was man tut. Alle Kommandos, die hier stehen, eignen sich prima zum kaputtkonfigurieren des GANZEN Systems.

    Das Szenario, das ich hatte, war dies: RAID-1 für /boot und / (und für Swap. Ich weiß, das ist Kappes. Also ändern wir das gleich, während wir dran sind). Hier meine Konfig:

    cat /proc/mdstat 
    Personalities : [raid0] [raid1] [raid6] [raid5] [raid4] 
    md2 : active raid1 sda3[0] sdb3[1]
          726266432 blocks [2/2] [UU]
    
    md1 : active raid1 sda2[0] sdb2[1]
          2104448 blocks [2/2] [UU]
    
    md0 : active raid1 sda1[0] sdb1[1]
          4200896 blocks [2/2] [UU]

    Die Einzelplatten sind gleich konfiguriert, und zwar so:

    I/O size (minimum/optimal): 512 bytes / 512 bytes
    Disk identifier: 0x0004be32
    
       Device Boot      Start         End      Blocks   Id  System
    /dev/sda1               1     8401994     4200997   fd  Linux raid autodetect
    /dev/sda2         8401995    12611024     2104515   fd  Linux raid autodetect
    /dev/sda3        12611025  1465144064   726266520   fd  Linux raid autodetect

    …und die „1“ beim ersten Partitions-Start ist auch gleich das Problemkind. Allerdings hatte ich richtig Massel: die sda1 und sdb1 ergeben md0, und die ist bei mir als Swap eingetragen. Also müssen wir die umbauen und so einrichten, dass sie „höher“ als am Block 1 anfängt. Let’s go:

    swapoff -a
    mdadm --stop /dev/md0
    fdisk /dev/sda

    …und die Partition 1 umbasteln: löschen (d, 1), neu anlegen (n, p, 1, 63, [Maximalgröße hier eingeben]), Typ ändern (t, 1, fd), schreiben: w. Wer mag, tut das gleiche auf sdb (aus Gründen der Ästhetik, damit die Partitionen gleich groß sind zum Beispiel).  Dann bauen wir das RAID wieder zusammen, dieses Mal als Raid-0 für den Swap (warum auch nicht?):

    mdadm --create /dev/md0 --level=0 --raid-devices=2 /dev/sda1 /dev/sdb1

    Und: Energie, Scotty:

    mkswap /dev/md0

    nebst einem

    swapon -a

    So, dann bitte nicht vergessen, Grub wieder draufzubügeln – dieses Mal hoffentlich ohne Fehlermeldung. Sonst wird der nächste Reboot etwas hässlich… 😉

    Danke an die Jungs aus dem Hetzner-Forum – die hatten die Lösung (allerdings halt nicht zu Googeln…)

13 Responsesso far.

  1. lz sagt:

    was für ein zufall… drei tage nach diesem posting lauf ich in genau das gleiche problem und kann es genau so lösen. eigenartig nur, dass ich diesen stress nur bei einem von 14 mehr oder weniger gleich konfigurierten hosts hatte. nicht dass mich das so interessieren würde, dass ich ich dem jetzt nachgehe… ich bin froh, dass ich das schlamassel in weniger als einer viertelstunde beseitigen konnte.
    vielen dank!

  2. lz sagt:

    achja, bei mir war noch ein „partprobe /dev/sda /dev/sdb“ nach dem partitionieren nötig, damit der kernel den neuen partitiontable mitkriegt.

  3. Joerg sagt:

    Prima, danke für die Ergänzung! Und freut mich, wenn ich jemand anders das Rumgesuche ersparen konnte… 😉

  4. ra sagt:

    Danke auch von mir.

    EIn Hinweis noch: Es ist ev. nötig die /etc/mdadm/mdadm.conf noch anzupassen damit das neu gemachte Raid auch beim booten zusammengebaut wrid.
    Also mdadm –detail –scan >> /etc/mdadm/mdadm.conf, dann editieren und die alten ARRAY …. Zeilen entfernen.

  5. KoSa sagt:

    Danke für die Anleitung; hatte nach dem dist-upgrade auf squeeze genau das Problem.

  6. mt sagt:

    Da sage ich auch einfach mal:

    DANKE!

    Diese Anleitung samt Kommentaren (insbesondere bzgl. mdadm.conf) haben mir gerade den Feierabend gerettet.

    Update durch und jetzt ein Bierchen drauf. 😉

  7. dawolf sagt:

    Vielen Dank! Nach 2 Stunden rumsuchen hat mir dieser Eintrag einen kompletten reinstall erspart und einiges an Nerven. Der Abend ist gerettet 🙂

  8. Joerg sagt:

    Na, so soll es doch sein. Reicht ja, wenn sich einer von uns die Mühe gemacht hat… 😉

  9. Jens sagt:

    Danke,

    das war gerade sehr hilfreich. 😉

    Viele Grüße aus Hamburg,
    Jens

  10. brokenadmin sagt:

    this is gold
    ffs distupgrade didnt even bother to check such basics
    argh

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.