Truecrypt dual boot : Windows / Linux

truecrypt-iconDans ce tutoriel je vais m’intéresser uniquement à chiffrer Windows et pas Linux. Le chiffrement de Windows et Linux est disponible ici.

Je vais utiliser Windows XP, Windows Vista comme système de chez Microsoft et Ubuntu 9.04 comme linux pour ce dualboot.

Tout d’abord il faut comprendre comment un ordinateur démarre ?

Quand l’ordinateur est allumé, le bios recherche un disque dur sur lequel démarrer pour transférer la suite de la procédure de démarrage au secteur d’amorçage. Ce secteur ce situe dans la première zone adressage du disque dur appeler la MBR (Master Boot Record) qui fait 512 octet. Cette zone contient entre autre 2 données très importante :

  • La table des partitions.
  • La routine d’amorçage du système d’exploitation (par exemple : GRUB pour linux).

Ce qui est important à comprendre c’est que dans le cas d’un dual boot classique Windows/Linux, Windows est en général installé en premier, et linux installer en deuxième. La procédure d’installation de linux se chargeant de façon transparente pour l’utilisateur de copier la routine d’amorçage de Windows se trouvant dans la MBR dans une partition de boot de Linux. Le logiciel GRUB ou LILO se chargeant de gérer les différentes routines d’amorçage (bootloader). Mais dans le cas d’un système de chiffrement de l’OS, la routine d’amorçage de Windows est remplacée par celle du logiciel de chiffrement (dans notre cas Truecrypt) qui s’occupe d’amorcer windows une fois la procédure de pre-authentification validé.

Comment fonctionne GRUB (GRand Unified Bootloader) qui sera le maître d’orchestre de notre boot ?

grub

GRUB se répartie en 2 ou 3 partie en fonction de son implémentation (appeler stage1, stage1.5 et stage2). La Partie 1 se situe dans les 512 octet de la MBR qui ne sert qu’a appeler la partie 1.5 ou la Partie 2 de GRUB. La Partie 1.5 se trouvant dans les 30 Ko suivant la MBR et la Partie 2 peut quand à elle se trouver n’importe ou.
La Partie 2 permet d’avoir l’interface graphique qui permet de choisir sur quel Système d’exploitation démarrer.

Comment faire ?

L’idée est de copier la routine d’amorçage de truecrypt dans la partition de boot de linux, puis de permettre de l’appeler à partir de GRUB.

1 / Installer Windows Xp ou Windows Vista normalement, en laissant de la place pour les partitions linux.

2 / Télécharger et Installer Linux Ubuntu Desktop. Si vous savez partitionné linux, séparer bien la partition de boot des autres partitions cela permettra de simplifier les prochaines procédure. Si vous ne savez pas partitionné laisser tout par défaut.

3 / Tester que le démarrage sous ubuntu ou Windows fonctionne bien.

4 / Chiffrer Windows avec Truecrypt en faisant du chiffrement système et non pas du Full Disk Encryption.

4.1 / Télécharger puis installer truecrypt.

4.2 / Lancer truecrypt > System > Encrypt System/Partition driver > Normal (hidden on verra une prochaine fois) >Encrypt the windows system partition > Single-boot (si, si). Choisissez l’algo de chiffrement que vous voulez. > Inserer un password > Graver l’image de boot suivez les instruction et tester le redémarrage.

4.3 / Si tout c’est bien passer vous avez vus le bootload (l’amorçe) de truecrypt au démarage et windows c’est lancé. C’est maintenant que le calcul pour le chiffrement va commencer. Quelques minutes à quelques heures en fonctions de la taille du disque et des algorithmes de chiffrement choisis sont necessaire.

5 / Une fois le chiffrement terminé, redémarrer l’ordinateur pour tester de nouveau le boot avec truecrypt.

6 / Redémarrer l’ordinateur et démarrer sur un CD de Boot linux (le meme que pour l’installation de Ubuntu par exemple).

6.1 / Identifier la partition de boot. Si vous connaissez l’adresse de votre partition de boot sautez cette partie.

Si vous avez installer votre Ubuntu par défaut sans faire de partitionnement particulier, il faut au préalable déterminer quel est votre partition de boot.  Soit vous utiliser l’éditeur de partition situé dans Système > Editeur de partition pour trouver la partition contenant le boot. Soit vous le faite à la main. Pour ce faire il faut d’abord savoir ce que vous avez comme disque dans votre ordinateur.

# sudo ls /dev/sd* && ls hd*

Ce qui va répondre soit par

hda hda1 hda2 hdaxxx

Soit par

sda sda1 sda2 sdaxxx

6.2 / Monter la partition de boot

Maintenant que vous savez si vous avez des SDA ou des HDA on va pouvoir les monter.

# sudo mkdir /mnt/boot/

Vous aller les monter les uns après les autres jusqu’à trouver votre partition de boot qui doit contenir un dossier de appeler GRUB. Il faut remplacer le * par un des numéro qui vous a été signifié plus haut. En général Windows c’est mis en sda1 ou hda1, si vous avez utiliser l’éditeur de partition elle devrait apparaitre comme une partition Etx3 (Dans mon cas ce fut sda5).

# sudo mount /dev/sda* /mnt/boot/

Pour savoir ce qu’elle contient faite :

# sudo ls /mnt/boot/

Si elle ne contient pas de dossier /boot ou /grub alors démonter la et essayer la suivante :

# umount /mnt/boot

7 / Copier la MBR

Maintenant que l’on a monté et trouvé la partition de boot de linux on va copier la routine d’amorçage de truecrypt de la MBR  dans la partition de boot. Et pour cela on va utiliser le bon dd :

On copie la MBR (attention au sda ou hda):

# sudo dd if=/dev/sda of=/mnt/boot/truecrypt.mbr count=1 bs=512

Ce qui devrait afficher quelque chose comme ceci qui confirme que les 512 premier octet de la premiere section ont été copié:

1+0 enregistrements lus
1+0 enregistrements écrits
512 octets (512 B) copiés, 0,00144459 s, 354 kB/s

Et on copie le backup se trouvant après :

# sudo dd if=/dev/sda of=/mnt/boot/truecrypt.backup count=8 bs=32256

Ce qui devrait afficher quelque chose comme ceci :

8+0 enregistrements lus
8+0 enregistrements écrits
258048 octets (258 kB) copiés, 0,00519783 s, 49,6 MB/s

8 / Réinstaller GRUB, opération délicate.

A présent que l’amorce de truecrypt est copié, on va pouvoir réinstaller GRUB dans la MBR. Pour ce faire il faut retrouver le nom de la partition qui contenait les fichiers de boot que vous avez monté.

# sudo grub

Vous aller entrer dans les commande de grub.il va falloir que vous spécifié a GRUB où se trouve votre partition. Si vous ne savez pas, entrez le début de la commande

install (hd0,

Puis appuyez sur la touche tabulation de votre clavier pour voir les partition que vous propose de monter GRUB (Dans mon cas hd0,4). Ensuite voici la commande complète (remplacer le * par votre numéro de partition).

grub > install (hd0,*)/boot/grub/stage1 (hd0) (hd0,*)/boot/grub/stage2 0x8000 p

grub > quit

0x8000 n’est pas une référence au système de fichier, mais une référence à l’adressage de la mémoire qui doit être fixé ainsi. A présent vous avez GRUB stage1 de nouveau dans la MBR qui appele le stage2 dans votre partition de boot.

9 / Ajouter l’amorçage de Windows à GRUB

Il ne reste plus qu’a spécifier à grub ou se trouve la routine d’amorçage de truecrypt copié précédemment. Le plus simple étant de modifier le fichier menu.lst qui avait été créer précédemment.

# sudo nano /mnt/boot/boot/grub/menu.lst

Et tout en bas du fichier modifié l’appel de windows ainsi (remplacer le x par votre partition de boot, dans mon cas hd0,4):

title Windows XP Professional
rootnoverify (hd0,0)
makeactive
chainloader (hd0,x)/truecrypt.mbr
boot

10 / Redémarrer votre ordinateur. Tester.

C’est finit.

Tester avec :

  • Windows XP SP3
  • Windows Vista SP1
  • Ubuntu 9.04
  • Truecrypt 6.2
  • VirtualBox 2.2.2

Aucun bytes n’a été blessé durant les tests.

Source :

Astuce pour GRUB et multiboot documentation sur GRUB

Dualboot full encryption et enfin le forum ubuntu.