Ich starte Manjaro und Windows im Dual-Boot-Modus über Grub und UEFI auf einem Lenovo Yoga C930, das Bitlocker und Secure Boot verwendet. Ich kann Manjaro erfolgreich starten, wenn ich Secure Boot im BIOS deaktiviere, und ich kann auch Windows starten, wenn ich Secure Boot im BIOS wieder aktiviere. Aus unbekannten und scheinbar zufälligen Gründen verliere ich einfach meinen Linux-Bootloader. Ich weiß nicht, ob er gelöscht wird, plötzlich nicht mehr erkannt wird oder was, aber ich kann nicht davon booten und er wird im BIOS nicht als Option angezeigt.
Ich kann Grub neu installieren, indem ich den Anweisungen im Wiki folge, aber irgendwann verschwindet es einfach. Was ist los und wie kann ich das verhindern?
Antwort1
Ich gehe davon aus, dass Windows Ihr System „krebsfrei“ hält.
[BEARBEITEN] Abhängig von der von Ihnen verwendeten Startmethode stehen Ihnen zwei Lösungen zur Verfügung: Legacy und UEFI.
Vermächtnis:
bcd
Sie können es als Boot-Manager zum Starten von Windows oder Linux verwenden .
Vorausgesetzt, Sie haben Grub installiert /dev/sda
und /dev/sda1
es handelt sich um die Windows EFI-Partition
Unter Linux:
mount /dev/sda1 /mnt
dd if=/dev/sda of=/mnt/linux.bin bs=512 count=1
Unter Windows:
bcdedit /create /d "Linux" /application bootsector
BCDEdit gibt für diesen Eintrag eine alphanumerische Kennung zurück, die ich in den folgenden Schritten als {ID} bezeichnen werde. Sie müssen {ID} durch die tatsächlich zurückgegebene Kennung ersetzen. Ein Beispiel für {ID} ist {d7294d4e-9837-11de-99ac-f3f3a79e3e93}. Als Nächstes geben wir an, welche Partition eine Kopie der Datei linux.bin hostet:
bcdedit /set {ID} device partition=c:
Der Pfad zu unserer linux.bin-Datei:
bcdedit /set {ID} path \linux.bin
Ein Eintrag im angezeigten Menü beim Booten:
bcdedit /displayorder {ID} /addlast
und schließlich legen wir fest, wie lange die Menüoptionen angezeigt werden:
bcdedit /timeout 30
Das ist es! Starten Sie jetzt neu und Ihnen wird ein Menü angezeigt, in dem Sie auswählen können, ob Sie Windows oder Linux starten möchten. Wenn Sie Linux auswählen, werden Sie zum Bootloader-Menü weitergeleitet, in dem Sie Linux starten können.
https://www.iceflatline.com/2009/09/how-to-dual-boot-windows-7-and-linux-using-bcdedit/
[BEARBEITEN] UEFI
Ihr Windows-System verfügt über eine EFI-Partition, von der es bootet. Unter Linux mounten Sie diese in /boot
. Stellen Sie dann sicher, dass Ihr grub.cfg
die Root-Partition mithilfe der UUID sucht (standardmäßig tut es das): wie zum Beispiel: linux /vmlinuz-4.4.0-1-default root=UUID=6159e15d-f224-499d-88e0-437b5538f0f1 quiet splash=silent
, wenn das nicht der Fall ist, verwenden Sie , blkid
um die UUID Ihrer Root-Partition aufzulisten und passen die Grub-Konfiguration in an /etc/grub.d
.
Sie schreiben Ihre Grub-Konfiguration in/boot/boot/efi/EFI/manjaro/grub.cfg
grub2-mkconfig -o /boot/boot/efi/EFI/manjaro/grub.cfg
Führen Sie einen Neustart durch. Dann sollte alles bereit sein.
Antwort2
Ich hatte vor fast zwei Jahren ein ähnliches Problem mit einem Dual-Boot von Trisquel Linux und Windows 8. Ich habe eine Frage/Antwort gepostetHierauf Super User (mir wurde damals gesagt, dass Dual-Boot-Fragen bei U&L aus irgendeinem Grund nicht zum Thema gehören).
Wie Sie in diesen Beiträgen sehen werden, bestand das Problem nicht darin, dass Windows GRUB löschte oder überschrieb, sondern darin, dass es regelmäßig die UEFI-Einstellungen änderte, um es anzuweisen, den Windows-Bootloader anstelle von GRUB zu verwenden. Die Lösung bestand darin, bcdedit in Windows zu verwenden, um den Standard-Bootloaderpfad auf GRUB festzulegen, was mein Problem löste.
Ich weiß nicht, ob die gleiche Lösung bei Ihnen funktioniert, aber vielleicht ist es einen Versuch wert?
(außerdem glaube ich nicht, dass Secure Boot aktiviert sein muss, um Windows zu starten. Ich starte Windows 8 problemlos, wenn Secure Boot deaktiviert ist.)
Antwort3
Ich habe das tatsächlich selbst herausgefunden. Es stellte sich heraus, dass ich efibootmgr
manuell einen neuen Starteintrag erstellen und ihm eine hohe Priorität zuweisen musste. So weit, so gut.