Double démarrage UEFI Windows 8 et Linux préinstallé sur un ordinateur portable

10

J'essaie de configurer Windows 8 et Arch Linux sur un nouveau Sony Vaio E14 avec Windows 8 préinstallé.

Jusque là:

  • installé W8 sur mon nouveau SSD (changé pour le disque dur d'origine) en utilisant Recovery Media
  • réduit la partition W8, supprimé la partition de récupération, swap désactivé
  • confirmé le démarrage du W8 très bien

Sur Arch:

  • Secure Boot désactivé dans le BIOS
  • confirmé le démarrage du W8 très bien
  • Booted Arch sur le CD et installé tout sur la 4e et la 5e partition
  • configurer rEFInd pour le chargeur de démarrage du noyau EFIstub

Après ça, ça a empiré. Je n'ai pas pu démarrer autre chose que Windows 8 (même si j'étais content qu'ils aient au moins continué à bien fonctionner).

A tenté:

  • créer EFI \ refind \ et y mettre le .efi (selon le manuel Arch
  • écraser EFI \ boot \ bootx64.efi
  • écraser EFI \ Microsoft \ Boot \ bootmgr.efi
  • écraser EFI \ Microsoft \ Boot \ bootmgfw.efi --- YAY rEFInd est apparu!

Jusqu'ici tout va bien. J'ai gardé tout le répertoire W8 Boot \ dans EFI \ windows8 et mis en place une entrée de menu de démarrage pour cela; et il a démarré très bien.

Mais, au redémarrage, tout allait mal - «Système d'exploitation introuvable» au lieu de n'importe quel chargeur de démarrage (refind ou w8).

Redémarré dans Arch à l'aide du CD live pour découvrir que la partition EFI avait une table FAT erronée. fsck.vfat l'a corrigé et j'ai constaté que EFI \ Microsoft \ Boot était de retour à son état d'origine (tous les fichiers de recherche ont été supprimés et remplacés par des chargeurs de démarrage W8). Je les ai écrasés à nouveau et je suis revenu à rEFInd qui apparaissait correctement et à Arch parfaitement bootable.

Après cela, j'ai essayé de renommer uniquement EFI \ Microsoft \ Boot \ bootmgfw.efi en bootmgfw.001.efi (puis en copiant le fichier .efi de refind vers bootmgfw.efi et en conservant CHAQUE AUTRE fichier tel qu'il était), mais avec exactement le même résultat. J'ai essayé de marquer la partition GPT EFI comme étant en lecture seule, même résultat.

Maintenant, je n'ai pas de chance. Arch démarre bien, W8 aussi, mais il détruit la partition EFI dans le processus.

Merci pour toutes les idées, Google m'a amené si loin et je ne peux pas trouver mieux.

PS - Windows 8 PEUT détruire la partition lors de l'arrêt - lorsque je commande un arrêt dans W8, cela prend un temps inhabituel (environ une demi-minute au lieu de ~ 5 secondes). Donc, en théorie, je pourrais résoudre ce problème en réinitialisant durement l'ordinateur portable au lieu d'un arrêt normal, mais ce n'est tout simplement pas agréable.

itchy355
la source
J'ai peur de ne pas pouvoir aider ici, je n'ai pas de machine UEFI pour tester des trucs. Même si ce n'est peut-être pas la façon la plus souhaitée de le faire, vous pouvez essayer d'ajouter une entrée Linux au chargeur de démarrage Windows et de démarrer là-bas, mais je n'ai pas essayé cela sur une machine UEFI. Voir ici pour la procédure: superuser.com/a/499652/18050 Aussi, j'utilise toujours Archboot pour installer Arch, essayez-le si vous utilisez les images officielles car l'installation tient compte des systèmes UEFI: bbs.archlinux. org / viewtopic.php? id = 150833
Xandy
Cela ressemble à un conflit entre Arch Linux et quelque chose que fait Windows 8. Avez-vous essayé une autre distribution pour décider que ce n'est pas Arch Linux qui a le problème?
Ramhound
Merci pour la suggestion easyBCD, je vais certainement essayer. Je me fiche du gestionnaire de démarrage utilisé, donc si Windows peut le faire, je serai plus qu'heureux. Publiera les résultats demain quand il y aura à nouveau du temps libre pour gâcher quelque chose :) @Ramhound ce serait une sorte de douleur en ce moment et je ne pense pas que cela soit lié à Arch - rEFInd est un projet distinct et j'ai installé tout à la main (en suivant l'homme).
itchy355

Réponses:

5

Il peut être utile de faire un arrêt à froid (appuyez sur le bouton d'alimentation) dans Windows pour voir si vous pouvez démarrer après, juste comme test. Évidemment, vous ne voudriez pas le faire régulièrement, mais il pourrait être utile de confirmer que Windows écrase vos données ESP révisées. Si cela endommage réellement le système de fichiers lors de l'arrêt de Windows, cela ressemble à un bogue Windows qui devrait être signalé à Microsoft. S'il s'agit simplement de remplacer le bootmgfw.efifichier, cela relève techniquement de Microsoft, donc ce n'est pas vraiment un bug.

Plus largement, cependant, avez-vous essayé d'utiliser le efibootmgrprogramme Linux pour enregistrer rEFInd auprès de l'EFI sous son propre nom (par exemple, EFI/refindsur l'ESP)? Ceci est décrit dans la documentation de rEFInd, dans la section sur l'installation manuelle de Linux. Alternativement, vous pouvez installer en utilisant le install.shscript. L'une ou l'autre méthode nécessitera un démarrage en mode EFI pour réussir, mais vous devriez pouvoir le faire en utilisant un CD rEFInd ou démarrer à partir d'un disque d'urgence en mode EFI.

Si efibootmgrcela ne fonctionne pas, essayez de l'utiliser bcfgdans un programme shell EFI, comme décrit sur cette page wiki Arch.

Si ces procédures ne fonctionnent pas, essayez d'utiliser efibootmgrou bcfgde supprimer l'entrée de bootmgfw.efide la NVRAM, puis installez rEFInd as EFI/BOOT/bootx64.efi. En théorie, l'ordinateur pourrait alors lancer rEFInd, qui devrait fonctionner normalement et permettre le démarrage de l'un ou l'autre des systèmes d'exploitation. Il y a deux pièges potentiels, bien que: Le firmware pourrait favoriser EFI/Microsoft/boot/bootmgfw.efiplus EFI/BOOT/bootx64.efi; et Windows peut vérifier ses options de démarrage et rajouter son propre chargeur de démarrage à la NVRAM lors de son démarrage. Pourtant, cette méthode mérite un essai.

La spécification EFI nécessite que les ordinateurs respectent leurs paramètres NVRAM (qui sont gérés par efibootmgrsous Linux, bcfgdans un shell EFI ou des programmes similaires), donc si ces utilitaires ne fonctionnent pas, votre micrologiciel est cassé et vous voudrez peut-être envisager de renvoyer le ordinateur pour un autre modèle. (N'oubliez pas de dire à Sony pourquoi vous avez renvoyé l'ordinateur si vous le faites, cependant!) Ce type de problème est en fait assez courant; J'ai une carte Gigabyte avec un "Hybrid EFI" qui oublie ses paramètres NVRAM, par exemple. Au moins avec cette carte, cependant, il est possible de contourner le problème en nommant mon gestionnaire / chargeur de démarrage de choix EFI/BOOT/bootx64.efi.

Si vous ne pouvez pas le faire fonctionner et que vous ne souhaitez pas ou ne pouvez pas remplacer l'ordinateur, j'ai deux autres suggestions de solutions:

  • Vous pouvez garder un CD ou une clé USB amorçable sous la main avec rEFInd dessus, et l'utiliser lorsque vous voulez démarrer Linux. Cependant, cela peut nécessiter l'utilisation d'une touche de fonction pour indiquer à l'ordinateur de démarrer à partir du support amovible plutôt qu'à partir du disque dur à chaque démarrage.
  • Vous pouvez effacer les partitions du disque, repartitionner à l'aide de MBR et réinstaller les deux systèmes d'exploitation en mode BIOS plutôt qu'en mode EFI. Cela supprimera toute fragilité EFI de l'image et vous permettra d'utiliser un GRUB en mode BIOS comme chargeur de démarrage. Cependant, cela nécessitera probablement une copie commerciale du programme d'installation de Windows 8; au moins pour Windows 7, les copies OEM étaient inflexibles sur le mode d'installation (BIOS vs EFI). Alternativement, il peut être possible de passer d'un démarrage en mode EFI à un démarrage en mode BIOS sans réinstaller. Le commutateur opposé est possible (j'allais publier un lien vers un site où il est décrit, mais ce site ne me laissera pas publier plus de deux liens; désolé), et je semble me rappeler avoir parcouru des descriptions de faire un EFI- conversion au BIOS quelque part, mais je n'ai pas d'URL à portée de main. Une recherche Google peut révéler quelque chose.

Je suis tombé sur cette page après avoir publié ma première réponse, et cela a une autre cause possible pour au moins une partie de votre problème: Apparemment, Windows 8 utilise une méthode d'arrêt qui s'apparente plus à une opération de suspension sur disque. Le résultat est que les partitions montées peuvent être endommagées si vous fermez Windows, puis démarrez Linux. Bien que l'ESP ne soit pas normalement monté dans Windows 7, AFAIK, il se pourrait que Windows 8 fasse les choses différemment, ou peut-être que l'ESP soit monté dans Windows 7 et semble juste être caché. Dans tous les cas, vous pouvez désactiver cette fonctionnalité de Windows 8 en tapant la commande suivante dans une fenêtre d'invite de commandes administrateur:

powercfg /h off
Rod Smith
la source
En effet, Windows 8 ne casse rien lors d'un arrêt à froid. Je n'ai pas envie de poster une erreur, car après tout, c'est moi qui gâche leur bootloader :)
itchy355
J'ai essayé de jouer avec efibootmgr; cela a montré qu'il y avait un nombre inhabituellement élevé de gestionnaires de démarrage (plus que les 3 auxquels je m'attendais), ce qui m'a amené à mieux regarder sur mon disque; et j'ai trouvé qu'en fait j'ai deux partitions EFI: -x Seule la seconde (/ dev / sda2) a été montrée comme EFI system partitiondans GDisk, donc cela m'a fait penser que c'était la bonne. L'autre est juste une partition FAT (sda1) avec la même taille et la structure de fichiers EFI standard.
itchy355
Si je change d'abord l'ordre de démarrage pour charger rEFInd, puis quelque chose appelé ,, sony original '' et puis d'autres, il se remplace par défaut (windows, sony original, others (refind)) PS; que tout cela étant dit étant donné que `` windows '' est mon écrasébootmgfw.efi
itchy355
1
En attendant, j'ai essayé le powercfg /h offin w8, et CE FIXE W8 BRISANT LA PARTITION EFI..c'est le Saint Graal que je cherchais, il semble :) MERCI MERCI MERCI!
itchy355
Je suis content d'apprendre que cela a powercfg /h offrésolu votre problème principal. Vous serez peut-être intéressé d'apprendre que j'ai parcouru des informations selon lesquelles certaines implémentations UEFI semblent codées pour déplacer un chargeur de démarrage appelé «Windows Boot Manager» en haut de leur liste. Ainsi, renommer vos chargeurs de démarrage en utilisant efibootmgrpeut vous permettre d'installer rEFInd (ou ce que vous voulez) sous un nom de fichier plus sensé.
Rod Smith