Hallo Martin,
Ich benutze Ubuntu 12.04 LTS auf einem Asrock FM2A55M-DGS Mainboard mit AMD A4-5300 APU mit integrierter Radeon Grafik.
Ich habe ein paar Protokolle von boot-repair:
http://paste.ubuntu.com/5725567/
http://paste.ubuntu.com/5729116/
http://paste.ubuntu.com/5729234/
Nach eltichen weiteren Versuchen, Neuinstallationen und Manipulationen am EFI-Booteintrag-NVRAM bin ich zu folgendem Ergebnis gekommen:
Mein BIOS setzt den 'Windows Boot Manager' immer an erste Stelle der Bootreihenfolge. Wenn dieser von Windows erzeugt wird, erhält er eine Signatur nach dem Label, den Unterschied sieht man nach Eingabe von efibootmgr -v
| Boot0004* Windows Boot Manager HD(3,1005800,32000,c4ab434f-95fc-4b1e-95c7-1a5b0570e2a5)File(\EFI\Microsoft\Boot\bootmgfw.efi)WINDOWS.........x...B.C.D.O.B.J.E.C.T.=.{.9.d.e.a.8.6.2.c.-.5.c.d.d.-.4.e.7.0.-.a.c.c.1.-.f.3.2.b.3.4.4.d.4.7.9.5.}...8................
Boot0006* Windows 7 Boot Manager HD(3,1005800,32000,c4ab434f-95fc-4b1e-95c7-1a5b0570e2a5)File(\EFI\Microsoft\Boot\bootmgfw.efi)
|
Wenn dieser Eintrag im EFI-Bootmenü fehlt, wird er von Windows 7 beim Start automatisch erstellt, und bekommt die erste Bootposition zugewiesen.
Wenn dieser Eintrag auf eine andere Bootposition verschoben wird, egal ob mit efibootmgr oder im Setup-Menü, so wird er beim nächsten Systemstart gelöscht. Auch andere Einträge, die Windows Boot Manager heißen, werden gelöscht ('Windows Boot Manager 2' wurde bei mir ebenfalls gelöscht, nicht jedoch Windows 7 Bootmanager)
Wenn die übrigen Einträge gültig sind, so startet grub wieder, und man kenn die Bootauswahl im Grub-Menü treffen. Sobald man aber Windows startet, wird der Windows Starteintrag wieder an erster Stelle erzeugt - und Grub lässt sich nur noch über das Setup-Bootmenü starten.
Ich hoffe, ich habe mich soweit verständlich ausgedrückt.
Stefan
boot-repair geht nun einen interessanten Weg, um das Bios auszutricksen: Es ändert die Dateinamen im EFI-Bootbereich von Windows. Die ursprünglichen Stardateien bootmgfw.efi und bootmgr.efi werden umbenannt in bkpbootmgfw.efi und bkpbootmgr.efi
Dann wird die grub bootdatei grubx64.efi nach /EFI/Microsoft/Boot/bootmgfw.efi kopiert. Wenn jetzt der original Windows Bootmanager versucht, Windows zu starten, dann startet er stattdessen Grub. Die Auswahl des Betriebssystems erfolgt im Grub Menü. Oder man kann nun auch einen Starteintrag für Windows im EFI-Bootmenü mit efibootmgr erstellen, indem man /EFI/Microsoft/Boot/bkpbootmgfw.efi als Startdatei benutzt
| sudo efibootmgr --create --disk /dev/sda --part 3 --label "Windows Boot Manager" --loader \\EFI\\Microsoft\\Boot\\bkpbootmgfw.efi
|
Ich habe noch einen weiteren Weg gefunden, das Bios auszutricksen:
Nachdem Windows 7 gestartet und der Booteintrag mit der Windows Signatur erzeugt wurde, startet man über das EFI-Bootmenü Grub und Ubuntu. Dann setzt man den Windows Booteintrag auf 'inaktiv', in meinem Beispiel von oben
Wenn man jetzt den Rechner neu startet, dann wird dieser Eintrag bei der Bootauswahl übersprungen, und ganz normal Grub gestartet. Wenn man aber Windows startet, dann erkennt dieses, dass der original Starteintrag bereits im EFI-Bootmenü existiert und ändert nichts. So kann ich nun Grub als Bootlader für Ubuntu oder Windows 7 nutzen.
Für mich steht nun jedenfalls fest, dass nicht der efibootmgr das Problem ist, sondern das EFI-Bios meines Boards.
Stefan