Installer un Ubuntu portable sur un périphérique USB sans clé USB supplémentaire (UEFI)

Cette article s’adresse à vous si et seulement si :

  • Vous souhaitez avoir une distribution Linux (Ubuntu dans cet article) complètement indépendante de votre ordinateur à loger sur un disque dur/une clé USB externe ;

et/ou

  • Vous n’avez pas de clé USB supplémentaire pour y mettre une distribution Linux servant d’installateur ;
  • Vous êtes curieux 🙂

Bienvenue !

Matériel requis

  • Un ordinateur UEFI avec un système d’exploitation fonctionnel, minimum 4GB/ram;
  • Une clé USB/disque dur USB minimum 8gb vierge ;
  • Un ISO Live-CD d’Ubuntu.

Préparation de notre installateur

Pour commencer, nous allons tout d’abord télécharger la dernière version bureau LTS d’Ubuntu. A l’heure actuelle, il s’agit de la version 20.04.1. Vous pouvez la trouver ici : https://ubuntu.com/download/desktop.

Une fois téléchargée, il vous suffit de la « graver » sur votre clé USB. Je vous conseil le logiciel balenaEtcher (https://www.balena.io/etcher/), qui est simple, rapide et efficace. Vous pouvez l’installer sur Linux, Windows et Mac 😉

Comme vous pouvez le voir, le logiciel est assez simple à utiliser et nécessite trois étapes :

  1. « Select Image », il vous suffit de sélectionner l’iso Ubuntu précédemment téléchargé;
  2. « Select Drive », il faut choisir votre clé USB / disque dur USB qui va recevoir l’ISO. Attention, tous les fichiers contenus sur périphérique seront supprimés (même s’il y a plusieurs partitions). Ce disque servira également à accueillir l’OS par la suite.
  3. « Flash! » : on laisse travailler et on éteint l’ordinateur quand tout est terminé.

Booter sur notre clé/disque USB

Nous sommes fin prêt ! Nous allons pouvoir booter sur notre clé USB, si vous ne savez pas comment faire, je vous conseille de faire une recherche sur Internet car cela dépend de votre carte mère/ordinateur. Si vous n’y arrivez pas, n’hésitez pas à laisser un commentaire.

grub2 - Can I boot a Live USB fully to RAM, allowing me to remove the disk?  - Ask Ubuntu
GRUB Linux via Boot USB

Bienvenue dans l’univers merveilleux de Linux avec un aperçu de « Grub » (programme d’amorçage). Avant de démarrer, nous allons modifier les commandes de démarrage, en appuyant sur la touche « e ».

Pourquoi ? Nous allons charger le live-CD complètement sur la RAM. Cela nous permettra de libérer la clé ou le disque pour effectuer l’installation dessus. Très clairement, je n’avais pas de deuxième clé USB disponible pour un installateur ET un récepteur 🙂

enter image description here
On ajoute le paramètre « toram »

Pour charger le programme complètement dans la RAM, il suffit d’ajouter le paramètre « toram » après le mot « splash » et avant « — » (veiller à laisser un espace avant et après « toram »). Puis on tape sur ‘F10‘.

On laisse charger … et nous arrivons sur l’écran ci-dessous.

On choisi sa langue, puis on sélectionne « Essayer Ubuntu ». Ça charge…

Après chargement, on se retrouve sur le bureau live-cd d’Ubuntu. Patientez bien que les éléments charges (surveillez l’activité de votre disque dur/clé USB) puis débranchez votre disque USB. Attendez 5 secondes et rebranchez le.

Création des partitions du périphérique USB

Nous allons procéder à la création des partitions du périphérique USB. Recherchez et ouvrez l’application GParted à l’aide l’icône carré situé en bas à gauche

Génial, le logiciel GParted est ouvert. Il permet de partitionner, formater, redimensionner … vos disques durs ainsi que les périphériques externes USB. Nous allons l’utiliser pour préparer le périphérique USB à accueillir Ubuntu.

En haut à droite de l’application, vous avez le choix entre /dev/sda et /dev/sdb. La première option doit concerner le disque dur interne de votre PC : Il ne faut pas y toucher si vous ne souhaitez pas perdre les données situées sur celui-ci.

PS : Tout au long de l’article, nous considérons que vous possédez un seul disque dur interne. Si vous avez plusieurs disques durs interne, votre périphérique USB sera la plupart du temps la dernière option. Exemple : si vous avez deux disques durs interne, ils seront nommés respectivement sda et sdb. Votre périphérique USB sera donc sdc.

Prenez le en compte pour la suite de l’article si cela ne correspond pas avec les indications. Ici, nous prenons /dev/sdb correspondant à notre périphérique USB.

Nous allons nous positionner sur /dev/sdb qui doit représenter votre périphérique USB (n’hésitez pas à vérifier que les gigas affichés correspondent à votre disque)

Une fois que vous avez sélectionné le bon disque. Allez dans l’onglet Périphérique > Créer une table de partition. On vérifie que l’option de la table de partitions est bien « msdos » puis on clique sur « Appliquer ».

Après cela, nous avons notre périphérique USB entièrement non alloué de couleur grise. Nous allons créer deux partitions sur ce disque : une pour permettre le boot et une pour le reste du stockage.

On clique droit sur le volume non alloué (gris) puis on sélection « Nouvelle ». On rentre les informations suivantes :

  • Nouvelle taille (Mio): 100 ;
  • Système de fichiers : fat32.

On clique sur ajouter.

On réitère l’opération pour l’espace restant non alloué. Clique droit > Nouvelle, puis :

  • Nouvelle taille (Mio): définissez la taille de partition, laissez par défaut si vous souhaitez l’exploiter complètement;
  • Système de fichiers : ext4.

Voici l’écran que l’on doit avoir. Pour terminer, la création des partitions, il suffit d’appuyer sur le bouton valider (v vert) en haut.

On applique !

Great ! Il ne nous reste plus qu’à ajouter des drapeaux sur la partition fat32. Cela permettra de signifier à l’ordinateur qu’il s’agit d’une partition bootable. Pour ce faire, il suffit de faire un clique-droit sur la partition fat32 puis « Gérer les drapeaux ».

On coche « boot » et « esp » et on ferme.

Tout est bon, nous devrions avoir la même image (sauf la taille de la partition ext4 qui dépend de l’espace de votre périphérique USB).

Nous pouvons fermer GParted et procéder à l’installation d’Ubuntu !

Installation d’Ubuntu

Sur le bureau, il vous suffit de démarrer l’installeur présent sur celui-ci. L’installateur est assez intuitif. Après le choix de votre langue, de la disposition de votre clavier, vous arriverez sur le type d’installation. Si vous ne savez pas quoi faire, vous pouvez cocher les cases suivantes :

  • Installation normale
  • Télécharger les mises à jour pendant l’installation de Ubuntu
  • Installer un logiciel tiers pour le matériel graphique et Wi-Fi et des formats de média supplémentaire

PS: On peut également vous demander un mot de passe Secure Boot qu’il faut créer.

Une fois ces étapes faites, l’installateur vous demandera où installer Ubuntu, il faudra choisir l’option « Autre chose » et vous devez vous retrouver sur cette écran :

Nous retrouvons notre disque dur interne /dev/sda (vous devez très certainement avoir plus de partitions que moi) ainsi que /dev/sdb qui doit correspondre à votre périphérique USB, accompagné des sous-partitions que nous avons précédemment créées.

Nous allons définir le rôle de chaque partition On va tout d’abord sélectionner /dev/sb1, clique-droit, modifier. On sélectionne le mode EFI puis on valide sur « OK ».

Par la suite, nous allons recommencer l’opération sur /dev/sdb2. En y indiquant que l’on souhaite l’utiliser comme système de fichiers journalisé ext4, formater la partition et mettre le point de montage sur « / ».

Dernière étape, il faut modifier l’option « Périphérique où sera installé le programme de démarrage » est le définir sur votre périphérique USB (/dev/sdb ici en l’occurrence).

Notre disque USB est prêt à recevoir l’installation et doit se présenter comme ci-dessous :

Il nous reste plus qu’à cliquer sur « Installer Maintenant ».

Sélectionner votre fuseau horaire et créer votre compte utilisateur puis lancer l’installation. Ne redémarrer pas votre ordinateur à la fin de l’installation ! Il faudra rester sur le Live-CD !

Installer le lanceur Grub sur la disque USB

L’installateur d’Ubuntu est un peu envahissant… En effet, il créé un dual boot automatique s’installant dans la partition EFI du disque dur interne de votre ordinateur. Le problème c’est que votre disque dur USB ne pourra pas être lancé sur un autre ordinateur que le vôtre.

Nous allons corriger cela pour que le disque USB soit autonome et ne requiert pas de votre ordinateur pour démarrer.

A la fin de l’installation, Ubuntu vous propose de rester sur le système pour essayer ce que vous allez accepter. Nous allons démarrer le Terminal (même méthode que GParted). Saisissons les commandes suivantes :

sudo mount /dev/sdb2 /mnt
On monte notre partition ext4 de notre disque dur USB.
sudo nano /mnt/etc/fstab
Nous allons régler le bon UUID pour le boot. On remplace l'UUID du disque dur internet par votre périphérique USB.
  1. Copier/Coller la deuxième ligne commençant par UEFI.
  2. Mettre en commentaire (un # devant la ligne) la ligne copiée précédemment.
  3. Copier le numéro UUID de la première ligne sur la nouvelle ligne

Votre fichier doit ressembler à ça (bien sûr avec vos UUID)

Afin de préparer installation de GRUB, nous allons monter la partition EFI (fat32) de notre périphérique USB précédemment créée. Nous allons monter les dossiers systèmes nécessaires pour GRUB du périphérique USB sur le live-cd.

sudo mount /dev/sdb1 /mnt/boot/efi

sudo mount -B /dev /mnt/dev
sudo mount -B /dev/pts /mnt/dev/pts
sudo mount -B /proc /mnt/proc 
sudo mount -B /sys /mnt/sys

On lance le module efivars. Ce module nous permet d’accéder à la NVRAM de l’ordinateur, où sont stockés, entre autres, les entrées UEFI. Puis, on charge l’environnement Ubuntu du périphérique USB sur notre livre CD (chroot)

modprobe efivars
sudo chroot /mnt

On installe Grub

grub-install -d /usr/lib/grub/x86_64-efi --efi-directory=/boot/efi/ --removable /dev/sdb
On installe Grub sur notre disque dur externe

Le périphérique USB est bootable sans votre ordinateur !

Supprimer le Dual Boot de l’UEFI

Pour cette dernière étape, nous allons supprimer l’entrer « ubuntu » de l’UEFI interne. Pour ce faire et toujours sur le terminal du live-cd

efibootmgr -v

Le terminal doit vous répondre quelque chose de semblable :

BootCurrent: 0004
Timeout: 2 seconds
BootOrder: 0001,0003,0002,0004,0000
Boot0000  ubuntu	HD(1,GPT,3be746c0-b68f-4d6d-a4d1-e6f4601731ec,0x800,0xfa000)/File(\EFI\ubuntu\shimx64.efi)
Boot0001* Windows Boot Manager	HD(1,GPT,3be746c0-b68f-4d6d-a4d1-e6f4601731ec,0x800,0xfa000)/File(\EFI\Microsoft\Boot\bootmgfw.efi)WINDOWS.........x...B.C.D.O.B.J.E.C.T.=.{.9.d.e.a.8.6.2.c.-.5.c.d.d.-.4.e.7.0.-.a.c.c.1.-.f.3.2.b.3.4.4.d.4.7.9.5.}...d................
Boot0002* UEFI: IP4 Intel(R) Ethernet Connection (4) I219-LM	PciRoot(0x0)/Pci(0x1f,0x6)/MAC(4c364e42181d,0)/IPv4(0.0.0.00.0.0.0,0,0)..BO
Boot0003* UEFI: IP6 Intel(R) Ethernet Connection (4) I219-LM	PciRoot(0x0)/Pci(0x1f,0x6)/MAC(4c364e42181d,0)/IPv6([::]:<->[::]:,0,0)..BO
Boot0004* UEFI: TOSHIBA, Partition 1	PciRoot(0x0)/Pci(0x14,0x0)/USB(14,0)/USB(1,0)/HD(1,MBR,0x4c8c05eb,0x800,0x32000)..BO

Ici je localise mon entrée UEFI ubuntu qui comporte le numéro 0000 (Boot0000). Je vais donc la supprimer avec la commande suivante

sudo efibootmgr -B 0000
Attention, renseignez bien le bon numéro hexadécimal

Pour vérifier que tout fonctionne, éteignez l’ordinateur et débranchez le disque dur USB. Si vous bootez sur votre OS habituel, RAS !

Idem mais en essayant de booter sur votre nouveau disque dur USB, si ça boot, c’est que vous êtes parfait !

Enjoy ! Vous avez réussi à créer un disque dur externe USB comportant Ubuntu !