Comment installer Linux depuis l'installeur de Windows ?

par Korben -

Vous rêvez d’installer Linux, mais vous avez peur de perdre Windows ? Et bien grâce à cette astuce un peu folle, vous allez pouvoir installer Linux directement depuis l’installateur Windows. Si si, c’est possible. Bon, je vous préviens, ce n’est clairement pas pour les débutants. Mais si vous aimez les défis techniques et que vous n’avez pas peur de bidouiller, vous allez kiffer !

L’idée de base est simple (ou presque) : Il s’agit de préparer une installation de Linux sur une partition NTFS, puis de la compresser dans un fichier WIM qu’on intègre ensuite à l’ISO de Windows. Puis, lors de l’installation de Windows, on choisira l’image Linux et hop, le tour est joué ! Enfin, pas tout à fait…

La première étape consiste à installer Linux sur une partition NTFS. Pour cela, il faut choisir une distribution qui supporte bien ce type de partition, comme Arch Linux ou Alpine Linux. L’installateur d’Alpine est particulièrement pratique car il ne vérifie pas le type de partition et vous laisse faire ce que vous voulez.

On commence par créer les partitions nécessaires : une partition EFI de 100Mo en FAT32, une partition de 16 Mo qu’on n’utilisera pas mais qui est nécessaire pour que le numérotage des partitions corresponde à ce que fait l’installateur Windows, et enfin notre fameuse partition NTFS pour Linux qui occupera le reste du disque.

On monte tout ça, et on installe Alpine en suivant le guide d’installation manuelle. Il faudra juste penser à modifier quelques détails :

  • Dans le fichier /etc/fstab, remplacer les UUID par les bons vieux /dev/sdaX, sinon ça ne marchera pas au reboot car les UUID auront changé.
  • Ajouter le module ntfs3 dans l’initramfs en créant un fichier /etc/mkinitfs/features.d/ntfs3.modules contenant le chemin du module, et en regénérant l’initramfs avec la commande mkinitfs.
  • Dans la config de Grub, remplacer aussi les UUID par les /dev/sdaX.

Une fois l’installation Linux terminée, on la compresse dans un fichier WIM avec l’outil wimlib sous Linux :

wimcapture /mnt/linux linux.wim --compress=LZX

Maintenant, passons à la partie Windows. On télécharge l’ISO de Windows 10, et on remplace le fichier install.wim dans le dossier sources par notre linux.wim. Si on essaie de démarrer avec cette ISO modifiée, Windows va râler et refuser de s’installer car il ne trouve pas les termes de licence Microsoft qu’il attend.

L’astuce, c’est d’intégrer aussi à notre image WIM un environnement de préinstallation Windows (WinPE). On va le personnaliser pour qu’il rende Linux bootable au prochain redémarrage à notre place.

Pour cela, on ajoute ces commandes au script startnet.cmd de WinPE :

  1. Monter la partition EFI avec diskpart et le script mount-efi.txt contenant : ``

select disk 0
select partition 1 <br></br>assign letter=S<br></br>exit

`` 2. Appliquer le contenu de la partition /boot d’Alpine capturé dans efi.wim sur la partition EFI montée en S: avec la commande : dism /Apply-Image /ImageFile:"C:efi.wim" /Index:1 /ApplyDir:S: 3. Supprimer le gestionnaire de démarrage de Windows avec : bcdedit /delete {bootmgr} /f

Dernier petit détail, l’installateur Windows vérifie la présence d’un CLUF valide dans l’image WIM. On va donc lui mettre le texte de la licence GPLv2 dans le fichier E:WindowsSystem32en-USLicensesWindowsPE_Defaultlicense.rtf.

On recrée ensuite notre ISO de l’extrême avec oscdimg, et on tente l’installation. Ô joie, ça fonctionne ! L’installateur nous propose bien notre image Linux, on clique, ça mouline, ça reboot et… Tadaaa ! Un joli Tux nous accueille !


Bon, évidemment, cette méthode est loin d’être parfaite. La capture WIM ne préserve pas les droits des fichiers Linux, donc il faudra les réparer. Et utiliser NTFS pour sa racine Linux, c’est s’exposer à de potentiels gros soucis, comme se retrouver en lecture seule au moindre pet de travers. Mais bon, question bidouille, je trouve que c’est un sacré tour de force !

Si vous voulez tous les détails bien techniques de cette prouesse, je vous invite à lire l’excellent article sur prose.nsood.in et un grand merci à @bearstech pour le partage initial !

Voilà, j’espère que cette petite news décalée vous aura plu mais ne faites pas ça sur votre ordi de boulot, hein ! C’est juste pour le fun ;-) Sur ce, amusez-vous bien et à bientôt pour de nouvelles aventures Windaubesques !