Artikelformat

Thinkpad X121e: BIOS Update und Probleme mit GRUB

Vor drei Wochen kam ich auf die geistreiche Idee, das BIOS von meinem Thinkpad X121e zu updaten. Ich hatte irgendwo gelesen, dass bei jemanden die Probleme mit „Suspend“ (Standby) dadurch zurückgegangen sind.  Da mein Laptop nicht mehr aus dem Suspend aufwacht, wollte ich es wagen. Und ja, es war ein Fehler! Aber gehen wir mal chronologisch vor:

BIOS Update

Ich bin nach der Anleitung vom deutschen Thinkwiki vorgegangen und habe mir die Bios-Update-CD gezogen, GRUB4DOS auf ein USB Stick gepackt, konfiguriert, damit gebootet und das BIOS geupdated. Danach habe ich sicherheitshalber die BIOS-Einstellungen auf Standard zurückgesetzt und wollte dann booten.

Und was musste passieren? Er bootete nicht mehr – bzw. kam ich nur bis zur GRUB 2 Rescue Console.

Hintergrund

Bevor ich erkläre, was ich alles probiert habe, möchte ich kurz erklären wie mein System eingerichtet ist:

Als Distribution benutze ich ArchLinux – ich weiß also wie mein System konfiguriert ist. Im Laptop ist eine SSD drin. Dort benutze ich GPT als Partitionstabelle. Booten tue ich mit GRUB 2, welches per UEFI gestartet wird. Für UEFI gibt es eine Partition. Ansonsten ist nur noch eine Partition eingerichtet, wo das ganze System installiert ist.

Versuch 1: GRUB 2 mit UEFI neuinstallieren

Da ich mir nicht ganz sicher war, wo der UEFI Booteintrag eingerichtet wird – im BIOS oder auf der Festplatte – habe ich einfach angenommen, dass ich GRUB 2 noch einmal installieren lassen muss. Also das neuste ArchLinux Image gezogen, per „dd“ auf den USB-Stick übertragen und damit gebootet. Dann per chroot in meine Installation rein und grub-install entsprechend der Wiki-Anleitung ausgeführt. Als Fehler auftauchten, erinnerte ich mich, dass ich ArchLinux per UEFI booten muss, um GRUB 2 per UEFI zu installieren.

Also habe ich den USB-Stick noch einmal eingerichtet, aber dieses mal per UEFI bootbar. Wieder neugestartet, per chroot rein und grub-install ausgeführt. Dieses mal gab es keine Fehlermeldungen. Nach einem Reboot des Systems kam aber nur „Operation system not found“ – fuck!

Anschließend habe ich beim BIOS die Boot-Einstellungen in verschiedenen Varianten geändert – hatte nichts gebracht. Dann habe ich nochmal neu mit dem USB-Stick gebootet und grub-install noch einmal durchgeführt, Einstellungen kontrolliert usw. Das brachte leider immer noch nichts.

Versuch 2: GRUB 2 ohne UEFI neuinstallieren

Da ich schon so viel Zeit mit der Fehlerbehebung verbraucht hatte (ohne Erfolg) und ich dachte, dass UEFI einfach nach dem BIOS-Update kaputt gegangen ist, habe ich mir gedacht: Scheiße ich auf UEFI und installiere es ohne. Also wieder USB-Stick genommen und gebootet. Die UEFI-Partition flog raus. Dafür habe ich eine BIOS-Partition eingerichtet. Diese benötigt man bei GPT, wenn man nicht per UEFI installiert. Dann habe ich „/boot“ entsprechend aufgeräumt und dann wieder grub-install ausgeführt. Und was kam nach einem Reboot? „Operation system not found“ – waaaah!

Also wieder mit dem USB-Stick gebootet und alles überprüft, rumprobiert – den Stick mal mit UEFI und mal ohne gestartet. Alles half nichts.

Versuch 3: GRUB 2 mit MSDOS-Partitionstabelle

Irgendwo hatte ich dann gelesen, dass der Laptop Probleme mit der GPT-Partitionstabelle haben kann. Also was habe ich gemacht? Ich habe die Partitionstabelle umgestellt. Und wie ihr eventuell wisst, geht das nicht so einfach. Dabei habe ich das ganze System auf meinem anderen Laptop gebackupt, die MSDOS-Partitionstabelle erzeugt, Partitionen erstellt und Backup rübergezogen. Die „/etc/fstab“ habe ich dann gleich angepasst (die GUID). Dann wieder grub-install ausgeführt. Und nach dem Reboot? Ihr könnt es euch denken…

Also wieder neugestartet und nochmal alles überprüft etc. Sicherheitshalber habe ich es auch mal mit UEFI probiert, aber das brachte auch nichts.

Versuch äähhh: Der Weg zum Ziel

Als ich hier angelangt war, waren sicher schon 5 Stunden oder so vergangen – und damit meine ich die Zeit in der ich aktiv etwas probierte. Jetzt wollte ich das BIOS noch einmal updaten oder zur Not auf eine ältere Version downgraden. Also wieder wie am Anfang den USB-Stick entsprechend angepasst. Und was war jetzt? Der Laptop hatte nichts bootbares auf dem Stick gefunden. Ich also nochmal alle Schritte zur Erstellung des Sticks durchgegangen – wieder das selbe Problem.

Ich saß dann vor dem Laptop und kombinierte die Fakten – mal zusammengefasst: Die GRUB 2 Installationen auf der SSD funktionierten nicht (mehr). Der Stick mit dem BIOS Update, der per GRUB läuft, funktioniert nicht. Der USB-Stick mit der ArchLinux Installation funktioniert. Wie bootet der eigentlich? Wie wohl alle Installations-CDs wird auch ArchLinux mit Syslinux gebootet. Mhhh, könnte es sein, dass es nur mit GRUB Probleme gibt? Was ist, wenn ich einfach mal Syslinux installiere?

Also sofort rangesetzt und USB-Stick wieder vorbereitet, gebootet, per chroot rein und Syslinux installiert. Neustart. Anspannung. Große Augen. Es lebt!!!!11eins

Und so habe ich es jetzt auch gelassen. Mit Syslinux bootet mein System wieder. Ich weiß nicht wieso, aber es bootet. Und ich fasse es nie wieder an! Ich hoffe ich konnte eventuell Leuten helfen, die das gleiche Problem haben. Falls jemand eine bessere Lösung hat, dann nehme ich dieser gerne an. 😉

Achja übrigens: Mein Laptop wacht immer noch nicht aus dem Suspend-Modus auf… *grrr*

2 Kommentare

  1. Hallo Christoph,
    habe gerade genau das gleiche Problem bei einer Erstinstallation von Archlinux mit luks und lvm (http://thomas-leister.de/open-source/linux/arch-linux/arch-linux-auf-verschluesselte-festplatte-installieren/). Das X121e schalte sich einfach direkt wieder aus. Zuvor unter Gentoo Linux jahrelang keine Probleme gehabt. Kein BIOS-update hat in irgendwelchen Probleme mit Grub unter Gentoo resultiert.

    Ich werde jetzt mal syslinux mit dem gpt-table probieren…

    Antworten
  2. Hey!
    Ich hatte grad das gleiche Problem mit meinem (neu aufgesetzten) X121e; in meinem Fall eine Debian-Installation.
    grub-install erzeugt mir einen UEFI-Booteintrag:
    Boot000A* debian HD(1,800,84000,)File(\EFI\debian\grubx64.efi)
    und markiert ihn als ersten in der Boot-Order.
    Irgendwie bin ich durch Zufall draufgekommen, dass ich starten kann, wenn ich mit F12 zuerst versuche von der HDD zu starten und dann erst Debian starte; daraufhin hab ich die Bootorder entsprechend umgedreht und jetzt startet mein Notebook problemlos (efibootmgr -v):
    BootCurrent: 000A
    BootOrder: 0007,000A
    (…)
    Boot0007* ATA HDD0 VenMsg(,)
    (…)
    Boot000A* debian HD(1,800,84000,)File(\EFI\debian\grubx64.efi)

    Vielleicht hilft das ja irgendwem…. 😉 Ich persönlich halte das für einen Bug im Lenovo UEFI und werde demnächst wieder auf BIOS-Boot umsteigen, da ich das mit der FN-Taste nach dem Suspend nicht hinbekomme…

    Antworten

Schreibe einen Kommentar

Pflichtfelder sind mit * markiert.