[RÉSOLU] HP Envy ignore GRUB et continue de booter sur windaube

Le problème

Il s'agit d'un problème bien connu avec HP: malgré l'install de linux, c'est windaube qui est chargé en premier, m'obligeant à appuyer sur F9 au démarrage pour choisir linux... à chaque fois.

Les solutions proposées sur le net

🟥 N°1 - efibootmgr

En gros, sous linux, on force l'ordre de démarrage grâce à efibootmgr dans un terminal (j'en avais parlé là : https://warriordudimanche.net/article1108/5da7ebb8b45e3 )

efibootmgr.png

Cette solution ne fonctionne pas car le PC semble ignorer le boot manager... Non seulement il l'ignore mais en plus, l'ancien ordre de démarrage est rétabli au reboot...

J'ai pourtant essayé sans secureboot et avec.

🟥 N°2 - modifier le fichier efi

Vu que GRUB semble ignoré, certains proposent de modifier le fichier efi chargé au démarrage. Ça se fait sous win avec un CMD en mode admin:

bcdedit /set {bootmgr} path \EFI\ubuntu\mmx64.efi

Pour info, le chemin vers le fichier efi, je l'ai trouvé dans le menu de GRUB quand je force le bootorder avec F9

PXL 20240427 092742656.MP.jpg

Au reboot, rien n'a changé, toujours win qui démarre...

🟥 N°3 - ruser avec efibootmgr

A force de cherche, on trouve des «solutions» du genre https://forums.linuxmint.com/viewtopic.php?t=188796

sudo efibootmgr -n 0000

En gros, le mec arrive à changer le boot order mais seulement pour le démarrage suivant (option -n)... ce qui marche.

Il automatise donc la commande à chaque démarrage en l'ajoutant au fichier /etc/rc.local... qui a disparu depuis (post de 2015...)

Je cherche encore et je tombe sur https://doc.ycharbi.fr/index.php/Rc.local qui explique une façon de restaurer ce fichier par une astuce... à ce stade on est à des astuces gigognes, ça commence à me déplaire. De toutes façons, même avec sudo, il me refuse la permission d'écrire un fichier etc/rc.local...

binbash.png

Je rerecherche et j'arrive sur des solutions pour lancer une commande en sudo au démarrage : https://www.malekal.com/linux-executer-script-commande-demarrage/

On y confirme la disparition de rc.local depuis l'arrivée de SystemD. D'autres solutions sont proposées:

  • passer par /etc/init.d pour déclarer un service...
  • créer un service systemD ...

pitin, ya pas plus simple ?!

🟥 N°4 - remodifier le fichier efi

En cherchant, j'ai trouvé ça https://www.malekal.com/comment-linux-demarre-pc-uefi-sequence-etape-complete/#La_sequence_complete_du_demarrage_d8217un_PC_UEFI_sur_Linux : on y explique la séquence de démarrage et on y explique les fichiers EFI... dont aucun nom ne correspond à ceux que j'ai... Un autre lien ( https://forums.cnetfrance.fr/macos-linux-et-autres-systemes/6808392-linux-mint-en-dual-boot-ne-demarre-pas-automatiquement?p=6808429#post6808429 ) propose les commandes avec les noms de fichiers efi «corrects» selon si le bios est en mode legacy ou pas.

​​​​​​A taper sous Windows :

bcdedit /set {bootmgr} path \EFI\ubuntu\grubx64.efi (sans secure-boot)

bcdedit /set {bootmgr} path \EFI\ubuntu\shimx64.efi (avec secure-boot activé)

Je redémarre donc, passe par le bios pour vérifier puis sous win pour la commande.

Comme le mode legacy et secureboot est disabled, je tape

bcdedit /set {bootmgr} path \EFI\ubuntu\grubx64.efi

et j'obtiens un " l'opération a réussi" mais une fois rebooté, l'ordi démarre toujours sur win...

Je me dis, retente avec secure boot... mais l'option reste désactivée et grisée... Ha oui, c'est vrai, il faut mettre un mot de passe BIOS pour avoir le droit de changer ça...

Une fois un mot de passe ajouté: rien n'y fait l'option reste grisée que ce soit en mode legacy ou pas...

image récupérée par fetchit

ceci est un chou blanc

J'essaie quand même shimx64.efi par acquit de conscience, mais toujours rien...

🟥 N°5 - passer par bootrepair

bootrepair.png

Je lance bootrepair et lui fais générer un boot info que je vous mets ici : https://zerobin.warriordudimanche.net/?29a1feb91a7a14f2#7eDpNtQ8YNRr3F5fEF23B49uoqBUvwDopukkpvnh5LGU

Puis j'essaie sans conviction l'option de base... avant d'éplucher https://linuxhint.com/ubuntu_boot_repair_tutorial/ pour voir ce que je peux faire de plus sans tout péter (car, contre toute attente, je n'ai encore rien pété à ce stade...)

Bon, bien entendu, boot repair n'acceptera de bosser que depuis une clé USB, pas mon linux de base...

Je récupère l'iso et je reboote. Après «réparation» toujours pas de changement.

🟥 N°6 - désactiver le fastboot depuis windows

Merci mille fois à Guigui pour ses conseils, en particulier celui du fastboot qui peut s'avérer taquin. ( https://shaarli.guiguishow.info/?nfrLYQ )

Toutefois, après désactivation du fastboot de win, toujours pas résolu.

🟩 N°7 - Créer un service systemD

Merci à 5-1 ( https://warriordudimanche.net/article1983/help-hp-envy-ignore-grub-et-continue-de-booter-sur-windaube#c1983-1 ) pour les explications et la simplification de la création de service. Du clé en mains ! 👍

Une fois les instructions suivies à la lettre... ça marche ! Je viens de rebooter et j'ai eu la joie de voir apparaître GRUB... Il a fallu ruser mais on a réussi à poutrer windaube...

Merci encore à tous pour vos conseils et pour le temps que vous avez pris à me les prodiguer !

❝ 12 commentaires ❞

1  5-1 le

Pour le n°3, la commande echo '#!/bin/bash' > /etc/rc.local fait que vous passez root pour faire echo (donc envoyer la ligne sur la sortie standard) mais la redirection vers le fichier se fait avec vos droits d'utilisateur normal (qui ne peut pas écrire dans ce fichier) d'où l'erreur.


Vous pouvez utiliser : echo '#!/bin/bash' | sudo tee -a /etc/rc.local qui fera l'écriture en root (et vous aurez toujours sur la sortie standard l'entrée, mais peu importe).


Ou vous pouvez lancer un éditeur en root sudo nano /etc/rc.local ou sudoedit /etc/rc.local et mettre le contenu qui vous intéresse.


Sinon, vous créez un service systemd : sudo systemctl edit --force --full fix-boot-order.service
et vous mettez dedans (je n'ai pas testé donc des erreurs sont possibles) :


[Unit]
Description=Fix boot order

[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/usr/bin/efibootmgr -n 0000

[Install]
WantedBy=multi-user.target

Puis dans le doute, sudo systemctl enable --now fix-boot-order.service pour l'activer au démarrage et le lancer immédiatement.

 
2  Bronco le

Merci pour toutes ces infos ! Je teste dès que possible !

 
3  Haru le

Merci beaucoup, ça m'a également aidé à réparer ! Ca fait des jours que je galérais !

 
4  Bronco le

De rien ! ravi de voir que ce billet a été utile

 
5  Pascal le

Tu devrais essayer refind, ça a marché pour le mien : http://www.rodsbooks.com/refind/

 
6  Bronco le

je ne connaissais pas... merci!

 
7  Albirew le

Le sudo commande > fichier m'a fait sursauter: le chevron est toujours fait avec l'user, donc c'est comme si t'avais fait sudo echo, puis une commande root sans sudo. du coup c'est normal qu'il râle...
pour que ta commande "fonctionne", il faudrait faire echo truc | sudo tee -a fichier, tee fonctionnant comme un chevron (et comme l'inverse d'un cat), le -a pour append (donc pour le double chevron)


sinon, tu peux foutre ta commande sudo efibootmgr -n 0000 non pas dans le rc.local, mais directement dans le cron root:
sudo crontab -e et tu rajoute une ligne dans le genre de @reboot /dossier/de/efibootmgr -n 0000 (fait un sudo whereis efibootmgr pour avoir le bon dossier)

 
8  Bronco le

Je n'avais pas pensé au tâches CRON ! pas bête !
merci encore

 
9  CgX le

Mais là du coup, ça marche mais si tu bootes une fois sur Windaube (en le faisant exprès hein), tu devras quand même faire la manip pour repasser sur linux ensuite, j'imagine.

 
10  Bronco le

Probablement mais ça reste mieux que de le faire à chaque reboot...


D'autant que comme sebsauvage le dit (https://sebsauvage.net/links/?IuQ8OQ ) certains HP ont «les chemins EFI codés en dur pour Windows». 😱 ce qui expliquerait beaucoup de choses...

 
11  Gilles le

Plus simple : virer ce PC de merde ? :D

 
12  Bronco le

Lol, c'est une solution que j'ai envisagée, je ne te le cache pas


c'était un PC de 2017 acheté d'occase en 2019 sur leboncoin...
Il tourne bien et ne fait pas trop chier... d'habitude.


Mais le prochain, je regarderai d'abord sur des boutiques fournissant du matos linux friendly... genre https://linuxshop.fr/ordinateur-portable-linux/6-971-lenovo-15p-r5-15-pouces-amd-ryzen-5-5500u-ram16go-ssd512go.html#/8-distribution_linux-linux_mint_213_mate


En plus, je ne joue presque plus et je préfère un pc léger qu'un pc puissant pour un portable...

 

Fil RSS des commentaires de cet article

✍ Écrire un commentaire

les commentaires relevant du SPAM seront filtrés et dégagés direct...

Quelle est le dernier caractère du mot cb0renp8 ?