diff --git a/doc/rapport.gpp.md b/doc/rapport.gpp.md
index b703da83a5b4922475013c70dd2023cea562b1e9..3bcc609e66d544387b9a7ef1025056f613afbed7 100644
--- a/doc/rapport.gpp.md
+++ b/doc/rapport.gpp.md
@@ -307,9 +307,11 @@ Le composant central du système est un *serveur* linux qui inter-agit
 avec les postes clients pour leur permettre d'effectuer plusieurs
 actions:
 
-1. Recevoir une configuration IP et un chargeur d'amorcage à exécuter
-   pour démarrer sur le réseau en utilisant le standard PXE.
-2. Analyser la signature présente sur le disque dur.
+1. Recevoir une configuration IP et un chargeur d'amorcage
+   !!acronym{GRUB} à exécuter pour démarrer sur le réseau en utilisant
+   le standard PXE.
+2. Analyser la signature présente sur le disque dur depuis le chargeur
+   d'amorçage chargeur d'amorcage !!acronym{GRUB}.
    - Si elle n'est pas présente, amorcer un système d'exploitation
      minimaliste servant à effectuer le choix d'une image et
      d'automatiser son déploiement et sa mise en cache.
@@ -446,10 +448,10 @@ déployée ne fonctionnait pas. Pour des raisons non documentées,
 le serveur !!acronym{TFTP}, qui lui même initie le démarrage depuis le
 premier disque. Ce système ne fonctionnait pas: `ipxe` ne se lançait
 même pas à cause d'un chemin invalide. De plus ce système rajoutait une
-étape inutile: !acronym{GRUB} est tout à fait capable de démarrer sur le
-premier disque. Le fichier de configuration de !acronym{GRUB} a donc été
-modifié pour directement démarrer sur le disque quand la signature est
-détectée à la fin du disque. Enfin, le système était fonctionnel.
+étape inutile: !!acronym{GRUB} est tout à fait capable de démarrer sur
+le premier disque. Le fichier de configuration de !!acronym{GRUB} a donc
+été modifié pour directement démarrer sur le disque quand la signature
+est détectée à la fin du disque. Enfin, le système était fonctionnel.
 
 Pour faciliter l'utilisation et le développement du système dans le
 futur, il a été décidé d'automatiser la création d'une machine virtuelle
@@ -463,19 +465,47 @@ fois ce fichier de configuration créé, une seule commande est nécessaire
 pour créer, configurer et lancer un serveur fonctionnel dans une machine
 virtuelle: `vagrant up`.
 
-!!svg{Logo du logiciel _Vagrant_}{images/vagrant_logo}
+!!svg{Logo du logiciel _Vagrant_ utilisé pour automatiser la création du serveur du système initial.}{images/vagrant_logo}
 
 La distribution _Linux_ _Debian_ a été choisie comme !!acronym{OS} de
 base de cette machine virtuelle, car elle est _open-source_, populaire,
 stable et dispose de nombreux paquets. Elle est utilisée dans la version
 _Buster_, qui est la version stable au moment de ce travail.
 
-!!svg{Logo de la distribution _Linux_ _Debian_}{images/debian_logo}
-
-## Limitations
-
-**TODO: énumérer les limitations de ce projet et des améliorations
-souhaitées**
+!!svg{Logo de la distribution _Linux_ _Debian_ utilisée comme base du serveur.}{images/debian_logo}
+
+## Limitations du projet initial
+
+Bien que le système du projet initial ait pu être mis en fonctionnement,
+il comporte de nombreuses limitations auxquelles il faudrait palier:
+
+- Les systèmes EFI ne sont pas supportés.
+- Les images prennent beaucoup de place et sont longues à transférer.
+- Les grosses images prennent beaucoup de temps à être déployées.
+- La création d'images nécessite plusieurs opérations en ligne de
+  commande, ce n'est pas très facile à utiliser.
+- Les scripts de déploiement sont fragiles et gèrent mal les erreurs.
+- Il n'y a pas de système de personnalisation d'image. Si on veut faire
+  $n$ personnalisation partant sur la base du même !!acronym{OS}, il
+  faut faire $n$ images: une pour chaque personnalisation.
+- L'installation de nouveaux outils sur le système d'exploitation de
+  l'!!acronym{OS} de déploiement créé avec _Buildroot_ peut être
+  compliqué si l'outil a beaucoup de dépendances.
+- Les dépendances du projet sont difficile à reproduire: il faut
+  disposer des bonnes dépendances et du bon environnement.
+- Les scripts de déploiement ne fonctionnent que si le client utilise
+  une interface réseau nommée `eth0`.
+- Les logs sauvés sur le serveur ne sont pas très complets et il est
+  difficile de diagnostiquer les erreurs et les timings des différentes
+  étapes à partir de ceux-ci.
+- Le système de déploiement doit sauver et restaurer un !!acronym{MBR}
+  sur le serveur pour utiliser sa partition cachée de cache des images.
+  Cela implique des lectures/écritures sur le disque et sur le partage
+  NFS du serveur qui prennent du temps et rajoutent de la complexité.
+  Étant donné que la position du cache est fixe (elle est calculée à
+  partir de la taille du disque, qui ne devrait pas changer), le client
+  devrait être capable de détecter et monter la partition sans dépendre
+  du serveur.
 
 # Recherche et développement
 
diff --git a/doc/rapport.md b/doc/rapport.md
index 6350e9c0cf3cbc997821992d2ba935ed995f6d5b..7e736c85b87a16d0fed29a69e02f05f602cff9d0 100644
--- a/doc/rapport.md
+++ b/doc/rapport.md
@@ -272,9 +272,11 @@ Le composant central du système est un *serveur* linux qui inter-agit
 avec les postes clients pour leur permettre d'effectuer plusieurs
 actions:
 
-1. Recevoir une configuration IP et un chargeur d'amorcage à exécuter
-   pour démarrer sur le réseau en utilisant le standard PXE.
-2. Analyser la signature présente sur le disque dur.
+1. Recevoir une configuration IP et un chargeur d'amorcage
+   <abbr title="_GRand Unified Bootloader ">GRUB</abbr> à exécuter pour démarrer sur le réseau en utilisant
+   le standard PXE.
+2. Analyser la signature présente sur le disque dur depuis le chargeur
+   d'amorçage chargeur d'amorcage <abbr title="_GRand Unified Bootloader ">GRUB</abbr>.
    - Si elle n'est pas présente, amorcer un système d'exploitation
      minimaliste servant à effectuer le choix d'une image et
      d'automatiser son déploiement et sa mise en cache.
@@ -429,10 +431,10 @@ déployée ne fonctionnait pas. Pour des raisons non documentées,
 le serveur <abbr title="Trivial File Transfer Protocol: protocole simplifié de transfert de fichiers ">TFTP</abbr>, qui lui même initie le démarrage depuis le
 premier disque. Ce système ne fonctionnait pas: `ipxe` ne se lançait
 même pas à cause d'un chemin invalide. De plus ce système rajoutait une
-étape inutile: !acronym{GRUB} est tout à fait capable de démarrer sur le
-premier disque. Le fichier de configuration de !acronym{GRUB} a donc été
-modifié pour directement démarrer sur le disque quand la signature est
-détectée à la fin du disque. Enfin, le système était fonctionnel.
+étape inutile: <abbr title="_GRand Unified Bootloader ">GRUB</abbr> est tout à fait capable de démarrer sur
+le premier disque. Le fichier de configuration de <abbr title="_GRand Unified Bootloader ">GRUB</abbr> a donc
+été modifié pour directement démarrer sur le disque quand la signature
+est détectée à la fin du disque. Enfin, le système était fonctionnel.
 
 Pour faciliter l'utilisation et le développement du système dans le
 futur, il a été décidé d'automatiser la création d'une machine virtuelle
@@ -446,19 +448,47 @@ fois ce fichier de configuration créé, une seule commande est nécessaire
 pour créer, configurer et lancer un serveur fonctionnel dans une machine
 virtuelle: `vagrant up`.
 
-![Logo du logiciel _Vagrant_](images/vagrant_logo.png)
+![Logo du logiciel _Vagrant_ utilisé pour automatiser la création du serveur du système initial.](images/vagrant_logo.png)
 
 La distribution _Linux_ _Debian_ a été choisie comme <abbr title="Operating System: système d’exploitation ">OS</abbr> de
 base de cette machine virtuelle, car elle est _open-source_, populaire,
 stable et dispose de nombreux paquets. Elle est utilisée dans la version
 _Buster_, qui est la version stable au moment de ce travail.
 
-![Logo de la distribution _Linux_ _Debian_](images/debian_logo.png)
-
-## Limitations
-
-**TODO: énumérer les limitations de ce projet et des améliorations
-souhaitées**
+![Logo de la distribution _Linux_ _Debian_ utilisée comme base du serveur.](images/debian_logo.png)
+
+## Limitations du projet initial
+
+Bien que le système du projet initial ait pu être mis en fonctionnement,
+il comporte de nombreuses limitations auxquelles il faudrait palier:
+
+- Les systèmes EFI ne sont pas supportés.
+- Les images prennent beaucoup de place et sont longues à transférer.
+- Les grosses images prennent beaucoup de temps à être déployées.
+- La création d'images nécessite plusieurs opérations en ligne de
+  commande, ce n'est pas très facile à utiliser.
+- Les scripts de déploiement sont fragiles et gèrent mal les erreurs.
+- Il n'y a pas de système de personnalisation d'image. Si on veut faire
+  $n$ personnalisation partant sur la base du même <abbr title="Operating System: système d’exploitation ">OS</abbr>, il
+  faut faire $n$ images: une pour chaque personnalisation.
+- L'installation de nouveaux outils sur le système d'exploitation de
+  l'<abbr title="Operating System: système d’exploitation ">OS</abbr> de déploiement créé avec _Buildroot_ peut être
+  compliqué si l'outil a beaucoup de dépendances.
+- Les dépendances du projet sont difficile à reproduire: il faut
+  disposer des bonnes dépendances et du bon environnement.
+- Les scripts de déploiement ne fonctionnent que si le client utilise
+  une interface réseau nommée `eth0`.
+- Les logs sauvés sur le serveur ne sont pas très complets et il est
+  difficile de diagnostiquer les erreurs et les timings des différentes
+  étapes à partir de ceux-ci.
+- Le système de déploiement doit sauver et restaurer un <abbr title="Master Boot Record: enregistrement d’amorcage maître ">MBR</abbr>
+  sur le serveur pour utiliser sa partition cachée de cache des images.
+  Cela implique des lectures/écritures sur le disque et sur le partage
+  NFS du serveur qui prennent du temps et rajoutent de la complexité.
+  Étant donné que la position du cache est fixe (elle est calculée à
+  partir de la taille du disque, qui ne devrait pas changer), le client
+  devrait être capable de détecter et monter la partition sans dépendre
+  du serveur.
 
 # Recherche et développement
 
diff --git a/doc/rapport.pdf b/doc/rapport.pdf
index 6528d8032d9feb8f2fb7f7526d19605f295e4b0a..77337a17e2b50b7c3daacdcdeb9e514b7ee36997 100644
Binary files a/doc/rapport.pdf and b/doc/rapport.pdf differ