Cette notice décrit une procédure pour obtenir une installation chiffré de windows et Linux Ubuntu en dual-boot. Windows et la partition de données sont chiffrés par TrueCrypt et Ubuntu est chiffré par dm-crypt avec LUKS.
Dans cette procédure, il est possible de conserver une installation de Windows déjà existante (à condition de libérer de l'espace disque pour les partitions Ubuntu). Par contre il faut installer ou réinstaller Ubuntu (ce serait plus compliqué en gardant une installation existante).
La procédure avec Windows XP y est décrite, car il y avait un besoin avec ce système. Cette procédure n'est pas encore testé avec Windows 7 (…ou 8), mais ça ne devrais pas être plus compliqué.
Si vous avez la possibilité de faire une installation en dual-boot sur un ordinateur muni d'un disque chiffrant, faites-le, ce sera beaucoup plus simple !
exemple :
partition | type | utilisation | taille |
sda1 | primaire ntfs | Windows-XP | 25Go |
sda2 | primaire ext2 | /boot | 400Mo |
sda3 | etendu | ||
sda5 | logique LUKS | Volume Group | 15 Go |
sda6 | logique ntfs | donnee | le reste |
4 partitions primaires ou étendus maximum.
La partition étendu contient les partitions logiques.
la partition au format LUKS contiendra à la fin de l'installation les volumes logiques :
LV-swap = swap et LV-slash = système Ubuntu.
Peut être fait complètement à partir d'un live-CD Ubuntu avec l'utilitaire gparted (ou presque, on ne peu que réserver l'espace disque pour la partition LUKS).
Peut être fait partiellement à partir du CD d'installation de Windows, puis complété en suivant la procédure d'installation d'Ubuntu chiffré. ça évite de démarrer 2 fois sur un CD Ubuntu.
Pendant l'installation de Windows, l’important est de laisser libre l'espace disque pour Ubuntu et les données partagé par les 2 systèmes.
Nouvelle installation : Laisser libre l'espace disque pour Ubuntu et les données partagé par les 2 systèmes. Ou à partir d'un Windows déjà en utilisation, réduire la partition du système Windows si nécessaire.
Cette partie est largement inspiré de ce tutoriel : chiffrer_son_disque
Mais avec tout de même quelques modifications.
démarrer sur Ubuntu alternate CD (test fait avec Ubuntu 12.04 alternate i-386)
Dans le menu, choisir « installer sur le disque dur ».
Les écrans suivant ont cet aspect :
Dans ce document, les paramètres à sélectionner seront représenté dans un cadre, les choix ou saisis au clavier sont représenté en gras.
Création de la partition /boot :
l'indicateur d'amorçage reste sur la partition Windows, ce qui permettra au chargeur d’amorçage de TrueCrypt de démarrer Windows sans passer par le chargeur d'amorçage « Grub » de Ubuntu.
Création de la partition qui sera chiffré :
Attention !
Sur cette écran on peu lire le nom des disques sous cette forme : SCSI1 (0,0,0) (sda) – 60GB ATA
sous lequel on peu lire le numéro de chaque partitions : N°4 logique 15GB K
Notez l'emplacement de cette partition « non utilisé » sous la forme : /dev/sda3
Volume logique pour la « swap »
Volume logique pour la racine « / »
(j'ai tenté d'installer GRUB sur la partition /boot en répondant « non », mais ça faisait planter l'installation) fin de l'installation de Ubuntu.
Les actions suivantes se font en ligne de commande. Les lignes précédé de « ~$ » sont à copier dans un terminal, les autres lignes sont la réponse du système :
(Initialement GRUB est dans le secteur de démarrage du disque) Après avoir démarrer sous Ubuntu, notez l'emplacement de la partition /boot en vous servant de « Utilitaire de disque ».
~$ sudo grub-install --force /dev/sda2
le démarrage se faisait directement sur GRUB et non-plus sur le pré-amorçage de TrueCrypt. Il n'y avait alors plus d'accès à Windows, car pas de possibilité de rentrer la pass-phrase de TrueCrypt.
Après avoir restauré le pré-amorçage de TrueCrypt, c'est Le grub qui devenait inaccessible. Il à fallut le réinstaller sur /boot à l'aide de l'alternate CD de ubuntu en mode récupération.
Vraisemblablement le pré-amoçage GRUB à du ce réinstaller sur le MBR du disque, ce qui à causé cette panne. page
reconfigure le paquet "grub-pc".
~$ sudo dpkg-reconfigure grub-pc
Cette commande pose les questions de configuration suivante :
/usr/sbin/grub-setup : attention : Tentative d'installation de GRUB sur un disque sans partition ou sur une partition. C'est une très mauvaise idée.. /usr/sbin/grub-setup : attention : L'embarquage est impossible. GRUB ne peut être installé sur cette configuration qu'en utilisant les listes de blocs. Cependant, les listes de blocs ne sont PAS fiables et leur utilisation est déconseillée.. Installation finished. No error reported. Generating grub.cfg ... Found linux image: /boot/vmlinuz-3.2.0-52-generic-pae Found initrd image: /boot/initrd.img-3.2.0-52-generic-pae Found linux image: /boot/vmlinuz-3.2.0-23-generic-pae Found initrd image: /boot/initrd.img-3.2.0-23-generic-pae Found memtest86+ image: /memtest86+.bin Found Microsoft Windows XP Professionnel on /dev/sda1 done
but : Après chiffrement de la partition windows, le lien de Grub vers ce système est susceptible d'être effacé lors d'un « update-grub » car ce système est devenu invisible. Ça peut-être le cas lors d'une mise à jour de Ubuntu. Il faut donc écrire ce lien dans un fichier custom.cfg qui est lu automatiquement par grub.cfg et qui ne sera pas écrasé. Cette manip. est facultative car l'indicateur d'amorçage étant sur la partition Windows, le chargeur d’amorçage de TrueCrypt démarre Windows sans passer par le chargeur d'amorçage « Grub » de Ubuntu.
Pour vérifier que le fichier custom.cfg n'existe pas encore, tapez dans un terminal :
~$ sudo ls -al /boot/grub/*.cfg -r--r--r-- 1 root root 5932 avril 17 16:41 /boot/grub/grub.cfg
Pour ouvrir le fichier de configuration de Grub dans l'éditeur de texte « gedit » avec les droits d'administrateur (root), taper dans un terminal :
~$ gksudo gedit /boot/grub/grub.cfg
Dans l'éditeur de texte gedit rechercher la partie « os-prober »: (dans l'exemple on trouve « 30_os-prober »)
### BEGIN /etc/grub.d/30_os-prober ### menuentry "Microsoft Windows XP Professionnel (on /dev/sdb2)" --class windows --class os { insmod part_msdos insmod ntfs set root='(hd1,msdos2)' search --no-floppy --fs-uuid --set=root 1EC42F3EC42F1793 drivemap -s (hd0) ${root} chainloader +1 } ### END /etc/grub.d/30_os-prober ###
Couper ce qu'il y a entre les deux lignes de commentaire ### BEGIN… et ### END… et les coller dans un nouveau document dans gedit qui sera ensuite enregistré sous : /boot/grub/custom.cfg. !!Attention, faire ça dans la fenêtre gedit qui à été ouverte avec les droits « root » !! Le fichier custom.cfg contiendra alors : (dans l'exemple j'ai rajouté « entree incassable!! »)
menuentry "Microsoft Windows XP Professionnel (on /dev/sdb2) entree incassable!!" --class windows --class os { insmod part_msdos insmod ntfs set root='(hd1,msdos2)' search --no-floppy --fs-uuid --set=root 1EC42F3EC42F1793 drivemap -s (hd0) ${root} chainloader +1 }
Ces lignes doivent être effacé de grub.cfg pour ne pas apparaître 2 fois lors du boot.
Chiffrage de Windows XP avec TrueCrypt avec l'option « partition système » et « amorçage » (correspond à « single boot »)
Exécuter la commande suivante depuis le répertoire truecrypt (C:\Programm files\TrueCrypt\)
"TrueCrypt Format.exe" /noisocheck
(uniquement en anglais)
Attention :
certain pavé numérique ne fonctionne pas lors du pré-amorçage. En cas de mauvais password, pensez à essayer les chiffres situé au dessus des lettres.
(ouverture automatique de TrueCrypt)
le secteur de boot contient maintenant le chargeur d'amorçage TrueCrypt.
Depuis le chargeur d'amorçage TrueCrypt faire « Echap » pour accéder au GRUB (dans la partition sdaX)
(Cas d'une nouvelle partition vide ou don les données sont intégralement sauvegardé sur un autre support)
lancer TrueCrypt (en cliquant)
Attention :
Si c'est une partition contenant des données qu'il faut conserver, choisir l'option : Encrypt partition in place. Mais c'est beaucoup plus long !
Attention : tout les fichiers actuellement stockés sur la partition seront écrasé et perdu !
(Supprimer la lettre de lecteur attribué par Windows, devenu inutilisable après le chiffrement)
Depuis une session administrateur, lancer le gestionnaire des disques :
Clique droit sur la partition concerné
Depuis une session administrateur, lancer le gestionnaire de Tâches planifiées :
l'option « Au démarrage de mon ordinateur » peu générer une erreur lorsque l'on fait « appliquer »
Rajouter dans le champ « Exécuter » : ( dans l'exemple : lecteur « m », disque N°0 et partition N°3) Le mot de passe est celui du chiffrage de la partition.
Depuis une fenêtre TrueCrypt, il est possible de repérer le chemin « \Device\Harddisk… » puis de le copier-coller.
Redémarrer.
Remarque :
Le mot de passe apparaît en clair dans le gestionnaire de tâches planifiées, mais est accessible uniquement depuis la session ou elle à été créée et de toute façon après avoir déverrouillé le chiffrement de la partition système.
Le disque se monte aussi quand on ouvre une autre session au démarrage.
lancer TrueCrypt (en cliquant) Pour la partition système active :
Ou pour une partition de donnée :
(et les éventuels partitions donnée dans le cas d'un chiffrement « disque entier »)
depuis un autre système Windows lancer TrueCrypt (en cliquant)
ou A l'aide du menu :
Les actions suivantes se font en ligne de commande. Les lignes précédé de « ~$ » sont à copier dans un terminal, les autres lignes sont la réponse du système :
(dans l'exemple sda5 est la partition qui contient le conteneur chiffré)
~$ sudo cryptsetup luksAddKey /dev/sda5 Enter any passphrase : Enter new passphrase for key slot:.
(Entrer d'abord une passphrase d'un des slot actuellement valide. Ensuite entrer une passphrase à rajouter dans un slot libre.)
(dans l'exemple sda5 est la partition qui contient le conteneur chiffré)
~$ sudo cryptsetup luksDump /dev/sda5
(la passphrase intitial est dans le slot 0)
(dans l'exemple on supprime le 2ième slot du conteneur chiffré sda5)
~$ sudo cryptsetup luksKillSlot /dev/sda5 2 Enter any remaining LUKS passphrase :
(Entrer une passphrase d'un des slot actuellement valide.)
(dans l'exemple, à partir de l'entête LUKS /dev/sda5 on créé le fichier « entete » sur la clé USB « sdb1 ») :
~$ sudo cryptsetup luksHeaderBackup --header-backup-file /media/sdb1/entete /dev/sda5
(si cette commande écrit le fichier « entete » sur une partition au format Linux, ce fichier aura les droits limité à root en lecture seul !)
possible à partir d'un autre système linux avec dm-crypt et LVM installé.
(les live-CD « System rescue » et « partedMagic » on dm-crypt et LVM installé nativement)
~$ sudo cryptsetup luksHeaderRestore --header-backup-file /media/sdb1/entete /dev/sda5 WARNING ! ========= Device:dev/sda5 already contains LUKS header. Replacing header will destroy existing keyslots. Are you sure ? (Type uppercase yes): YES
(attention à marquer « YES » et non pas « yes »)
Dans un terminal, créer un répertoire DATA et changer le propriétaire et le groupe en « user »(remplacer user par le login de la session) :
~$ sudo mkdir /media/DATA; sudo chown user:user /media/DATA
créer un fichier qui contiendra le script du démarrage :
~$ sudo gedit /usr/local/bin/monteDataTrueCrypt
coller dans la fenêtre gedit et corriger la partition « sda2 » et le mot de passe :
# TrueCrypt monte le disque /dev/sda2 sur le dossier
# /media/DATA avec le mot de passe "motdepasse"
# (l'option –mount est implicite)
truecrypt /dev/sda2 /media/DATA -p "motdepasse"
enregistrer et fermer
Rendre le fichier exécutable et illisible par un simple utilisateur :
~$ sudo chmod 711 /usr/local/bin/monteDataTrueCrypt
ouvrir l'éditeur de paramétrage de sudo etc/sudoers :
~$ sudo visudo
ajouter à la fin du fichier « /etc/sudoers.tmp » et remplacer « user » par le login de l'utilisateur :
Ctrl X pour quitter l'éditeur
ouvrir l'utilitaire graphique : « application au démarrage »
Montage de la partition chiffrée, à partir d'un autre système linux avec dm-crypt et LVM installé : (« sda5-crypt » est un nom arbitraire donné à la partition)
~$ cryptsetup luksOpen /dev/sda5 sda5-crypt Saisissez la phrase secrète pour /dev/sda5 : ~$ vgchange -ay 2 logical volume(s) in volume group « VG-ubuntu » now active
Montage d'un volume logique :
~$ sudo mkdir /media/montage_LV ~$ sudo mount /dev/VG-ubuntu/LV-slash /media/montage_LV
Dans un explorateur de fichier, on peut maintenant ouvrir /media/montage_LV (le montage peut aussi être fait par une interface graphique)
(et les éventuels partitions donnée dans le cas d'un chiffrement « disque entier »)
lancer TrueCrypt (en cliquant)
A l'aide du menu :
Remarque : Lors du pré-amorçage de TrueCrypt le clavier est en mode américain (qwerty).
Sous windows, quand on chiffre la partition système ou quand on exécute « Monter sans authentification lors du pré-amorçage », le clavier bascule en mode américain pour la saisi du mot de passe.
Sous Linux, quand on exécute « Mount partition using system encryption (preboot authentification) », le clavier reste dans le mode ou il était.
« Chiffrement des portables mise en œuvre et utilisation » par François Morris : www.dsi.cnrs.fr/services/securite/Documents/manuel.pdf
Documentation pour installer ubuntu chiffré
système de fichier ZFS sécurisé
« GRUB2 and Truecrypt – Windows-Linux dual-boot system » par Zoltán Pallagi : http://pzolee.blogs.balabit.com/2010/07/grub2-and-truecrypt-windows-linux-dual-boot-system/
Dans GRUB2, créer une ligne de boot qui ne soit pas écrasé par une mise à jours de Grub : https://forum.ubuntu-fr.org/viewtopic.php?id=836212
Pour exécuter une commande en tant que root au démarrage d'Ubuntu https://blog.cheztoi.net/2009/08/30/ajouter-un-programme-au-demarrage-dubuntu-service/
Contributeurs principaux : marcusbaslerus