Dual-boot Ubuntu complètement chiffré – Windows : partitionnement, LUKS et LVM

Ubuntu complètement chiffré (boot compris) avec Windows

Partitionnement, LUKS et LVM

Ubuntu 16.04 et 17.04 en mode UEFI

Pages 1 - 2 - 3 - 4

biosphere-1541724_640

L'objectif de cette première partie du tutoriel est de préparer la partition qui va accueillir Ubuntu à côté de Windows.

Deux étapes sont nécessaires :

  • la création et la configuration d'un container chiffré LUKS avec l'application Cryptsetup
  • la création de volumes dans ce container avec LVM pour séparer le système proprement dit (root) des données personnelles (home) et de l'espace d'échange (swap).

À noter, Ubuntu 17.04 installe par défaut l'espace d'échange (swap) dans un fichier sur le volume du système (root) et non sur un volume séparé. On peut toutefois garder l'option du volume séparé. Ce tutoriel prend en compte les deux scénarios.

Lancement de la clé USB-live Ubuntu

Après avoir inséré l'USB-live Ubuntu, on redémarre l'ordinateur.

Il faut ensuite accéder au menu de boot avant le lancement de Windows et choisir de démarrer depuis la clé USB en mode UEFI.

 

L'écran de Grub nous accueille :

ubuntu uefi

 

Taper Entrée sur Try Ubuntu without installing.

 

Au bout de quelques instants, nous devons arriver sur l'écran d'accueil d'Ubuntu.

 

Si vous avez un écran illisible ou pas d'affichage du tout, votre carte graphique n'est peut être pas encore reconnue.

Dans ce cas, redémarrer l'ordinateur, choisir la clé USB en mode UEFI dans le menu de boot.

Positionné sur la ligne "Try Ubuntu without installing", taper la lettre "e" (pour éditer).

Descendre jusqu'à la ligne commençant par

linux  /casper/vmlinuz

et à la fin de cette ligne, taper :

nomodeset

(no,odeset en qwerty).

Cela fera démarrer Ubuntu avec un affichage de base. Ce problème sera réglé après l'installation.

Réglage du clavier français (azerty)

Par défaut, le clavier est américain (qwerty). Pour obtenir le clavier français, clic droit en haut à droite de l'écran sur le symbole "En" et choisir l'option Text Entry Settings...

text entry settings

 

En bas à gauche de la fenêtre qui s'est ouverte, cliquer sur le symbole "+", dans la liste déroulante sélectionner French et cliquer sur Add.

French add

 

De retour sur le bureau, cliquer à nouveau sur le symbole En puis choisir French.

choix clavier French

Partitionnement du disque avec cgdisk

Avant de lancer l'installation, nous allons déjà créer créer une nouvelle partition chiffrée qui accueillera Ubuntu.

L'installateur d'Ubuntu (Ubiquity) n'offre pas la possibilité d'effectuer l'ensemble de ces opérations, nous allons donc devoir utiliser le terminal de commande pour lancer la procédure.

Pour ouvrir un terminal, cliquer sur le Dash (symbole Ubuntu en haut de la barre de menu) et taper "term". Cliquer ensuite sur l'icône du Terminal.

ouverture terminal

 

Avant de lancer cgdisk

Nous allons nous servir de l'utilitaire cgdisk pour partitionner le disque en mode GPT (compatible avec l'UEFI). Attention, sur un disque non déjà formaté en GPT, cette manoeuvre peut rendre inaccessible les données déjà présentes.

Dans le terminal, taper d'abord la commande lsblk pour connaître le nom du disque dur :

lsblk windows

 

Examinons le résultat :

  • les deux dernières lignes (sr0 et loop0) concernent la clé USB.
  • sur la première ligne, apparaît le nom du disque dur (sda). Il faut le noter.
  • en dessous de la ligne sda, nous voyons les différentes partitions déjà présentes sur le disque dur. Il y en a ici 4, toutes occupées par Windows. La 2e partition (sda2) est la partition spéciale UEFI de Windows. Nous en aurons besoin plus tard.

Vous pourrez obtenir un résultat différent et dans un ordre différent. S'il n'y a qu'un disque (en plus de la clé USB) pas de problème. Si il y en a plusieurs, il faudra se repérer avec les tailles de disques ou encore lancer l'utilitaire Disks dans le Dash.

La suite du tutoriel prend pour hypothèse que le disque sur lequel on veut installer Ubuntu s'appelle sda. Modifiez si vous avez un autre identifiant.

 

Utilisation de cgdisk

Dans un terminal, nous lançons l'utilitaire cgdisk :

$ sudo cgdisk /dev/sda

 

ouverture cgdisk

 

Nous retrouvons nos 4 partitions Windows et on vérifie que la partition sda2 est bien le volume EFI. Nous nous positionnons sur l'espace libre que nous avons dégagé (ic 31.3 GiB) et sur [ New ].

Nous tapons Entrée à chacune des options qui nous sont proposées afin d'occuper la totalité de l'espace libre (si on souhaite utiliser uniquement une partie de l'espace, donner la taille en G à la deuxième option).

Cela donne ce résultat :

cgdisk nouvelle partition

 

Si cela convient, se positionner sur [ Write ] et Entrée, puis confirmer en tapant "yes" à l'invite.

Pour quitter cgdisk, se positionner sur [ Quit ] et Entrée.

 

Pour vérifier que cela a bien fonctionné :

$ lsblk

 

Une nouvelle partition sda5 devrait apparaître :

lsblk sda5

Chiffrement du container LUKS avec cryptsetup

 

La partition sda5 doit maintenant être chiffrée et configurée.

$ sudo cryptsetup -c aes-xts-plain64 -y --hash sha512 --use-random luksFormat /dev/sda5

 

Un avertissement nous prévient que les données sur la partition sda5 vont être irrémédiablement perdues, confirmer avec YES (majuscules).

Donner ensuite un mot ou une phrase de passe pour le chiffrement. La force du chiffrement repose en grande partie sur ce mot de passe, il doit donc être complexe tout en étant mémorisable et pas trop fastidieux à taper.

En effet il faudra le donner à chaque démarrage.

Une fois le mot de passe donné, il faut le confirmer pour vérification.

 

WARNING
========
This will overwrite data on /dev/sda5 irrevocably.

Are you sure? (Type uppercase yes): YES
Enter passphrase:
Verify passphrase:

 

Ajout du mot de passe en qwerty

Nous avons pour le moment donné notre mot de passe sur un clavier azerty. Or, le lanceur de démarrage que nous utiliserons plus tard est configuré en qwerty. Il ne reconnaîtra donc pas le mot de passe.

Nous allons profiter du fait que cryptsetup accepte plusieurs mots de passe pour le "traduire" en qwerty.

ubuntu@ubuntu:~$ sudo cryptsetup luksAddKey /dev/sda5
Enter any existing passphrase: Taper ici le mot de passe précédent
Enter new passphrase for key slot:

 

Laisser le terminal ouvert et basculer maintenant le clavier en qwerty en cliquant sur l'icône "Fr" en haut à droite de la barre des tâches et choisir English (US).

bascule clavier qwerty

 

Retour dans le terminal :

ubuntu@ubuntu:~$ sudo cryptsetup luksAddKey /dev/sda5
Enter any existing passphrase: 
Enter new passphrase for key slot: Retaper maintenant le même mot de passe
qui va être interprété en qwerty
Verify passphrase: On redonne le mot de passe toujours avec le clavier En

Voilà, le mot de passe sous clavier qwerty est ajouté. On retourne sur l'icône de langue pour rebasculer le clavier en azerty (Fr).

Création des volumes logiques avec LVM

Dans la partition chiffrée sda5, nous allons créer trois volumes logiques afin de séparer le système (root), l'espace d'échange (swap) et les données personnelles (home).

Ubuntu 17.04 peut fonctionner sans partition swap, une variante est donc proposée si on choisit cette configuration.

 

Dans le terminal :

$ sudo cryptsetup luksOpen /dev/sda5 sda5-crypt
Enter passphrase for /dev/sda5: taper le mot de passe de chiffrement
$ sudo pvcreate /dev/mapper/sda5-crypt
Physical volume "/dev/mapper/sda5-crypt" successfully created.
$ sudo vgcreate vgubuntu /dev/mapper/sda5-crypt
Volume group "vgubuntu" successfully created

 

Variante avec volume swap (Ubuntu 16.04, possible aussi avec Ubuntu 17.04)

$ sudo lvcreate --size 10G vgubuntu --name root
Logical volume "root" created.
$ sudo lvcreate --size 8G vgubuntu --name swap
Logical volume "swap" created.
$ sudo lvcreate -l +100%FREE vgubuntu --name home
Logical volume "home" created.

Variante sans volume swap (uniquement Ubuntu 17.04)

$ sudo lvcreate --size 10G vgubuntu --name root
Logical volume "root" created.
$ sudo lvcreate -l +100%FREE vgubuntu --name home
Logical volume "home" created.