Hallo alle zusammen,
zuerst: ich mag Lenovo eigentlich sehr: ich verwende deren Laptops in der Schule und auch Privat, aber was ich letzte Nacht bemerkt habe: da hört der Spass auf.
Ich will hier nicht abraten Lenovo zu kaufen: die Hardware ist super, ich will Warnen: man darf die Geräte nciht einfach kaufen, sondern muss sich vorher dringend informieren, was man da genau kauft und wie es eingeschränkt ist.
Was ist Gestern Nacht passiert:
Ich habe Lenovo Tablets der Serie miix von einer linuxmuster Schule bekommen, weil die Ärger mit den Dingern haben: das frisch installierte Windows startet nicht mehr und das schon installierte startet immer:linbo startet nicht mehr, da es in der bootreihenfolge nciht mehr auftaucht.
Das sind zwei Probleme.
Das erste konnte ich beheben durch einen Dateisystemcheck (bei dem Fehler gefunden wurden) und einem neu erstellten Image.
Das zweite war seltsam: sobald der Windwos Bootloader in der EFI Partition lag, verschwand grub aus der Liste im “BIOS” als startbares System.
Man konnte nur noch Windows oder Netzwerk wählen.
Man sollte wissen, wie so ein UEFI boot abläuft.
Das sit sehr simpel:
- die Firmware (UEFI) initialisiert die Hardware
- das UEFI sucht eine als “efi” markierte Partition (partitionID “ef”) und schaut auf dieser VFAT Formatierten Partition in den Ordner EFI.
Darin befinden sich pro Startbarem System ein Unterordner mit einer .efi Datei, die den Bootloader des Systems enthält. Für linbo sieht das also so aus:
/EFI/grub/grubx64.efi
mehr ist da nicht drin.
Für Windows sieht das so aus:
/EFI/Microsoft/ … ein Haufen Dateien… und zwei .efi Dateien.
Soweit, so gut.
Partitioniert man und synct das WIndows nicht, dann ist der UNterordner Microsoft nicht vorhanden: das BIOS bietet grub als startbares System an und bootet es auch.
Wenn ich aber die Startdateien von Windowns (z.B. durch sync oder durch Kopieren des Verzeichnisses c:\EFI\Microsoft auf die efi Partition) hinbewege, verschwindet grub aus dem bootmenü (auf der efi Partition liegt es aber noch).
… das kam mir dann doch sehr spanisch vor: also hab ich ein wenig im Internet gestöbert und dieses hier gefunden:
https://www.phoronix.com/scan.php?page=news_item&px=MTIyOTg
WTF.
Da kann mir auch keiner erzählen, dass da das EFI unsauber programmiert wurde.
Das UEFI der Geräte ignoriert also alle Bootloader, sobald es einen Von Microsoft oder einen von RedHat findet.
Um mein Problem, dass linbo nicht mehr lokal gebootet werden kann, zu beheben dachte ich mir: dann trickse ich halt das System aus.
Also hab ich nachgeforscht, wie der Inhalt der efi Partition bei ReadHat aussieht:
/EFI/redhat/grub.efi
mehr nicht.
Also hab ich /EFI/grub/grubx64.efi einfach nach /EFI/redhat/grubx64.efi kopiert
…hat nichts gebracht.
Dann hab ich noch grubx64.efi umbenannt in grub.efi und voila: plötzlich erscheint auch das “vermeintliche” RedHat im bootmenü und kann als Default angewählt erden: daran hält sich das UEFI dann auch und startet die grub.efi … was aber in meinem Fall dann den linbo grub startet.
Hammerhar: die haben echt einen Filter drin, der nur MS und RedHat erlaubt … was zur Hölle soll das …
Laut diesem Tread haben die Teilnehmer das Problem an den Lenovo Support gemeldet (im Tread geht es nicht um miix sondern um andere Lenovo Hardware).
Der Support meinte, er schaue sich das an …
Ich würde jetzt mal die neuste Firmware aufspielen und schauen, ob das behoben ist.
Mein workaround ist ja umständlich, da man das von Hand bei jedem Client einmal machen müßte: und ich weiß nciht, ob die EFI Partition durch linbo möglicherweise nicht nur beim Partitionieren neu geschrieben wird.
LG
Holger