Installer Linux sur un portable HP ProBook x360 G1 11 EE

Je ne pensais pas qu’en 2019, j’aurais besoin de vous aider, et de rédiger un article sur « comment installer Linux ». Ça semblait être devenu tellement facile… Jusqu’à ce que j’essaie sur cette machine.

Le HP ProBook x360 G1 11 EE est un petit portable sympa, avec un écran tactile, pouvant se transformer en tablette, et qui a été largement distribué à travers des expérimentations de Lycées numériques (remplacement des manuels scolaires papiers par leurs versions électroniques bourrées de DRM et obligeant à visualiser les cours avec des viewers horribles qui ne fonctionnent que sous Windows, la plupart mal fichus et rappelant l’informatique du siècle dernier ; mais là est un autre problème). Mon grand a eu le sien subventionné par la Région Grand Est, mais j’ai cru comprendre que d’autres régions avaient fait le même choix (la Région Occitanie/Pyrénées-Méditerranée a distribué un portable appelé « lOrdi » qui semble être ce même modèle).

Or, ce modèle destiné à l’enseignement est né d’un partenariat avec Microsoft, qui a pour conséquence… que le BIOS (enfin, le microprogramme UEFI) de la bête est bridé, et ne permet pas de lancer Linux ! Enfin, en creusant un peu, on se rend compte assez vite que tout n’est pas si noir. Les ingénieurs HP n’ont pas cherché beaucoup pour réaliser ce bridage, et se sont contentés d’interdire le lancement de GRUB (ce qui est déjà bien casse-pied, vu qu’une immense majorité des distributions Linux utilisent GRUB2 comme système de boot).

Une semaine après avoir eu la bête entre les mains, je suis un homme heureux : mon HP x360 EE est en dual boot Windows 10 / KUbuntu (n’aimant pas GNOME3, et trouvant que Linux Mint prend une mauvaise direction avec l’arrivée de bugs en conséquence, je suis revenu à KUbuntu, mais ce que j’explique ici doit fonctionner avec toutes les distributions, sous réserve d’adapter les lignes de code « apt-get » par leur équivalent si votre distribution n’est pas « Debian like »). Pour vous faire gagner du temps, voici mon aventure pour en arriver là.

1) Ce qu’il ne faut pas faire

Ne perdez pas votre temps à tenter d’installer GRUB2 coûte que coûte, même manuellement. J’ai essayé, beaucoup ont essayé (, , …même ils n’étaient pas loin, mais après, pas simple de faire les mises à jours de Linux), mais on finit toujours par se casser les dents (en particulier avec toutes les commandes basées sur « efibootmgr » qui échouent, l’accès au paramétrage de l’UEFI de la bête étant quand même bien bridé).

Une bonne solution serait certainement d’arrêter d’utiliser GRUB, et d’utiliser à la place (par exemple) Syslinux. Mais comme les distributions que j’utilise ne gèrent pas Syslinux (ou autre), il fallait tout se faire à la main. Pour l’installation, et surtout, gérer les erreurs à chaque mise à jour du noyau Linux (et faire ces mise à jour à la main). S’il n’y avait pas eu d’autres choix, j’en serais certainement arrivé là… mais c’eut été une suite de bonnes galères (je suis trop vieux — et devenu trop fénéant — pour ça).

J’ai cru au miracle en tombant sur ce document PDF de Vincent Hyvert, qui utilise « rEFInd » comme boot manager. Sauf que… malheureusement, ce document se limite à expliquer comment créer une clé USB de boot, qui permet ensuite de lancer le Linux installé sur le PC. Il faut donc toujours avoir cette clé sous la main, et passer par elle pour booter sous Linux. Néanmoins, ce document a été la révélation qui m’a apporté la solution, à savoir : utiliser « rEFInd ».

La chose à ne pas faire non plus est de suivre la documentation officielle de rEFInd. J’ai suivi la doc (§2.3) à la lettre, et je me suis retrouvé avec un PC qui, au boot, vous propose le choix entre Windows (très bien, ça marche), ou « Refind ». Et en choisissant ce second, ça lance Windows qui détecte un problème, et qui vous lance le système de réparation automatique. Pas glop.

N’y arrivant pas sous Windows, j’ai essayé avec la clé d’installation Ubuntu (enfin KUbuntu pour moi). J’ai installé le système, il y a échec d’installation de GRUB à la fin. Je reprends alors la main, je monte ma partition root+boot, et je lance dessus l’installation de « apt-get install refind » (oui, il y a un paquet rEFInd officiel depuis Ubuntu 18.04). J’ai alors essayé plein de trucs… en vain (c’est probablement possible d’y arriver, mais j’ai dû louper quelque chose).

2) Ce qu’il faut faire (principe théorique)

Au final, la solution est assez simple. Mais contrairement à ce que propose la documentation de rEFInd (installation depuis Windows), il ne faut pas « créez un nouveau chargeur de démarrage » qui s’appellerait Refind, en parallèle de celui de Windows (ça ne fonctionne pas, Cf. précédent chapitre). Il faut simplement… écraser le « Gestionnaire de démarrage Windows » par rEFInd.

Petit rappel pour mieux comprendre ce qu’on va faire. Depuis le remplacement du BIOS traditionnel par l’UEFI, il faut avoir sur votre disque une partition « ESP » de type « EFI », formatée en FAT32. En général, cette partition « ESP » un peu spéciale ne contient qu’un seul dossier : « EFI ». Et lui contient d’autres sous-dossiers (« Microsoft », « Boot », voire des dossiers copiés par votre distribution Linux comme « Ubuntu », etc.). Au moment du boot, l’UEFI interroge sa configuration de boot (la BCD, pour Boot Configuration Data). La BCD contient plusieurs entrées, dont une qui s’appelle « boot manager » (identifiée par le nom « bootmgr »). L’UEFI va alors charger le programme pointé par cette entrée. Quand il n’y a qu’un Windows 10 sur le PC, le boot manager est sur la partition « ESP », et il s’agit du programme contenu dans le fichier « \EFI\MICROSOFT\BOOT\BOOTMGFW.EFI ». Une fois ce programme chargé, il va lister les différents « chargeurs de démarrage » qui sont dans la BCD. C’est là qu’il peut trouver celui de Windows (qui n’est pas sur la partition « ESP », mais simplement dans votre dossier « Windows » de votre partition « C:\ », soit « Windows\System32\winload.efi » en ce qui me concerne), mais il y trouve aussi ceux ajoutés par Linux, comme GRUB. On l’a vu, ajouter rEFInd comme nouveau « chargeur de démarrage » qui serait chargé par le « boot manager » standard échoue. On va donc remplacer le « boot manager » standard par rEFInd. Voici comment.

3) Ce qu’il faut faire (en pratique)

A ce stade, on suppose que vous êtes assez à l’aise pour avoir :

  • installé Windows 10, en laissant de la place sur le disque pour installer Linux (pour ma part, j’ai laissé ~ 22,2 Go libres pour Linux) ;
  • créé une clé USB d’installation Linux (Debian, Ubuntu, ou autre). Cette clé doit être créée avec la commande « dd » depuis un autre PC Linux, ou bien sous Windows par exemple avec l’utilitaire Rufus, en faisant bien attention de sélectionner la méthode « dd » (et surtout pas « ISO ») au moment de créer la clé ;
  • installé Linux en parallèle de Windows avec cette clé. Pour ma part, j’ai choisi de partitionner manuellement mon disque, j’ai ajouté une partition ext4 de 11 Go comme racine « / », une partition de 11 Go ext4 pour « /home », et les 200 Mo restant comme partition de swap, histoire de ne pas gâcher 😉 Évidement, tout à la fin, vous avez le droit à un message d’erreur vous indiquant que l’installation de Grub a échoué. On s’en doutait… éteignez le PC, et démarrez-le (il démarre alors normalement sous Windows).

Si vous avez déjà fait des choses avec votre Windows, c’est le bon moment pour faire des sauvegardes. Même si ce qu’on va bidouiller doit certainement se réparer facilement en bootant sur la clé d’installation de Windows, et en demandant une réparation, on n’est jamais trop prudent.

Sur votre HP x360 EE démarré sous Windows, téléchargez le fichier refind-bin-xxx.zip (avec xxx le numéro de version) depuis ce site. A l’heure où j’écris cet article, il faut aller dans le dossier « 0.11.4 » et télécharger « refind-bin-0.11.4.zip » ; à vous d’adapter si de nouvelles versions sont sorties depuis).

Décompressez ce fichier ZIP (par exemple avec 7zip en faisant un clic droit sur l’archive, et en choisissant « 7zip>extraire vers refind-bin-xxx »). Ouvez le dossier « refind-bin-xxx » nouvellement créé dans l’explorateur Windows, et déroulez le menu « Fichier>Ouvrir Windows PowerShell>Ouvrir Windows PowerShell en tant qu’administrateur ». Juste pour vérifier, taper une commande « DIR ». Vous devez voir s’afficher des dossiers « banners », « docs », etc., et surtout un dossier « refind ». Si tout est OK, nous allons monter la fameuse partition « ESP » par un :

mountvol S: /S

Nous allons copier le dossier « refind » vers la partition « ESP » (surtout ne pas oublier de terminer par un anti-slash) :

xcopy /E refind S:\EFI\refind\

On va dans ce nouveau dossier « refind » et on vérifie que tout est OK :

cd S:\EFI\refind
dir

Vous deviez voir (notamment) un fichier « refind.conf-sample » que nous allons utiliser comme trame de fichier de configuration pour notre rEFInd :

copy refind.conf-sample refind.conf
notepad refind.conf

Le bloc notes Windows s’ouvre alors avec le contenu du fichier « refind.conf ». Comme l’écran de notre HP x360 EE a la bonne idée d’être tactile, nous allons activer la souris et l’écran tactile. Pour ça, nous allons rechercher la ligne « #enable_touch », et supprimer le « # » qui se trouve à gauche (qui avait pour rôle de commenter la ligne). De même, un peu plus loin, supprimer le « # » à gauche de la ligne « #enable_mouse ». Faites alors « Fichier>Enregistrer », puis « Fichier>Quitter ». De retour dans le PowerShell, nous allons pouvoir mettre rEFInd comme « boot manager », avec la commande (ne pas oublier le caractère cote ‘ avant et après les accolades) :

bcdedit /set '{bootmgr}' path \EFI\refind\refind_x64.efi

Et… c’est tout pour ce qui est de l’installation de rEFInd, vous pouvez éteindre le PC. Par contre, coté Linux… Grub est encore là. Et une mise à jour « sudo apt-get distupgrade » échouerait si un nouveau noyau Linux venait à sortir. Il suffit donc de supprimer définitivement Grub de votre installation Linux (ce qui ne pose pas de problème, c’est rEFInd qui gère le démarrage maintenant).

Aussi, allumez le PC. Vous devriez avoir rEFInd qui s’affiche. Si on voulait démarrer Windows, il suffirait de cliquer (carrément sur l’écran tactile, la classe non ?) sur l’icône Windows pour que le PC démarre… Windows. Mais nous, nous allons cliquer sur l’icône « Linux » la plus à droite. Si vous avez bien travaillé, Linux démarre normalement. Il ne reste qu’à vous authentifier, à lancer une fenêtre de terminal, et à taper :

sudo apt-get -y remove grub2-common grub-common grub-pc grub-pc-bin

Vous pouvez enfin mettre à jour votre Linux, et utiliser votre PC normalement.

Edit du 06/10/2019: après la dernière mise à jour Linux (nouveau noyau), le touchpad s’est mis à ne plus fonctionner. Si ça vous arrive aussi, la procédure est toute simple, la voici : https://desvigne.org/2019/10/06/faire-fonctionner-le-touch-pad-du-hp-probook-x360-g1-11-ee-sous-linux/


Commentaire

Installer Linux sur un portable HP ProBook x360 G1 11 EE — 7 commentaires

  1. Merci infiniment pour ce tuto qui m’a sauvé pas mal de journées de bidouillage excessif ! Linuxien depuis un bon bout de temps, je ne savais pas que rEFInd allait me sauver la mise ! Le tuto est super ! Encore merci !!!

    • @Dodo : tant mieux si ça a pu servir à quelqu’un… Sachant que ce sont surtout les développeurs de rEFInd et autres testeurs qui m’ont mis sur la piste qu’il faut remercier 😉

  2. Super ça marche merci, sur ma version de Windows j’ai du moi enlever le caractère cote ‘ avant et après les accolades’ pour le bcdedit, sinon c’est super facile à suivre! Quel détail est travail d’écriture pédagogique pour ce tuto, c’est génial bravo…

Laisser un commentaire