Dual-boot Ubuntu complètement chiffré – Windows : configuration de Grub

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

Configuration de Grub

Ubuntu 16.04 et 17.04 en mode UEFI

Pages 1 - 2 - 3 - 4

boots-1868027_640

Le système Ubuntu est installé sur des volumes logiques dans un container chiffré à côté de Windows.

 

Il faut maintenant installer l'application de démarrage Grub et la configurer pour le dual-boot.

Il faudra également ajouter un fichier clé pour ouvrir le container LUKS sans avoir à taper une deuxième fois le mot de passe de déchiffrement (une fois pour lancer Grub, une deuxième fois pour déchiffrer le système).

Montage des partitions et chroot

À la fin de l'installation du système à la page précédente, nous avons demandé de ne pas redémarrer.

À l'aide de commandes dans le terminal, nous allons maintenant activer les partitions sur lesquelles le système Ubuntu a été installé (on "monte" les partitions) puis nous rentrerons dans le système (c'est le "chroot") afin d'installer Grub.

Pour se remémorer le schéma des disques :

ubuntu@ubuntu:~$ lsblk

 

lsblk cryptsetup

 

 

ubuntu@ubuntu:~$ sudo mount /dev/mapper/vgubuntu-root /mnt
ubuntu@ubuntu:~$ sudo mount /dev/sda2 /mnt/boot/efi

ubuntu@ubuntu:~$ sudo mount --bind /dev /mnt/dev
ubuntu@ubuntu:~$ sudo mount -t proc /proc /mnt/proc
ubuntu@ubuntu:~$ sudo mount --bind /run /mnt/run
ubuntu@ubuntu:~$ sudo mount -t sysfs /sys /mnt/sys

 

ubuntu@ubuntu:~$ sudo chroot /mnt /bin/bash

root@ubuntu:/#

 

Nous sommes maintenant chrootés dans le système installé (le prompt a changé et est devenu root@ubuntu).

Installation de Grub

Une fois dans le chroot, nous installons l'application Grub pour les systèmes UEFI :

root@ubuntu:/# sudo apt update
root@ubuntu:/# sudo apt install grub-efi
Reading package lists... Done
(...)
Do you want to continue? [Y/n] Y

 

Ajout d'un fichier clé pour déchiffrer les partitions

Pour le moment, afin de lancer le système d'exploitation, nous aurions à taper le mot de passe de déchiffrement deux fois :

  • une fois pour lancer Grub
  • une autre fois pour qu'il lance le système d'exploitation

 

Afin de n'avoir à taper qu'une seule fois ce mot de passe, nous allons créer un fichier clé qui sera accepté par les partitions pour lancer le déchiffrement (en effet, cryptsetup nous permet d'avoir jusqu'à 10 mots de passe ou fichiers clé différents pour le même volume).

 

Création du fichier clé :

root@ubuntu:/# dd bs=512 count=4 if=/dev/urandom of=/crypto_keyfile.bin
4+0 records in
4+0 records out
2048 bytes (2.0 kB, 2.0KiB) copied, 0.000406205 s, 5,0 MB/s

Ajout du fichier clé à cryptsetup

root@ubuntu:/# cryptsetup luksAddKey /dev/sda5 /crypto_keyfile.bin
Enter any existing passphrase: Taper le mot de passe de déchiffrement

 

Sécurisation du fichier clé

root@ubuntu:/# chmod 000 /crypto_keyfile.bin

 

Configuration du lancement du fichier clé

root@ubuntu:/# nano /etc/initramfs-tools/hooks/crypto_keyfile

 

Dans la fenêtre qui s'ouvre, taper :

cp /crypto_keyfile.bin "${DESTDIR}"

 

hooks crypto keyfile

Ctrl-o pour enregistrer, Ctrl-x pour quitter

 

root@ubuntu:/# chmod +x /etc/initramfs-tools/hooks/crypto_keyfile

 

Configuration finale de Grub

 

Nous allons maintenant terminer la configuration de Grub pour le chiffrement.

Il faut au préalable déterminer l'identifiant (UUID) de la partition sur laquelle se situe Ubuntu.

root@ubuntu:/# blkid

 

Repérer la ligne indiquant /dev/sda5, sélectionner UUID="xxxx(...)xxxx", clic droit et Copier

blkid sda5-crypt

 

root@ubuntu:/# nano /etc/crypttab

Dans la fenêtre de l'éditeur, taper

sda5-crypt

Faire un espace puis clic droit et copier (Paste) l'UUID.

Enlever les guillemets "" autour de l'identifiant, ajouter un espace puis taper :

/crypto_keyfile.bin luks,keyscript=/bin/cat

 

Cela devrait ressembler à ça :

etc/crypttab sda5-crypt

 

Ctrl-o et Ctrl-x pour enregistrer et fermer.

 

root@ubuntu:/# update-initramfs -u
update-initramfs: Generating /boot.initrd.img-4.xx.x-xx-generic

 

Modification de Grub

root@ubuntu:/# nano /etc/default/grub

 

Il y a trois modifications à opérer :

  • commenter GRUB_HIDDEN_TIMEOUT=0 (mettre un # en tête de ligne)
  • rajouter la commande : GRUB_ENABLE_CRYPTODISK=y
  • rajouter la commande : GRUB_CMDLINE_LINUX="cryptdevice=/dev/sda5:sda5-crypt"

 

On doit aboutir à ceci :

etc/default/brub sda5-crypt

 

Ctrl-o, Ctrl-x

 

root@ubuntu:/# grub-install /dev/sda
Installing for x86_64-efi platform
Installation finished. No error reported

(Ne pas s'inquiéter si il y a des avertissements File descriptor 4 leaked on vgs invocation).

 

Pour ceux qui font une installation dans une machine virtuelle :

root@ubuntu:/# sudo mkdir /boot/efi/EFI/boot
root@ubuntu:/#  sudo cp /boot/efi/EFI/ubuntu/grubx64.efi /boot/efi/EFI/boot/bootx64.efi

Sortie du chroot et démontage

root@ubuntu:/# exit
exit
ubuntu@ubuntu:~$ sudo umount -R /mnt

La configuration de l'application de démarrage, il ne reste plus qu'à qu'à relancer l'ordinateur pour vérifier.

Redémarrage de l'ordinateur

Relancer l'ordinateur.

Nous arrivons sur la page grub nous demandant d'indiquer le mot de passe de déchiffrement :

grub crypté

 

Après l'avoir donné et tapé Entrée, nous arrivons sur la page principale de Grub :

 

grub dual-boot

 

Taper Entrée sur Ubuntu (ou attendre quelques secondes).

L'écran suivant nous informe que cryptsetup a pu monter le disque chiffré grâce au fichier clé :

sda5 déchiffré

 

Nous arrivons finalement à la page de l'utilisateur. Mettre cette fois-ci le mot de passe utilisateur (et non celui du chiffrement).

ubuntu mot de passe utilisateur

 

Pour la finalisation de l'installation (mise à jour, pilotes graphiques, etc.), je vous invite à vous reporter à cette page.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *