Vorinstallierter Windows 8- und Linux-UEFI-Dual-Boot auf einem Laptop

10

Ich versuche, Windows 8 und Arch Linux auf einem neuen Sony Vaio E14 mit vorinstalliertem Windows 8 einzurichten.

Bisher:

  • installierte W8 mit Recovery Media auf meiner neuen SSD (auf die Original-Festplatte umgeschaltet)
  • verkleinerte die W8-Partition, löschte die Wiederherstellungspartition und deaktivierte den Austausch
  • bestätigte W8-Booten ganz gut

Auf zu Arch:

  • deaktiviert Secure Boot im BIOS
  • bestätigte W8-Booten ganz gut
  • Booten Sie Arch von der CD und installieren Sie alles auf der 4. und 5. Partition
  • REFInd für den EFIstub-Kernel-Bootloader einrichten

Danach wurde es schlimmer. Ich konnte nichts anderes als Windows 8 booten (obwohl ich froh war, dass sie zumindest weiterhin einwandfrei funktionierten).

Versucht:

  • Erstellen von EFI \ refind \ und Ablegen der .efi-Datei (gemäß Arch-Handbuch)
  • Überschreiben von EFI \ boot \ bootx64.efi
  • Überschreiben von EFI \ Microsoft \ Boot \ bootmgr.efi
  • Überschreiben von EFI \ Microsoft \ Boot \ bootmgfw.efi --- YAY rEFInd wird angezeigt!

So weit, ist es gut. Ich habe das gesamte W8 Boot \ -Verzeichnis in EFI \ windows8 gespeichert und einen Boot-Menüeintrag dafür eingerichtet. und es bootete ganz gut.

Beim Neustart war jedoch alles falsch - "Betriebssystem nicht gefunden" anstelle eines Bootloaders (refind oder w8).

Mit der Live-CD zurück in Arch gebootet, um herauszufinden, dass die EFI-Partition eine fehlerhafte FAT-Tabelle hatte. fsck.vfat hat das Problem behoben, und ich habe festgestellt, dass EFI \ Microsoft \ Boot wieder im ursprünglichen Zustand ist (alle Refind-Dateien wurden gelöscht und durch W8-Bootloader ersetzt). Ich habe sie erneut überschrieben und bin zu rEFInd zurückgekehrt, das korrekt angezeigt wird und Arch perfekt bootfähig ist.

Danach habe ich versucht, nur EFI \ Microsoft \ Boot \ bootmgfw.efi in bootmgfw.001.efi umzubenennen (dann die .efi von refind nach bootmgfw.efi zu kopieren und JEDE ANDERE Datei so zu belassen, wie sie war), aber mit genau dem gleichen Ergebnis. Versucht, die GPT-EFI-Partition als schreibgeschützt zu markieren, gleiches Ergebnis.

Jetzt habe ich ein bisschen Pech. Arch bootet gut, W8 auch, zerstört dabei jedoch die EFI-Partition.

Vielen Dank für alle Ideen, Googeln hat mich so weit gebracht und ich kann keinen besseren finden.

PS - Windows 8 zerstört möglicherweise die Partition beim Herunterfahren - wenn ich ein Herunterfahren in W8 bestelle, dauert es ungewöhnlich lange (ungefähr eine halbe Minute statt ~ 5 Sekunden). Theoretisch könnte ich das lösen, indem ich den Laptop anstelle eines normalen Herunterfahrens hart zurücksetze, aber das ist einfach nicht schön.

juckt355
quelle
Ich fürchte, ich kann hier nicht helfen, ich habe keine UEFI-Maschine zum Testen. Auch wenn dies möglicherweise nicht die am meisten gewünschte Methode ist, können Sie versuchen, dem Windows-Bootloader einen Linux-Eintrag hinzuzufügen und dort zu starten, aber das habe ich auf einem UEFI-Computer nicht versucht. Die Vorgehensweise finden Sie hier: superuser.com/a/499652/18050 Außerdem verwende ich immer Archboot, um Arch zu installieren. Probieren Sie es aus, wenn Sie die offiziellen Images verwenden, da bei der Installation UEFI-Systeme berücksichtigt werden: bbs.archlinux. org / viewtopic.php? id = 150833
Xandy
Dies klingt nach einem Konflikt zwischen Arch Linux und Windows 8. Haben Sie eine andere Distribution ausprobiert, um zu regieren, dass Arch Linux nicht das Problem ist?
Ramhound
Vielen Dank für den easyBCD-Vorschlag, ich werde es auf jeden Fall versuchen. Es ist mir egal, welcher Boot-Manager verwendet wird. Wenn Windows das kann, bin ich mehr als glücklich. Werde morgen Ergebnisse veröffentlichen, wenn es wieder freie Zeit von der Arbeit gibt, um etwas durcheinander zu bringen :) @Ramhound Es wäre in diesem Moment eine Art Schmerz und ich denke nicht, dass es mit Arch zusammenhängt - rEFInd ist ein separates Projekt und ich habe installierte alles von Hand (dem Mann folgend).
Juckreiz355

Antworten:

5

Es könnte sich lohnen, in Windows ein kaltes Herunterfahren (Drücken des Netzschalters) durchzuführen, um zu sehen, ob Sie danach nur als Test booten können. Natürlich möchten Sie dies nicht regelmäßig tun, aber es kann hilfreich sein, zu bestätigen, dass Windows Ihre überarbeiteten ESP-Daten überschreibt. Wenn das Dateisystem beim Herunterfahren von Windows tatsächlich beschädigt wird, klingt dies wie ein Windows-Fehler, der Microsoft gemeldet werden sollte. Wenn es nur bootmgfw.efidarum geht, die Datei zu ersetzen, liegt dies technisch im Zuständigkeitsbereich von Microsoft, sodass es sich nicht wirklich um einen Fehler handelt.

Im weiteren Sinne haben Sie jedoch versucht, mit dem Linux- efibootmgrProgramm rEFInd unter seinem eigenen Namen beim EFI zu registrieren (z. B. EFI/refindauf dem ESP)? Dies wird in der Dokumentation von rEFInd im Abschnitt zur manuellen Linux-Installation beschrieben. Alternativ können Sie die Installation mit dem install.shSkript durchführen. Für beide Methoden ist ein Start im EFI-Modus erforderlich, dies sollte jedoch möglich sein. Verwenden Sie dazu eine rEFInd-CD oder starten Sie von einer Notfall-CD im EFI-Modus.

Wenn efibootmgrdies nicht funktioniert, versuchen Sie es bcfgin einem EFI-Shell-Programm, wie auf dieser Arch-Wiki-Seite beschrieben.

Wenn diese Verfahren keine Arbeit tun, versuchen Sie es mit efibootmgroder entfernen Sie den Eintrag aus dem NVRAM und dann installieren REFind wie . Theoretisch könnte der Computer dann rEFInd starten, was normal funktionieren und das Booten beider Betriebssysteme ermöglichen sollte. Es gibt zwei mögliche gotchas, aber: Die Firmware begünstigen könnte über ; und Windows überprüft möglicherweise seine Startoptionen und fügt dem NVRAM beim Booten einen eigenen Bootloader hinzu. Trotzdem ist diese Methode einen Versuch wert.bcfgbootmgfw.efiEFI/BOOT/bootx64.efiEFI/Microsoft/boot/bootmgfw.efiEFI/BOOT/bootx64.efi

Gemäß der EFI-Spezifikation müssen Computer ihre NVRAM-Einstellungen berücksichtigen (die von efibootmgrLinux, bcfgeiner EFI-Shell oder ähnlichen Programmen verwaltet werden). Wenn diese Dienstprogramme also nicht funktionieren, ist Ihre Firmware defekt, und Sie können die Rückgabe der Einstellungen in Betracht ziehen Computer für ein anderes Modell. (Teilen Sie Sony jedoch unbedingt mit, warum Sie den Computer zurückgegeben haben, wenn Sie dies tun!) Diese Art von Problem ist tatsächlich ziemlich häufig. Ich habe ein Gigabyte-Board mit einem "Hybrid EFI", das zum Beispiel immer wieder die NVRAM-Einstellungen vergisst. Zumindest mit diesem Board ist es jedoch möglich, das Problem zu umgehen, indem Sie den Boot-Manager / Loader Ihrer Wahl benennen EFI/BOOT/bootx64.efi.

Wenn Sie es nicht zum Laufen bringen können und den Computer nicht ersetzen möchten oder können, habe ich zwei weitere Vorschläge für Problemumgehungen:

  • Sie können eine bootfähige CD oder ein USB-Flash-Laufwerk mit rEFInd bereithalten und verwenden, wenn Sie Linux booten möchten. Dies erfordert möglicherweise die Verwendung einer Funktionstaste, um den Computer anzuweisen, beim Booten von einem Wechselmedium und nicht von der Festplatte zu starten.
  • Sie können die Partitionen von der Festplatte löschen, mithilfe von MBR neu partitionieren und beide Betriebssysteme im BIOS-Modus und nicht im EFI-Modus neu installieren. Dadurch werden EFI-Flakiness aus dem Bild entfernt und Sie können einen GRUB im BIOS-Modus als Bootloader verwenden. Dies erfordert jedoch wahrscheinlich eine Verkaufskopie des Windows 8-Installationsprogramms. Zumindest für Windows 7 waren die OEM-Kopien hinsichtlich des Installationsmodus (BIOS vs. EFI) unflexibel. Alternativ kann es möglich sein, von einem EFI-Modus-Start in einen BIOS-Modus-Start zu konvertieren, ohne ihn erneut zu installieren. Der umgekehrte Wechsel ist möglich (ich wollte einen Link zu einer Site posten, auf der er beschrieben ist, aber auf dieser Site kann ich nicht mehr als zwei Links posten; sorry), und ich erinnere mich an Beschreibungen von EFI- irgendwo in ein BIOS konvertieren, aber ich habe keine URL zur Hand. Eine Google-Suche kann etwas ergeben.

Ich bin auf diese Seite gestoßen, nachdem ich meine erste Antwort veröffentlicht habe, und es gibt eine weitere mögliche Ursache für zumindest einen Teil Ihres Problems: Anscheinend verwendet Windows 8 eine Methode zum Herunterfahren, die eher einem Suspend-to-Disk-Vorgang ähnelt. Das Ergebnis ist, dass gemountete Partitionen beschädigt werden können, wenn Sie Windows herunterfahren und dann Linux starten. Obwohl das ESP normalerweise nicht in Windows 7, AFAIK, bereitgestellt wird, kann es sein, dass Windows 8 die Dinge anders macht, oder dass das ESP in Windows 7 bereitgestellt wird und nur versteckt zu sein scheint. In jedem Fall können Sie diese Funktion von Windows 8 deaktivieren, indem Sie den folgenden Befehl in ein Eingabeaufforderungsfenster für Administratoren eingeben:

powercfg /h off
Rod Smith
quelle
In der Tat brechen Windows 8 beim Kaltstart nichts. Ich habe keine Lust, einen Fehler zu
posten
Ich habe versucht, mit dem herumzuspielen efibootmgr; Es zeigte sich, dass es eine ungewöhnlich hohe Anzahl von Bootmanagern gibt (mehr als die 3, die ich erwarten würde), was dazu führte, dass ich besser auf meine Festplatte schaute. und ich habe festgestellt, dass ich tatsächlich zwei EFI-Partitionen habe: -x Nur die zweite (/ dev / sda2) wurde EFI system partitionin GDisk als angezeigt, sodass ich dachte, dass es die richtige ist. Die andere ist nur eine FAT-Partition (sda1) mit derselben Größe und Standard-EFI-Dateistruktur.
Juckreiz355
Wenn ich die Startreihenfolge so ändere, dass zuerst rEFInd geladen wird, dann etwas namens ,, sony original '' und dann andere, überschreibt es sich wieder auf die Standardeinstellung (Windows, Sony Original, andere (refind)) PS; dass alles gesagt wird, wenn man bedenkt, dass ,, windows '' mein überschriebenes istbootmgfw.efi
itchy355
1
In der Zwischenzeit habe ich das powercfg /h offin w8 ausprobiert, und DIESES BEHOBENE W8, DAS DIE EFI-TEILUNG BRECHT ... das ist der heilige Gral, nach dem ich gesucht habe, wie es scheint :) DANKE DANKE DANKE!
Juckreiz355
Ich bin froh zu hören, dass dies powercfg /h offIhr Hauptproblem behoben hat. Es könnte Sie interessieren zu hören, dass ich auf Informationen gestoßen bin, dass einige UEFI-Implementierungen so codiert zu sein scheinen, dass ein Bootloader namens "Windows Boot Manager" an die Spitze ihrer Listen verschoben wird. Wenn Sie Ihre Bootloader mit umbenennen, efibootmgrkönnen Sie möglicherweise rEFInd (oder was auch immer Sie möchten) unter einem vernünftigeren Dateinamen installieren.
Rod Smith