From 9387f4d0876731e26cf26cd7c48ceb272721ca8e Mon Sep 17 00:00:00 2001
From: Dimitri Lizzi <dimitri.lizzi@etu.hesge.ch>
Date: Sun, 16 Aug 2020 19:41:48 +0200
Subject: [PATCH] references and acknowledgments

---
 doc/Makefile                             |    4 +-
 doc/charts/chart_deploy_time_debian.png  |    4 +-
 doc/charts/chart_deploy_time_debian.svg  |  148 +-
 doc/charts/chart_deploy_time_win10.png   |    4 +-
 doc/charts/chart_deploy_time_win10.svg   |  132 +-
 doc/charts/chart_deploy_time_xubuntu.png |    4 +-
 doc/charts/chart_deploy_time_xubuntu.svg |  156 +-
 doc/charts/chart_image_sizes_debian.png  |    4 +-
 doc/charts/chart_image_sizes_debian.svg  |  126 +-
 doc/charts/chart_image_sizes_win10.png   |    4 +-
 doc/charts/chart_image_sizes_win10.svg   |  132 +-
 doc/charts/chart_image_sizes_xubuntu.png |    4 +-
 doc/charts/chart_image_sizes_xubuntu.svg |  118 +-
 doc/charts/chart_protocols.png           |    4 +-
 doc/charts/chart_protocols.svg           |  156 +-
 doc/gitlab-markdown.gpp                  |    6 +-
 doc/iso690.csl                           |  493 ++++
 doc/pandoc-pdf-markdown.gpp              |    4 +
 doc/rapport.gpp.md                       |   67 +-
 doc/rapport.md                           |   37 +-
 doc/rapport.pdf                          |  Bin 1931895 -> 1935910 bytes
 doc/rapport.tex                          | 3202 ++++++++++++++++++++--
 doc/references.bib                       |  123 +
 23 files changed, 4264 insertions(+), 668 deletions(-)
 create mode 100644 doc/iso690.csl
 create mode 100644 doc/references.bib

diff --git a/doc/Makefile b/doc/Makefile
index 4a9592d..d79bcfd 100644
--- a/doc/Makefile
+++ b/doc/Makefile
@@ -20,10 +20,10 @@ rapport.md: rapport.gpp.md logbook.gpp.md markdown.gpp gitlab-markdown.gpp csv2b
 	$(GPP) -DGITLAB_MARKDOWN $< | ./trimstart.py > $@
 
 rapport.tex: rapport.gpp.md diagrams markdown.gpp pandoc-pdf-markdown.gpp logbook.gpp.md csv2barchart.py templates/default.latex $(PLANTUML_DIAGRAMS_SVG) $(PLANTUML_DIAGRAMS_PNG)
-	$(GPP) -DPANDOC_PDF $< | ./trimstart.py | pandoc --standalone --pdf-engine=xelatex --template=templates/default.latex -o $@
+	$(GPP) -DPANDOC_PDF $< | ./trimstart.py | pandoc --filter=pandoc-citeproc --standalone --pdf-engine=xelatex --template=templates/default.latex -o $@
 
 rapport.pdf: rapport.gpp.md markdown.gpp pandoc-pdf-markdown.gpp logbook.gpp.md csv2barchart.py templates/default.latex abstract.pdf statement.pdf $(PLANTUML_DIAGRAMS_SVG) $(PLANTUML_DIAGRAMS_PNG)
-	$(GPP) -DPANDOC_PDF $< | ./trimstart.py | pandoc --pdf-engine=xelatex --template=templates/default.latex -o $@
+	$(GPP) -DPANDOC_PDF $< | ./trimstart.py | pandoc --filter=pandoc-citeproc --pdf-engine=xelatex --template=templates/default.latex -o $@
 
 diagrams: $(PLANTUML_DIAGRAMS_SVG) $(PLANTUML_DIAGRAMS_PNG)
 
diff --git a/doc/charts/chart_deploy_time_debian.png b/doc/charts/chart_deploy_time_debian.png
index c4081ae..5226182 100644
--- a/doc/charts/chart_deploy_time_debian.png
+++ b/doc/charts/chart_deploy_time_debian.png
@@ -1,3 +1,3 @@
 version https://git-lfs.github.com/spec/v1
-oid sha256:9a0bb3b1af44613e5674989b57e19b91f0bfcc3bcfb32cfc7647dbb60ce88a39
-size 18644
+oid sha256:45cfc1486e1a2ce929d279e728e26a08d00a29696cf6373894247253b72729aa
+size 18578
diff --git a/doc/charts/chart_deploy_time_debian.svg b/doc/charts/chart_deploy_time_debian.svg
index 1aaaff3..0393b33 100644
--- a/doc/charts/chart_deploy_time_debian.svg
+++ b/doc/charts/chart_deploy_time_debian.svg
@@ -3,10 +3,22 @@
   "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
 <!-- Created with matplotlib (https://matplotlib.org/) -->
 <svg height="345.6pt" version="1.1" viewBox="0 0 460.8 345.6" width="460.8pt" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <metadata>
+  <rdf:RDF xmlns:cc="http://creativecommons.org/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
+   <cc:Work>
+    <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>
+    <dc:date>2020-08-16T19:18:09.724445</dc:date>
+    <dc:format>image/svg+xml</dc:format>
+    <dc:creator>
+     <cc:Agent>
+      <dc:title>Matplotlib v3.3.0, https://matplotlib.org/</dc:title>
+     </cc:Agent>
+    </dc:creator>
+   </cc:Work>
+  </rdf:RDF>
+ </metadata>
  <defs>
-  <style type="text/css">
-*{stroke-linecap:butt;stroke-linejoin:round;}
-  </style>
+  <style type="text/css">*{stroke-linecap:butt;stroke-linejoin:round;}</style>
  </defs>
  <g id="figure_1">
   <g id="patch_1">
@@ -72,8 +84,9 @@ L 0 3.5
      </g>
      <g id="text_1">
       <!-- Gzip -->
-      <defs>
-       <path d="M 59.515625 10.40625 
+      <g transform="translate(96.945171 308.358437)scale(0.1 -0.1)">
+       <defs>
+        <path d="M 59.515625 10.40625 
 L 59.515625 29.984375 
 L 43.40625 29.984375 
 L 43.40625 38.09375 
@@ -98,7 +111,7 @@ Q 48.046875 6.6875 52.140625 7.59375
 Q 56.25 8.5 59.515625 10.40625 
 z
 " id="DejaVuSans-71"/>
-       <path d="M 5.515625 54.6875 
+        <path d="M 5.515625 54.6875 
 L 48.1875 54.6875 
 L 48.1875 46.484375 
 L 14.40625 7.171875 
@@ -110,7 +123,7 @@ L 38.09375 47.515625
 L 5.515625 47.515625 
 z
 " id="DejaVuSans-122"/>
-       <path d="M 9.421875 54.6875 
+        <path d="M 9.421875 54.6875 
 L 18.40625 54.6875 
 L 18.40625 0 
 L 9.421875 0 
@@ -121,7 +134,7 @@ L 18.40625 64.59375
 L 9.421875 64.59375 
 z
 " id="DejaVuSans-105"/>
-       <path d="M 18.109375 8.203125 
+        <path d="M 18.109375 8.203125 
 L 18.109375 -20.796875 
 L 9.078125 -20.796875 
 L 9.078125 54.6875 
@@ -147,16 +160,16 @@ Q 40.53125 6.109375 44.609375 11.75
 Q 48.6875 17.390625 48.6875 27.296875 
 z
 " id="DejaVuSans-112"/>
-      </defs>
-      <g transform="translate(96.945171 308.358437)scale(0.1 -0.1)">
+       </defs>
        <use xlink:href="#DejaVuSans-71"/>
        <use x="77.490234" xlink:href="#DejaVuSans-122"/>
        <use x="129.980469" xlink:href="#DejaVuSans-105"/>
        <use x="157.763672" xlink:href="#DejaVuSans-112"/>
       </g>
       <!-- (sans cache) -->
-      <defs>
-       <path d="M 31 75.875 
+      <g transform="translate(76.266265 319.55625)scale(0.1 -0.1)">
+       <defs>
+        <path d="M 31 75.875 
 Q 24.46875 64.65625 21.28125 53.65625 
 Q 18.109375 42.671875 18.109375 31.390625 
 Q 18.109375 20.125 21.3125 9.0625 
@@ -168,7 +181,7 @@ Q 8.59375 42.28125 12.203125 53.3125
 Q 15.828125 64.359375 23.1875 75.875 
 z
 " id="DejaVuSans-40"/>
-       <path d="M 44.28125 53.078125 
+        <path d="M 44.28125 53.078125 
 L 44.28125 44.578125 
 Q 40.484375 46.53125 36.375 47.5 
 Q 32.28125 48.484375 27.875 48.484375 
@@ -199,7 +212,7 @@ Q 31.78125 56 36.171875 55.265625
 Q 40.578125 54.546875 44.28125 53.078125 
 z
 " id="DejaVuSans-115"/>
-       <path d="M 34.28125 27.484375 
+        <path d="M 34.28125 27.484375 
 Q 23.390625 27.484375 19.1875 25 
 Q 14.984375 22.515625 14.984375 16.5 
 Q 14.984375 11.71875 18.140625 8.90625 
@@ -231,7 +244,7 @@ Q 40.484375 56 46.34375 49.84375
 Q 52.203125 43.703125 52.203125 31.203125 
 z
 " id="DejaVuSans-97"/>
-       <path d="M 54.890625 33.015625 
+        <path d="M 54.890625 33.015625 
 L 54.890625 0 
 L 45.90625 0 
 L 45.90625 32.71875 
@@ -250,8 +263,8 @@ Q 45.21875 56 50.046875 50.171875
 Q 54.890625 44.34375 54.890625 33.015625 
 z
 " id="DejaVuSans-110"/>
-       <path id="DejaVuSans-32"/>
-       <path d="M 48.78125 52.59375 
+        <path id="DejaVuSans-32"/>
+        <path d="M 48.78125 52.59375 
 L 48.78125 44.1875 
 Q 44.96875 46.296875 41.140625 47.34375 
 Q 37.3125 48.390625 33.40625 48.390625 
@@ -272,7 +285,7 @@ Q 37.15625 56 41.109375 55.140625
 Q 45.0625 54.296875 48.78125 52.59375 
 z
 " id="DejaVuSans-99"/>
-       <path d="M 54.890625 33.015625 
+        <path d="M 54.890625 33.015625 
 L 54.890625 0 
 L 45.90625 0 
 L 45.90625 32.71875 
@@ -291,7 +304,7 @@ Q 45.21875 56 50.046875 50.171875
 Q 54.890625 44.34375 54.890625 33.015625 
 z
 " id="DejaVuSans-104"/>
-       <path d="M 56.203125 29.59375 
+        <path d="M 56.203125 29.59375 
 L 56.203125 25.203125 
 L 14.890625 25.203125 
 Q 15.484375 15.921875 20.484375 11.0625 
@@ -315,7 +328,7 @@ Q 24.90625 48.390625 20.390625 44.140625
 Q 15.875 39.890625 15.1875 32.171875 
 z
 " id="DejaVuSans-101"/>
-       <path d="M 8.015625 75.875 
+        <path d="M 8.015625 75.875 
 L 15.828125 75.875 
 Q 23.140625 64.359375 26.78125 53.3125 
 Q 30.421875 42.28125 30.421875 31.390625 
@@ -328,8 +341,7 @@ Q 20.90625 42.671875 17.703125 53.65625
 Q 14.5 64.65625 8.015625 75.875 
 z
 " id="DejaVuSans-41"/>
-      </defs>
-      <g transform="translate(76.266265 319.55625)scale(0.1 -0.1)">
+       </defs>
        <use xlink:href="#DejaVuSans-40"/>
        <use x="39.013672" xlink:href="#DejaVuSans-115"/>
        <use x="91.113281" xlink:href="#DejaVuSans-97"/>
@@ -360,8 +372,9 @@ z
        <use x="157.763672" xlink:href="#DejaVuSans-112"/>
       </g>
       <!-- (avec cache) -->
-      <defs>
-       <path d="M 2.984375 54.6875 
+      <g transform="translate(161.29464 319.55625)scale(0.1 -0.1)">
+       <defs>
+        <path d="M 2.984375 54.6875 
 L 12.5 54.6875 
 L 29.59375 8.796875 
 L 46.6875 54.6875 
@@ -370,8 +383,7 @@ L 35.6875 0
 L 23.484375 0 
 z
 " id="DejaVuSans-118"/>
-      </defs>
-      <g transform="translate(161.29464 319.55625)scale(0.1 -0.1)">
+       </defs>
        <use xlink:href="#DejaVuSans-40"/>
        <use x="39.013672" xlink:href="#DejaVuSans-97"/>
        <use x="100.292969" xlink:href="#DejaVuSans-118"/>
@@ -395,8 +407,9 @@ z
      </g>
      <g id="text_3">
       <!-- Clonezilla -->
-      <defs>
-       <path d="M 64.40625 67.28125 
+      <g transform="translate(254.837078 308.358437)scale(0.1 -0.1)">
+       <defs>
+        <path d="M 64.40625 67.28125 
 L 64.40625 56.890625 
 Q 59.421875 61.53125 53.78125 63.8125 
 Q 48.140625 66.109375 41.796875 66.109375 
@@ -417,13 +430,13 @@ Q 47.75 74.21875 53.53125 72.484375
 Q 59.328125 70.75 64.40625 67.28125 
 z
 " id="DejaVuSans-67"/>
-       <path d="M 9.421875 75.984375 
+        <path d="M 9.421875 75.984375 
 L 18.40625 75.984375 
 L 18.40625 0 
 L 9.421875 0 
 z
 " id="DejaVuSans-108"/>
-       <path d="M 30.609375 48.390625 
+        <path d="M 30.609375 48.390625 
 Q 23.390625 48.390625 19.1875 42.75 
 Q 14.984375 37.109375 14.984375 27.296875 
 Q 14.984375 17.484375 19.15625 11.84375 
@@ -444,8 +457,7 @@ Q 5.515625 40.765625 12.171875 48.375
 Q 18.84375 56 30.609375 56 
 z
 " id="DejaVuSans-111"/>
-      </defs>
-      <g transform="translate(254.837078 308.358437)scale(0.1 -0.1)">
+       </defs>
        <use xlink:href="#DejaVuSans-67"/>
        <use x="69.824219" xlink:href="#DejaVuSans-108"/>
        <use x="97.607422" xlink:href="#DejaVuSans-111"/>
@@ -513,8 +525,9 @@ z
     </g>
     <g id="text_5">
      <!-- Type -->
-     <defs>
-      <path d="M -0.296875 72.90625 
+     <g transform="translate(224.677188 333.234375)scale(0.1 -0.1)">
+      <defs>
+       <path d="M -0.296875 72.90625 
 L 61.375 72.90625 
 L 61.375 64.59375 
 L 35.5 64.59375 
@@ -524,7 +537,7 @@ L 25.59375 64.59375
 L -0.296875 64.59375 
 z
 " id="DejaVuSans-84"/>
-      <path d="M 32.171875 -5.078125 
+       <path d="M 32.171875 -5.078125 
 Q 28.375 -14.84375 24.75 -17.8125 
 Q 21.140625 -20.796875 15.09375 -20.796875 
 L 7.90625 -20.796875 
@@ -540,8 +553,7 @@ L 46.6875 54.6875
 L 56.203125 54.6875 
 z
 " id="DejaVuSans-121"/>
-     </defs>
-     <g transform="translate(224.677188 333.234375)scale(0.1 -0.1)">
+      </defs>
       <use xlink:href="#DejaVuSans-84"/>
       <use x="45.458984" xlink:href="#DejaVuSans-121"/>
       <use x="104.638672" xlink:href="#DejaVuSans-112"/>
@@ -563,8 +575,9 @@ L -3.5 0
      </g>
      <g id="text_6">
       <!-- 0 -->
-      <defs>
-       <path d="M 31.78125 66.40625 
+      <g transform="translate(44.2375 297.559219)scale(0.1 -0.1)">
+       <defs>
+        <path d="M 31.78125 66.40625 
 Q 24.171875 66.40625 20.328125 58.90625 
 Q 16.5 51.421875 16.5 36.375 
 Q 16.5 21.390625 20.328125 13.890625 
@@ -585,8 +598,7 @@ Q 6.59375 54.828125 13.0625 64.515625
 Q 19.53125 74.21875 31.78125 74.21875 
 z
 " id="DejaVuSans-48"/>
-      </defs>
-      <g transform="translate(44.2375 297.559219)scale(0.1 -0.1)">
+       </defs>
        <use xlink:href="#DejaVuSans-48"/>
       </g>
      </g>
@@ -599,8 +611,9 @@ z
      </g>
      <g id="text_7">
       <!-- 5 -->
-      <defs>
-       <path d="M 10.796875 72.90625 
+      <g transform="translate(44.2375 266.754823)scale(0.1 -0.1)">
+       <defs>
+        <path d="M 10.796875 72.90625 
 L 49.515625 72.90625 
 L 49.515625 64.59375 
 L 19.828125 64.59375 
@@ -624,8 +637,7 @@ Q 22.75 39.890625 18.8125 39.015625
 Q 14.890625 38.140625 10.796875 36.28125 
 z
 " id="DejaVuSans-53"/>
-      </defs>
-      <g transform="translate(44.2375 266.754823)scale(0.1 -0.1)">
+       </defs>
        <use xlink:href="#DejaVuSans-53"/>
       </g>
      </g>
@@ -638,8 +650,9 @@ z
      </g>
      <g id="text_8">
       <!-- 10 -->
-      <defs>
-       <path d="M 12.40625 8.296875 
+      <g transform="translate(37.875 235.950428)scale(0.1 -0.1)">
+       <defs>
+        <path d="M 12.40625 8.296875 
 L 28.515625 8.296875 
 L 28.515625 63.921875 
 L 10.984375 60.40625 
@@ -652,8 +665,7 @@ L 54.390625 0
 L 12.40625 0 
 z
 " id="DejaVuSans-49"/>
-      </defs>
-      <g transform="translate(37.875 235.950428)scale(0.1 -0.1)">
+       </defs>
        <use xlink:href="#DejaVuSans-49"/>
        <use x="63.623047" xlink:href="#DejaVuSans-48"/>
       </g>
@@ -681,8 +693,9 @@ z
      </g>
      <g id="text_10">
       <!-- 20 -->
-      <defs>
-       <path d="M 19.1875 8.296875 
+      <g transform="translate(37.875 174.341636)scale(0.1 -0.1)">
+       <defs>
+        <path d="M 19.1875 8.296875 
 L 53.609375 8.296875 
 L 53.609375 0 
 L 7.328125 0 
@@ -706,8 +719,7 @@ Q 44.1875 33.984375 37.640625 27.21875
 Q 31.109375 20.453125 19.1875 8.296875 
 z
 " id="DejaVuSans-50"/>
-      </defs>
-      <g transform="translate(37.875 174.341636)scale(0.1 -0.1)">
+       </defs>
        <use xlink:href="#DejaVuSans-50"/>
        <use x="63.623047" xlink:href="#DejaVuSans-48"/>
       </g>
@@ -735,8 +747,9 @@ z
      </g>
      <g id="text_12">
       <!-- 30 -->
-      <defs>
-       <path d="M 40.578125 39.3125 
+      <g transform="translate(37.875 112.732845)scale(0.1 -0.1)">
+       <defs>
+        <path d="M 40.578125 39.3125 
 Q 47.65625 37.796875 51.625 33 
 Q 55.609375 28.21875 55.609375 21.1875 
 Q 55.609375 10.40625 48.1875 4.484375 
@@ -768,8 +781,7 @@ Q 53.90625 49.265625 50.4375 45.09375
 Q 46.96875 40.921875 40.578125 39.3125 
 z
 " id="DejaVuSans-51"/>
-      </defs>
-      <g transform="translate(37.875 112.732845)scale(0.1 -0.1)">
+       </defs>
        <use xlink:href="#DejaVuSans-51"/>
        <use x="63.623047" xlink:href="#DejaVuSans-48"/>
       </g>
@@ -797,8 +809,9 @@ z
      </g>
      <g id="text_14">
       <!-- 40 -->
-      <defs>
-       <path d="M 37.796875 64.3125 
+      <g transform="translate(37.875 51.124054)scale(0.1 -0.1)">
+       <defs>
+        <path d="M 37.796875 64.3125 
 L 12.890625 25.390625 
 L 37.796875 25.390625 
 z
@@ -815,8 +828,7 @@ L 4.890625 17.1875
 L 4.890625 26.703125 
 z
 " id="DejaVuSans-52"/>
-      </defs>
-      <g transform="translate(37.875 51.124054)scale(0.1 -0.1)">
+       </defs>
        <use xlink:href="#DejaVuSans-52"/>
        <use x="63.623047" xlink:href="#DejaVuSans-48"/>
       </g>
@@ -824,8 +836,9 @@ z
     </g>
     <g id="text_15">
      <!-- Temps de déploiement (secondes) -->
-     <defs>
-      <path d="M 52 44.1875 
+     <g transform="translate(31.795312 253.394125)rotate(-90)scale(0.1 -0.1)">
+      <defs>
+       <path d="M 52 44.1875 
 Q 55.375 50.25 60.0625 53.125 
 Q 64.75 56 71.09375 56 
 Q 79.640625 56 84.28125 50.015625 
@@ -855,7 +868,7 @@ Q 41.65625 56 45.828125 52.96875
 Q 50 49.953125 52 44.1875 
 z
 " id="DejaVuSans-109"/>
-      <path d="M 45.40625 46.390625 
+       <path d="M 45.40625 46.390625 
 L 45.40625 75.984375 
 L 54.390625 75.984375 
 L 54.390625 0 
@@ -881,7 +894,7 @@ Q 22.953125 48.484375 18.875 42.84375
 Q 14.796875 37.203125 14.796875 27.296875 
 z
 " id="DejaVuSans-100"/>
-      <path d="M 56.203125 29.59375 
+       <path d="M 56.203125 29.59375 
 L 56.203125 25.203125 
 L 14.890625 25.203125 
 Q 15.484375 15.921875 20.484375 11.0625 
@@ -910,7 +923,7 @@ L 32.375 61.625
 L 24.90625 61.625 
 z
 " id="DejaVuSans-233"/>
-      <path d="M 18.3125 70.21875 
+       <path d="M 18.3125 70.21875 
 L 18.3125 54.6875 
 L 36.8125 54.6875 
 L 36.8125 47.703125 
@@ -930,8 +943,7 @@ L 9.28125 54.6875
 L 9.28125 70.21875 
 z
 " id="DejaVuSans-116"/>
-     </defs>
-     <g transform="translate(31.795312 253.394125)rotate(-90)scale(0.1 -0.1)">
+      </defs>
       <use xlink:href="#DejaVuSans-84"/>
       <use x="44.083984" xlink:href="#DejaVuSans-101"/>
       <use x="105.607422" xlink:href="#DejaVuSans-109"/>
diff --git a/doc/charts/chart_deploy_time_win10.png b/doc/charts/chart_deploy_time_win10.png
index ee8a4bf..9ffbe72 100644
--- a/doc/charts/chart_deploy_time_win10.png
+++ b/doc/charts/chart_deploy_time_win10.png
@@ -1,3 +1,3 @@
 version https://git-lfs.github.com/spec/v1
-oid sha256:ccdd7f2f8a9352cc44a5d2d1d8fa6312b882072dbddeeafd8ddaabaf069c251f
-size 19588
+oid sha256:ececbb3c526023b31d619469bef208357e4b9328d7191ace787f138945793566
+size 19594
diff --git a/doc/charts/chart_deploy_time_win10.svg b/doc/charts/chart_deploy_time_win10.svg
index 3c64f1f..08df132 100644
--- a/doc/charts/chart_deploy_time_win10.svg
+++ b/doc/charts/chart_deploy_time_win10.svg
@@ -3,10 +3,22 @@
   "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
 <!-- Created with matplotlib (https://matplotlib.org/) -->
 <svg height="345.6pt" version="1.1" viewBox="0 0 460.8 345.6" width="460.8pt" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <metadata>
+  <rdf:RDF xmlns:cc="http://creativecommons.org/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
+   <cc:Work>
+    <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>
+    <dc:date>2020-08-16T19:18:10.751033</dc:date>
+    <dc:format>image/svg+xml</dc:format>
+    <dc:creator>
+     <cc:Agent>
+      <dc:title>Matplotlib v3.3.0, https://matplotlib.org/</dc:title>
+     </cc:Agent>
+    </dc:creator>
+   </cc:Work>
+  </rdf:RDF>
+ </metadata>
  <defs>
-  <style type="text/css">
-*{stroke-linecap:butt;stroke-linejoin:round;}
-  </style>
+  <style type="text/css">*{stroke-linecap:butt;stroke-linejoin:round;}</style>
  </defs>
  <g id="figure_1">
   <g id="patch_1">
@@ -56,8 +68,9 @@ L 0 3.5
      </g>
      <g id="text_1">
       <!-- Gzip -->
-      <defs>
-       <path d="M 59.515625 10.40625 
+      <g transform="translate(134.916463 308.358437)scale(0.1 -0.1)">
+       <defs>
+        <path d="M 59.515625 10.40625 
 L 59.515625 29.984375 
 L 43.40625 29.984375 
 L 43.40625 38.09375 
@@ -82,7 +95,7 @@ Q 48.046875 6.6875 52.140625 7.59375
 Q 56.25 8.5 59.515625 10.40625 
 z
 " id="DejaVuSans-71"/>
-       <path d="M 5.515625 54.6875 
+        <path d="M 5.515625 54.6875 
 L 48.1875 54.6875 
 L 48.1875 46.484375 
 L 14.40625 7.171875 
@@ -94,7 +107,7 @@ L 38.09375 47.515625
 L 5.515625 47.515625 
 z
 " id="DejaVuSans-122"/>
-       <path d="M 9.421875 54.6875 
+        <path d="M 9.421875 54.6875 
 L 18.40625 54.6875 
 L 18.40625 0 
 L 9.421875 0 
@@ -105,7 +118,7 @@ L 18.40625 64.59375
 L 9.421875 64.59375 
 z
 " id="DejaVuSans-105"/>
-       <path d="M 18.109375 8.203125 
+        <path d="M 18.109375 8.203125 
 L 18.109375 -20.796875 
 L 9.078125 -20.796875 
 L 9.078125 54.6875 
@@ -131,16 +144,16 @@ Q 40.53125 6.109375 44.609375 11.75
 Q 48.6875 17.390625 48.6875 27.296875 
 z
 " id="DejaVuSans-112"/>
-      </defs>
-      <g transform="translate(134.916463 308.358437)scale(0.1 -0.1)">
+       </defs>
        <use xlink:href="#DejaVuSans-71"/>
        <use x="77.490234" xlink:href="#DejaVuSans-122"/>
        <use x="129.980469" xlink:href="#DejaVuSans-105"/>
        <use x="157.763672" xlink:href="#DejaVuSans-112"/>
       </g>
       <!-- (sans cache) -->
-      <defs>
-       <path d="M 31 75.875 
+      <g transform="translate(114.237557 319.55625)scale(0.1 -0.1)">
+       <defs>
+        <path d="M 31 75.875 
 Q 24.46875 64.65625 21.28125 53.65625 
 Q 18.109375 42.671875 18.109375 31.390625 
 Q 18.109375 20.125 21.3125 9.0625 
@@ -152,7 +165,7 @@ Q 8.59375 42.28125 12.203125 53.3125
 Q 15.828125 64.359375 23.1875 75.875 
 z
 " id="DejaVuSans-40"/>
-       <path d="M 44.28125 53.078125 
+        <path d="M 44.28125 53.078125 
 L 44.28125 44.578125 
 Q 40.484375 46.53125 36.375 47.5 
 Q 32.28125 48.484375 27.875 48.484375 
@@ -183,7 +196,7 @@ Q 31.78125 56 36.171875 55.265625
 Q 40.578125 54.546875 44.28125 53.078125 
 z
 " id="DejaVuSans-115"/>
-       <path d="M 34.28125 27.484375 
+        <path d="M 34.28125 27.484375 
 Q 23.390625 27.484375 19.1875 25 
 Q 14.984375 22.515625 14.984375 16.5 
 Q 14.984375 11.71875 18.140625 8.90625 
@@ -215,7 +228,7 @@ Q 40.484375 56 46.34375 49.84375
 Q 52.203125 43.703125 52.203125 31.203125 
 z
 " id="DejaVuSans-97"/>
-       <path d="M 54.890625 33.015625 
+        <path d="M 54.890625 33.015625 
 L 54.890625 0 
 L 45.90625 0 
 L 45.90625 32.71875 
@@ -234,8 +247,8 @@ Q 45.21875 56 50.046875 50.171875
 Q 54.890625 44.34375 54.890625 33.015625 
 z
 " id="DejaVuSans-110"/>
-       <path id="DejaVuSans-32"/>
-       <path d="M 48.78125 52.59375 
+        <path id="DejaVuSans-32"/>
+        <path d="M 48.78125 52.59375 
 L 48.78125 44.1875 
 Q 44.96875 46.296875 41.140625 47.34375 
 Q 37.3125 48.390625 33.40625 48.390625 
@@ -256,7 +269,7 @@ Q 37.15625 56 41.109375 55.140625
 Q 45.0625 54.296875 48.78125 52.59375 
 z
 " id="DejaVuSans-99"/>
-       <path d="M 54.890625 33.015625 
+        <path d="M 54.890625 33.015625 
 L 54.890625 0 
 L 45.90625 0 
 L 45.90625 32.71875 
@@ -275,7 +288,7 @@ Q 45.21875 56 50.046875 50.171875
 Q 54.890625 44.34375 54.890625 33.015625 
 z
 " id="DejaVuSans-104"/>
-       <path d="M 56.203125 29.59375 
+        <path d="M 56.203125 29.59375 
 L 56.203125 25.203125 
 L 14.890625 25.203125 
 Q 15.484375 15.921875 20.484375 11.0625 
@@ -299,7 +312,7 @@ Q 24.90625 48.390625 20.390625 44.140625
 Q 15.875 39.890625 15.1875 32.171875 
 z
 " id="DejaVuSans-101"/>
-       <path d="M 8.015625 75.875 
+        <path d="M 8.015625 75.875 
 L 15.828125 75.875 
 Q 23.140625 64.359375 26.78125 53.3125 
 Q 30.421875 42.28125 30.421875 31.390625 
@@ -312,8 +325,7 @@ Q 20.90625 42.671875 17.703125 53.65625
 Q 14.5 64.65625 8.015625 75.875 
 z
 " id="DejaVuSans-41"/>
-      </defs>
-      <g transform="translate(114.237557 319.55625)scale(0.1 -0.1)">
+       </defs>
        <use xlink:href="#DejaVuSans-40"/>
        <use x="39.013672" xlink:href="#DejaVuSans-115"/>
        <use x="91.113281" xlink:href="#DejaVuSans-97"/>
@@ -337,8 +349,9 @@ z
      </g>
      <g id="text_2">
       <!-- Clonezilla -->
-      <defs>
-       <path d="M 64.40625 67.28125 
+      <g transform="translate(302.301193 308.358437)scale(0.1 -0.1)">
+       <defs>
+        <path d="M 64.40625 67.28125 
 L 64.40625 56.890625 
 Q 59.421875 61.53125 53.78125 63.8125 
 Q 48.140625 66.109375 41.796875 66.109375 
@@ -359,13 +372,13 @@ Q 47.75 74.21875 53.53125 72.484375
 Q 59.328125 70.75 64.40625 67.28125 
 z
 " id="DejaVuSans-67"/>
-       <path d="M 9.421875 75.984375 
+        <path d="M 9.421875 75.984375 
 L 18.40625 75.984375 
 L 18.40625 0 
 L 9.421875 0 
 z
 " id="DejaVuSans-108"/>
-       <path d="M 30.609375 48.390625 
+        <path d="M 30.609375 48.390625 
 Q 23.390625 48.390625 19.1875 42.75 
 Q 14.984375 37.109375 14.984375 27.296875 
 Q 14.984375 17.484375 19.15625 11.84375 
@@ -386,8 +399,7 @@ Q 5.515625 40.765625 12.171875 48.375
 Q 18.84375 56 30.609375 56 
 z
 " id="DejaVuSans-111"/>
-      </defs>
-      <g transform="translate(302.301193 308.358437)scale(0.1 -0.1)">
+       </defs>
        <use xlink:href="#DejaVuSans-67"/>
        <use x="69.824219" xlink:href="#DejaVuSans-108"/>
        <use x="97.607422" xlink:href="#DejaVuSans-111"/>
@@ -418,8 +430,9 @@ z
     </g>
     <g id="text_3">
      <!-- Type -->
-     <defs>
-      <path d="M -0.296875 72.90625 
+     <g transform="translate(224.677188 333.234375)scale(0.1 -0.1)">
+      <defs>
+       <path d="M -0.296875 72.90625 
 L 61.375 72.90625 
 L 61.375 64.59375 
 L 35.5 64.59375 
@@ -429,7 +442,7 @@ L 25.59375 64.59375
 L -0.296875 64.59375 
 z
 " id="DejaVuSans-84"/>
-      <path d="M 32.171875 -5.078125 
+       <path d="M 32.171875 -5.078125 
 Q 28.375 -14.84375 24.75 -17.8125 
 Q 21.140625 -20.796875 15.09375 -20.796875 
 L 7.90625 -20.796875 
@@ -445,8 +458,7 @@ L 46.6875 54.6875
 L 56.203125 54.6875 
 z
 " id="DejaVuSans-121"/>
-     </defs>
-     <g transform="translate(224.677188 333.234375)scale(0.1 -0.1)">
+      </defs>
       <use xlink:href="#DejaVuSans-84"/>
       <use x="45.458984" xlink:href="#DejaVuSans-121"/>
       <use x="104.638672" xlink:href="#DejaVuSans-112"/>
@@ -468,8 +480,9 @@ L -3.5 0
      </g>
      <g id="text_4">
       <!-- 0 -->
-      <defs>
-       <path d="M 31.78125 66.40625 
+      <g transform="translate(44.2375 297.559219)scale(0.1 -0.1)">
+       <defs>
+        <path d="M 31.78125 66.40625 
 Q 24.171875 66.40625 20.328125 58.90625 
 Q 16.5 51.421875 16.5 36.375 
 Q 16.5 21.390625 20.328125 13.890625 
@@ -490,8 +503,7 @@ Q 6.59375 54.828125 13.0625 64.515625
 Q 19.53125 74.21875 31.78125 74.21875 
 z
 " id="DejaVuSans-48"/>
-      </defs>
-      <g transform="translate(44.2375 297.559219)scale(0.1 -0.1)">
+       </defs>
        <use xlink:href="#DejaVuSans-48"/>
       </g>
      </g>
@@ -504,8 +516,9 @@ z
      </g>
      <g id="text_5">
       <!-- 500 -->
-      <defs>
-       <path d="M 10.796875 72.90625 
+      <g transform="translate(31.5125 262.56442)scale(0.1 -0.1)">
+       <defs>
+        <path d="M 10.796875 72.90625 
 L 49.515625 72.90625 
 L 49.515625 64.59375 
 L 19.828125 64.59375 
@@ -529,8 +542,7 @@ Q 22.75 39.890625 18.8125 39.015625
 Q 14.890625 38.140625 10.796875 36.28125 
 z
 " id="DejaVuSans-53"/>
-      </defs>
-      <g transform="translate(31.5125 262.56442)scale(0.1 -0.1)">
+       </defs>
        <use xlink:href="#DejaVuSans-53"/>
        <use x="63.623047" xlink:href="#DejaVuSans-48"/>
        <use x="127.246094" xlink:href="#DejaVuSans-48"/>
@@ -545,8 +557,9 @@ z
      </g>
      <g id="text_6">
       <!-- 1000 -->
-      <defs>
-       <path d="M 12.40625 8.296875 
+      <g transform="translate(25.15 227.569622)scale(0.1 -0.1)">
+       <defs>
+        <path d="M 12.40625 8.296875 
 L 28.515625 8.296875 
 L 28.515625 63.921875 
 L 10.984375 60.40625 
@@ -559,8 +572,7 @@ L 54.390625 0
 L 12.40625 0 
 z
 " id="DejaVuSans-49"/>
-      </defs>
-      <g transform="translate(25.15 227.569622)scale(0.1 -0.1)">
+       </defs>
        <use xlink:href="#DejaVuSans-49"/>
        <use x="63.623047" xlink:href="#DejaVuSans-48"/>
        <use x="127.246094" xlink:href="#DejaVuSans-48"/>
@@ -592,8 +604,9 @@ z
      </g>
      <g id="text_8">
       <!-- 2000 -->
-      <defs>
-       <path d="M 19.1875 8.296875 
+      <g transform="translate(25.15 157.580025)scale(0.1 -0.1)">
+       <defs>
+        <path d="M 19.1875 8.296875 
 L 53.609375 8.296875 
 L 53.609375 0 
 L 7.328125 0 
@@ -617,8 +630,7 @@ Q 44.1875 33.984375 37.640625 27.21875
 Q 31.109375 20.453125 19.1875 8.296875 
 z
 " id="DejaVuSans-50"/>
-      </defs>
-      <g transform="translate(25.15 157.580025)scale(0.1 -0.1)">
+       </defs>
        <use xlink:href="#DejaVuSans-50"/>
        <use x="63.623047" xlink:href="#DejaVuSans-48"/>
        <use x="127.246094" xlink:href="#DejaVuSans-48"/>
@@ -650,8 +662,9 @@ z
      </g>
      <g id="text_10">
       <!-- 3000 -->
-      <defs>
-       <path d="M 40.578125 39.3125 
+      <g transform="translate(25.15 87.590428)scale(0.1 -0.1)">
+       <defs>
+        <path d="M 40.578125 39.3125 
 Q 47.65625 37.796875 51.625 33 
 Q 55.609375 28.21875 55.609375 21.1875 
 Q 55.609375 10.40625 48.1875 4.484375 
@@ -683,8 +696,7 @@ Q 53.90625 49.265625 50.4375 45.09375
 Q 46.96875 40.921875 40.578125 39.3125 
 z
 " id="DejaVuSans-51"/>
-      </defs>
-      <g transform="translate(25.15 87.590428)scale(0.1 -0.1)">
+       </defs>
        <use xlink:href="#DejaVuSans-51"/>
        <use x="63.623047" xlink:href="#DejaVuSans-48"/>
        <use x="127.246094" xlink:href="#DejaVuSans-48"/>
@@ -710,8 +722,9 @@ z
     </g>
     <g id="text_12">
      <!-- Temps de déploiement (secondes) -->
-     <defs>
-      <path d="M 52 44.1875 
+     <g transform="translate(19.070312 253.394125)rotate(-90)scale(0.1 -0.1)">
+      <defs>
+       <path d="M 52 44.1875 
 Q 55.375 50.25 60.0625 53.125 
 Q 64.75 56 71.09375 56 
 Q 79.640625 56 84.28125 50.015625 
@@ -741,7 +754,7 @@ Q 41.65625 56 45.828125 52.96875
 Q 50 49.953125 52 44.1875 
 z
 " id="DejaVuSans-109"/>
-      <path d="M 45.40625 46.390625 
+       <path d="M 45.40625 46.390625 
 L 45.40625 75.984375 
 L 54.390625 75.984375 
 L 54.390625 0 
@@ -767,7 +780,7 @@ Q 22.953125 48.484375 18.875 42.84375
 Q 14.796875 37.203125 14.796875 27.296875 
 z
 " id="DejaVuSans-100"/>
-      <path d="M 56.203125 29.59375 
+       <path d="M 56.203125 29.59375 
 L 56.203125 25.203125 
 L 14.890625 25.203125 
 Q 15.484375 15.921875 20.484375 11.0625 
@@ -796,7 +809,7 @@ L 32.375 61.625
 L 24.90625 61.625 
 z
 " id="DejaVuSans-233"/>
-      <path d="M 18.3125 70.21875 
+       <path d="M 18.3125 70.21875 
 L 18.3125 54.6875 
 L 36.8125 54.6875 
 L 36.8125 47.703125 
@@ -816,8 +829,7 @@ L 9.28125 54.6875
 L 9.28125 70.21875 
 z
 " id="DejaVuSans-116"/>
-     </defs>
-     <g transform="translate(19.070312 253.394125)rotate(-90)scale(0.1 -0.1)">
+      </defs>
       <use xlink:href="#DejaVuSans-84"/>
       <use x="44.083984" xlink:href="#DejaVuSans-101"/>
       <use x="105.607422" xlink:href="#DejaVuSans-109"/>
diff --git a/doc/charts/chart_deploy_time_xubuntu.png b/doc/charts/chart_deploy_time_xubuntu.png
index 4d1fbeb..b0502c2 100644
--- a/doc/charts/chart_deploy_time_xubuntu.png
+++ b/doc/charts/chart_deploy_time_xubuntu.png
@@ -1,3 +1,3 @@
 version https://git-lfs.github.com/spec/v1
-oid sha256:1f360c0e3544b5c6f67f9088263b6ce7f2c2261a4c4c46d288772646f9a37c81
-size 19288
+oid sha256:730faa3b5d5b5c1a31a1f9455154f66e7ebedff0b912f66255fa16222edbfa5a
+size 19266
diff --git a/doc/charts/chart_deploy_time_xubuntu.svg b/doc/charts/chart_deploy_time_xubuntu.svg
index b2746b1..e461743 100644
--- a/doc/charts/chart_deploy_time_xubuntu.svg
+++ b/doc/charts/chart_deploy_time_xubuntu.svg
@@ -3,10 +3,22 @@
   "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
 <!-- Created with matplotlib (https://matplotlib.org/) -->
 <svg height="345.6pt" version="1.1" viewBox="0 0 460.8 345.6" width="460.8pt" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <metadata>
+  <rdf:RDF xmlns:cc="http://creativecommons.org/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
+   <cc:Work>
+    <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>
+    <dc:date>2020-08-16T19:18:10.244037</dc:date>
+    <dc:format>image/svg+xml</dc:format>
+    <dc:creator>
+     <cc:Agent>
+      <dc:title>Matplotlib v3.3.0, https://matplotlib.org/</dc:title>
+     </cc:Agent>
+    </dc:creator>
+   </cc:Work>
+  </rdf:RDF>
+ </metadata>
  <defs>
-  <style type="text/css">
-*{stroke-linecap:butt;stroke-linejoin:round;}
-  </style>
+  <style type="text/css">*{stroke-linecap:butt;stroke-linejoin:round;}</style>
  </defs>
  <g id="figure_1">
   <g id="patch_1">
@@ -72,8 +84,9 @@ L 0 3.5
      </g>
      <g id="text_1">
       <!-- Gzip -->
-      <defs>
-       <path d="M 59.515625 10.40625 
+      <g transform="translate(96.945171 308.358437)scale(0.1 -0.1)">
+       <defs>
+        <path d="M 59.515625 10.40625 
 L 59.515625 29.984375 
 L 43.40625 29.984375 
 L 43.40625 38.09375 
@@ -98,7 +111,7 @@ Q 48.046875 6.6875 52.140625 7.59375
 Q 56.25 8.5 59.515625 10.40625 
 z
 " id="DejaVuSans-71"/>
-       <path d="M 5.515625 54.6875 
+        <path d="M 5.515625 54.6875 
 L 48.1875 54.6875 
 L 48.1875 46.484375 
 L 14.40625 7.171875 
@@ -110,7 +123,7 @@ L 38.09375 47.515625
 L 5.515625 47.515625 
 z
 " id="DejaVuSans-122"/>
-       <path d="M 9.421875 54.6875 
+        <path d="M 9.421875 54.6875 
 L 18.40625 54.6875 
 L 18.40625 0 
 L 9.421875 0 
@@ -121,7 +134,7 @@ L 18.40625 64.59375
 L 9.421875 64.59375 
 z
 " id="DejaVuSans-105"/>
-       <path d="M 18.109375 8.203125 
+        <path d="M 18.109375 8.203125 
 L 18.109375 -20.796875 
 L 9.078125 -20.796875 
 L 9.078125 54.6875 
@@ -147,16 +160,16 @@ Q 40.53125 6.109375 44.609375 11.75
 Q 48.6875 17.390625 48.6875 27.296875 
 z
 " id="DejaVuSans-112"/>
-      </defs>
-      <g transform="translate(96.945171 308.358437)scale(0.1 -0.1)">
+       </defs>
        <use xlink:href="#DejaVuSans-71"/>
        <use x="77.490234" xlink:href="#DejaVuSans-122"/>
        <use x="129.980469" xlink:href="#DejaVuSans-105"/>
        <use x="157.763672" xlink:href="#DejaVuSans-112"/>
       </g>
       <!-- (sans cache) -->
-      <defs>
-       <path d="M 31 75.875 
+      <g transform="translate(76.266265 319.55625)scale(0.1 -0.1)">
+       <defs>
+        <path d="M 31 75.875 
 Q 24.46875 64.65625 21.28125 53.65625 
 Q 18.109375 42.671875 18.109375 31.390625 
 Q 18.109375 20.125 21.3125 9.0625 
@@ -168,7 +181,7 @@ Q 8.59375 42.28125 12.203125 53.3125
 Q 15.828125 64.359375 23.1875 75.875 
 z
 " id="DejaVuSans-40"/>
-       <path d="M 44.28125 53.078125 
+        <path d="M 44.28125 53.078125 
 L 44.28125 44.578125 
 Q 40.484375 46.53125 36.375 47.5 
 Q 32.28125 48.484375 27.875 48.484375 
@@ -199,7 +212,7 @@ Q 31.78125 56 36.171875 55.265625
 Q 40.578125 54.546875 44.28125 53.078125 
 z
 " id="DejaVuSans-115"/>
-       <path d="M 34.28125 27.484375 
+        <path d="M 34.28125 27.484375 
 Q 23.390625 27.484375 19.1875 25 
 Q 14.984375 22.515625 14.984375 16.5 
 Q 14.984375 11.71875 18.140625 8.90625 
@@ -231,7 +244,7 @@ Q 40.484375 56 46.34375 49.84375
 Q 52.203125 43.703125 52.203125 31.203125 
 z
 " id="DejaVuSans-97"/>
-       <path d="M 54.890625 33.015625 
+        <path d="M 54.890625 33.015625 
 L 54.890625 0 
 L 45.90625 0 
 L 45.90625 32.71875 
@@ -250,8 +263,8 @@ Q 45.21875 56 50.046875 50.171875
 Q 54.890625 44.34375 54.890625 33.015625 
 z
 " id="DejaVuSans-110"/>
-       <path id="DejaVuSans-32"/>
-       <path d="M 48.78125 52.59375 
+        <path id="DejaVuSans-32"/>
+        <path d="M 48.78125 52.59375 
 L 48.78125 44.1875 
 Q 44.96875 46.296875 41.140625 47.34375 
 Q 37.3125 48.390625 33.40625 48.390625 
@@ -272,7 +285,7 @@ Q 37.15625 56 41.109375 55.140625
 Q 45.0625 54.296875 48.78125 52.59375 
 z
 " id="DejaVuSans-99"/>
-       <path d="M 54.890625 33.015625 
+        <path d="M 54.890625 33.015625 
 L 54.890625 0 
 L 45.90625 0 
 L 45.90625 32.71875 
@@ -291,7 +304,7 @@ Q 45.21875 56 50.046875 50.171875
 Q 54.890625 44.34375 54.890625 33.015625 
 z
 " id="DejaVuSans-104"/>
-       <path d="M 56.203125 29.59375 
+        <path d="M 56.203125 29.59375 
 L 56.203125 25.203125 
 L 14.890625 25.203125 
 Q 15.484375 15.921875 20.484375 11.0625 
@@ -315,7 +328,7 @@ Q 24.90625 48.390625 20.390625 44.140625
 Q 15.875 39.890625 15.1875 32.171875 
 z
 " id="DejaVuSans-101"/>
-       <path d="M 8.015625 75.875 
+        <path d="M 8.015625 75.875 
 L 15.828125 75.875 
 Q 23.140625 64.359375 26.78125 53.3125 
 Q 30.421875 42.28125 30.421875 31.390625 
@@ -328,8 +341,7 @@ Q 20.90625 42.671875 17.703125 53.65625
 Q 14.5 64.65625 8.015625 75.875 
 z
 " id="DejaVuSans-41"/>
-      </defs>
-      <g transform="translate(76.266265 319.55625)scale(0.1 -0.1)">
+       </defs>
        <use xlink:href="#DejaVuSans-40"/>
        <use x="39.013672" xlink:href="#DejaVuSans-115"/>
        <use x="91.113281" xlink:href="#DejaVuSans-97"/>
@@ -360,8 +372,9 @@ z
        <use x="157.763672" xlink:href="#DejaVuSans-112"/>
       </g>
       <!-- (avec cache) -->
-      <defs>
-       <path d="M 2.984375 54.6875 
+      <g transform="translate(161.29464 319.55625)scale(0.1 -0.1)">
+       <defs>
+        <path d="M 2.984375 54.6875 
 L 12.5 54.6875 
 L 29.59375 8.796875 
 L 46.6875 54.6875 
@@ -370,8 +383,7 @@ L 35.6875 0
 L 23.484375 0 
 z
 " id="DejaVuSans-118"/>
-      </defs>
-      <g transform="translate(161.29464 319.55625)scale(0.1 -0.1)">
+       </defs>
        <use xlink:href="#DejaVuSans-40"/>
        <use x="39.013672" xlink:href="#DejaVuSans-97"/>
        <use x="100.292969" xlink:href="#DejaVuSans-118"/>
@@ -395,8 +407,9 @@ z
      </g>
      <g id="text_3">
       <!-- Clonezilla -->
-      <defs>
-       <path d="M 64.40625 67.28125 
+      <g transform="translate(254.837078 308.358437)scale(0.1 -0.1)">
+       <defs>
+        <path d="M 64.40625 67.28125 
 L 64.40625 56.890625 
 Q 59.421875 61.53125 53.78125 63.8125 
 Q 48.140625 66.109375 41.796875 66.109375 
@@ -417,13 +430,13 @@ Q 47.75 74.21875 53.53125 72.484375
 Q 59.328125 70.75 64.40625 67.28125 
 z
 " id="DejaVuSans-67"/>
-       <path d="M 9.421875 75.984375 
+        <path d="M 9.421875 75.984375 
 L 18.40625 75.984375 
 L 18.40625 0 
 L 9.421875 0 
 z
 " id="DejaVuSans-108"/>
-       <path d="M 30.609375 48.390625 
+        <path d="M 30.609375 48.390625 
 Q 23.390625 48.390625 19.1875 42.75 
 Q 14.984375 37.109375 14.984375 27.296875 
 Q 14.984375 17.484375 19.15625 11.84375 
@@ -444,8 +457,7 @@ Q 5.515625 40.765625 12.171875 48.375
 Q 18.84375 56 30.609375 56 
 z
 " id="DejaVuSans-111"/>
-      </defs>
-      <g transform="translate(254.837078 308.358437)scale(0.1 -0.1)">
+       </defs>
        <use xlink:href="#DejaVuSans-67"/>
        <use x="69.824219" xlink:href="#DejaVuSans-108"/>
        <use x="97.607422" xlink:href="#DejaVuSans-111"/>
@@ -513,8 +525,9 @@ z
     </g>
     <g id="text_5">
      <!-- Type -->
-     <defs>
-      <path d="M -0.296875 72.90625 
+     <g transform="translate(224.677188 333.234375)scale(0.1 -0.1)">
+      <defs>
+       <path d="M -0.296875 72.90625 
 L 61.375 72.90625 
 L 61.375 64.59375 
 L 35.5 64.59375 
@@ -524,7 +537,7 @@ L 25.59375 64.59375
 L -0.296875 64.59375 
 z
 " id="DejaVuSans-84"/>
-      <path d="M 32.171875 -5.078125 
+       <path d="M 32.171875 -5.078125 
 Q 28.375 -14.84375 24.75 -17.8125 
 Q 21.140625 -20.796875 15.09375 -20.796875 
 L 7.90625 -20.796875 
@@ -540,8 +553,7 @@ L 46.6875 54.6875
 L 56.203125 54.6875 
 z
 " id="DejaVuSans-121"/>
-     </defs>
-     <g transform="translate(224.677188 333.234375)scale(0.1 -0.1)">
+      </defs>
       <use xlink:href="#DejaVuSans-84"/>
       <use x="45.458984" xlink:href="#DejaVuSans-121"/>
       <use x="104.638672" xlink:href="#DejaVuSans-112"/>
@@ -563,8 +575,9 @@ L -3.5 0
      </g>
      <g id="text_6">
       <!-- 0 -->
-      <defs>
-       <path d="M 31.78125 66.40625 
+      <g transform="translate(44.2375 297.559219)scale(0.1 -0.1)">
+       <defs>
+        <path d="M 31.78125 66.40625 
 Q 24.171875 66.40625 20.328125 58.90625 
 Q 16.5 51.421875 16.5 36.375 
 Q 16.5 21.390625 20.328125 13.890625 
@@ -585,8 +598,7 @@ Q 6.59375 54.828125 13.0625 64.515625
 Q 19.53125 74.21875 31.78125 74.21875 
 z
 " id="DejaVuSans-48"/>
-      </defs>
-      <g transform="translate(44.2375 297.559219)scale(0.1 -0.1)">
+       </defs>
        <use xlink:href="#DejaVuSans-48"/>
       </g>
      </g>
@@ -599,8 +611,9 @@ z
      </g>
      <g id="text_7">
       <!-- 100 -->
-      <defs>
-       <path d="M 12.40625 8.296875 
+      <g transform="translate(31.5125 259.420443)scale(0.1 -0.1)">
+       <defs>
+        <path d="M 12.40625 8.296875 
 L 28.515625 8.296875 
 L 28.515625 63.921875 
 L 10.984375 60.40625 
@@ -613,8 +626,7 @@ L 54.390625 0
 L 12.40625 0 
 z
 " id="DejaVuSans-49"/>
-      </defs>
-      <g transform="translate(31.5125 259.420443)scale(0.1 -0.1)">
+       </defs>
        <use xlink:href="#DejaVuSans-49"/>
        <use x="63.623047" xlink:href="#DejaVuSans-48"/>
        <use x="127.246094" xlink:href="#DejaVuSans-48"/>
@@ -629,8 +641,9 @@ z
      </g>
      <g id="text_8">
       <!-- 200 -->
-      <defs>
-       <path d="M 19.1875 8.296875 
+      <g transform="translate(31.5125 221.281668)scale(0.1 -0.1)">
+       <defs>
+        <path d="M 19.1875 8.296875 
 L 53.609375 8.296875 
 L 53.609375 0 
 L 7.328125 0 
@@ -654,8 +667,7 @@ Q 44.1875 33.984375 37.640625 27.21875
 Q 31.109375 20.453125 19.1875 8.296875 
 z
 " id="DejaVuSans-50"/>
-      </defs>
-      <g transform="translate(31.5125 221.281668)scale(0.1 -0.1)">
+       </defs>
        <use xlink:href="#DejaVuSans-50"/>
        <use x="63.623047" xlink:href="#DejaVuSans-48"/>
        <use x="127.246094" xlink:href="#DejaVuSans-48"/>
@@ -670,8 +682,9 @@ z
      </g>
      <g id="text_9">
       <!-- 300 -->
-      <defs>
-       <path d="M 40.578125 39.3125 
+      <g transform="translate(31.5125 183.142892)scale(0.1 -0.1)">
+       <defs>
+        <path d="M 40.578125 39.3125 
 Q 47.65625 37.796875 51.625 33 
 Q 55.609375 28.21875 55.609375 21.1875 
 Q 55.609375 10.40625 48.1875 4.484375 
@@ -703,8 +716,7 @@ Q 53.90625 49.265625 50.4375 45.09375
 Q 46.96875 40.921875 40.578125 39.3125 
 z
 " id="DejaVuSans-51"/>
-      </defs>
-      <g transform="translate(31.5125 183.142892)scale(0.1 -0.1)">
+       </defs>
        <use xlink:href="#DejaVuSans-51"/>
        <use x="63.623047" xlink:href="#DejaVuSans-48"/>
        <use x="127.246094" xlink:href="#DejaVuSans-48"/>
@@ -719,8 +731,9 @@ z
      </g>
      <g id="text_10">
       <!-- 400 -->
-      <defs>
-       <path d="M 37.796875 64.3125 
+      <g transform="translate(31.5125 145.004117)scale(0.1 -0.1)">
+       <defs>
+        <path d="M 37.796875 64.3125 
 L 12.890625 25.390625 
 L 37.796875 25.390625 
 z
@@ -737,8 +750,7 @@ L 4.890625 17.1875
 L 4.890625 26.703125 
 z
 " id="DejaVuSans-52"/>
-      </defs>
-      <g transform="translate(31.5125 145.004117)scale(0.1 -0.1)">
+       </defs>
        <use xlink:href="#DejaVuSans-52"/>
        <use x="63.623047" xlink:href="#DejaVuSans-48"/>
        <use x="127.246094" xlink:href="#DejaVuSans-48"/>
@@ -753,8 +765,9 @@ z
      </g>
      <g id="text_11">
       <!-- 500 -->
-      <defs>
-       <path d="M 10.796875 72.90625 
+      <g transform="translate(31.5125 106.865341)scale(0.1 -0.1)">
+       <defs>
+        <path d="M 10.796875 72.90625 
 L 49.515625 72.90625 
 L 49.515625 64.59375 
 L 19.828125 64.59375 
@@ -778,8 +791,7 @@ Q 22.75 39.890625 18.8125 39.015625
 Q 14.890625 38.140625 10.796875 36.28125 
 z
 " id="DejaVuSans-53"/>
-      </defs>
-      <g transform="translate(31.5125 106.865341)scale(0.1 -0.1)">
+       </defs>
        <use xlink:href="#DejaVuSans-53"/>
        <use x="63.623047" xlink:href="#DejaVuSans-48"/>
        <use x="127.246094" xlink:href="#DejaVuSans-48"/>
@@ -794,8 +806,9 @@ z
      </g>
      <g id="text_12">
       <!-- 600 -->
-      <defs>
-       <path d="M 33.015625 40.375 
+      <g transform="translate(31.5125 68.726566)scale(0.1 -0.1)">
+       <defs>
+        <path d="M 33.015625 40.375 
 Q 26.375 40.375 22.484375 35.828125 
 Q 18.609375 31.296875 18.609375 23.390625 
 Q 18.609375 15.53125 22.484375 10.953125 
@@ -825,8 +838,7 @@ Q 40.921875 74.21875 44.703125 73.484375
 Q 48.484375 72.75 52.59375 71.296875 
 z
 " id="DejaVuSans-54"/>
-      </defs>
-      <g transform="translate(31.5125 68.726566)scale(0.1 -0.1)">
+       </defs>
        <use xlink:href="#DejaVuSans-54"/>
        <use x="63.623047" xlink:href="#DejaVuSans-48"/>
        <use x="127.246094" xlink:href="#DejaVuSans-48"/>
@@ -835,8 +847,9 @@ z
     </g>
     <g id="text_13">
      <!-- Temps de déploiement (secondes) -->
-     <defs>
-      <path d="M 52 44.1875 
+     <g transform="translate(25.432812 253.394125)rotate(-90)scale(0.1 -0.1)">
+      <defs>
+       <path d="M 52 44.1875 
 Q 55.375 50.25 60.0625 53.125 
 Q 64.75 56 71.09375 56 
 Q 79.640625 56 84.28125 50.015625 
@@ -866,7 +879,7 @@ Q 41.65625 56 45.828125 52.96875
 Q 50 49.953125 52 44.1875 
 z
 " id="DejaVuSans-109"/>
-      <path d="M 45.40625 46.390625 
+       <path d="M 45.40625 46.390625 
 L 45.40625 75.984375 
 L 54.390625 75.984375 
 L 54.390625 0 
@@ -892,7 +905,7 @@ Q 22.953125 48.484375 18.875 42.84375
 Q 14.796875 37.203125 14.796875 27.296875 
 z
 " id="DejaVuSans-100"/>
-      <path d="M 56.203125 29.59375 
+       <path d="M 56.203125 29.59375 
 L 56.203125 25.203125 
 L 14.890625 25.203125 
 Q 15.484375 15.921875 20.484375 11.0625 
@@ -921,7 +934,7 @@ L 32.375 61.625
 L 24.90625 61.625 
 z
 " id="DejaVuSans-233"/>
-      <path d="M 18.3125 70.21875 
+       <path d="M 18.3125 70.21875 
 L 18.3125 54.6875 
 L 36.8125 54.6875 
 L 36.8125 47.703125 
@@ -941,8 +954,7 @@ L 9.28125 54.6875
 L 9.28125 70.21875 
 z
 " id="DejaVuSans-116"/>
-     </defs>
-     <g transform="translate(25.432812 253.394125)rotate(-90)scale(0.1 -0.1)">
+      </defs>
       <use xlink:href="#DejaVuSans-84"/>
       <use x="44.083984" xlink:href="#DejaVuSans-101"/>
       <use x="105.607422" xlink:href="#DejaVuSans-109"/>
diff --git a/doc/charts/chart_image_sizes_debian.png b/doc/charts/chart_image_sizes_debian.png
index 33e7fa8..7eb8eba 100644
--- a/doc/charts/chart_image_sizes_debian.png
+++ b/doc/charts/chart_image_sizes_debian.png
@@ -1,3 +1,3 @@
 version https://git-lfs.github.com/spec/v1
-oid sha256:70cac82311df35270ca7e3df975b44c89250c29a2e92f16d5017f0c6d8c9ae4c
-size 12262
+oid sha256:1c83eab1894f44baf8d346a345a9e98da1d2385f7b92abcc3bf363adc7416a24
+size 12235
diff --git a/doc/charts/chart_image_sizes_debian.svg b/doc/charts/chart_image_sizes_debian.svg
index 601d6de..9d5b667 100644
--- a/doc/charts/chart_image_sizes_debian.svg
+++ b/doc/charts/chart_image_sizes_debian.svg
@@ -3,10 +3,22 @@
   "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
 <!-- Created with matplotlib (https://matplotlib.org/) -->
 <svg height="345.6pt" version="1.1" viewBox="0 0 460.8 345.6" width="460.8pt" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <metadata>
+  <rdf:RDF xmlns:cc="http://creativecommons.org/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
+   <cc:Work>
+    <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>
+    <dc:date>2020-08-16T19:18:08.204014</dc:date>
+    <dc:format>image/svg+xml</dc:format>
+    <dc:creator>
+     <cc:Agent>
+      <dc:title>Matplotlib v3.3.0, https://matplotlib.org/</dc:title>
+     </cc:Agent>
+    </dc:creator>
+   </cc:Work>
+  </rdf:RDF>
+ </metadata>
  <defs>
-  <style type="text/css">
-*{stroke-linecap:butt;stroke-linejoin:round;}
-  </style>
+  <style type="text/css">*{stroke-linecap:butt;stroke-linejoin:round;}</style>
  </defs>
  <g id="figure_1">
   <g id="patch_1">
@@ -64,8 +76,9 @@ L 0 3.5
      </g>
      <g id="text_1">
       <!-- Déployé -->
-      <defs>
-       <path d="M 19.671875 64.796875 
+      <g transform="translate(99.626792 308.758437)scale(0.1 -0.1)">
+       <defs>
+        <path d="M 19.671875 64.796875 
 L 19.671875 8.109375 
 L 31.59375 8.109375 
 Q 46.6875 8.109375 53.6875 14.9375 
@@ -82,7 +95,7 @@ Q 51.171875 0 30.078125 0
 L 9.8125 0 
 z
 " id="DejaVuSans-68"/>
-       <path d="M 56.203125 29.59375 
+        <path d="M 56.203125 29.59375 
 L 56.203125 25.203125 
 L 14.890625 25.203125 
 Q 15.484375 15.921875 20.484375 11.0625 
@@ -111,7 +124,7 @@ L 32.375 61.625
 L 24.90625 61.625 
 z
 " id="DejaVuSans-233"/>
-       <path d="M 18.109375 8.203125 
+        <path d="M 18.109375 8.203125 
 L 18.109375 -20.796875 
 L 9.078125 -20.796875 
 L 9.078125 54.6875 
@@ -137,13 +150,13 @@ Q 40.53125 6.109375 44.609375 11.75
 Q 48.6875 17.390625 48.6875 27.296875 
 z
 " id="DejaVuSans-112"/>
-       <path d="M 9.421875 75.984375 
+        <path d="M 9.421875 75.984375 
 L 18.40625 75.984375 
 L 18.40625 0 
 L 9.421875 0 
 z
 " id="DejaVuSans-108"/>
-       <path d="M 30.609375 48.390625 
+        <path d="M 30.609375 48.390625 
 Q 23.390625 48.390625 19.1875 42.75 
 Q 14.984375 37.109375 14.984375 27.296875 
 Q 14.984375 17.484375 19.15625 11.84375 
@@ -164,7 +177,7 @@ Q 5.515625 40.765625 12.171875 48.375
 Q 18.84375 56 30.609375 56 
 z
 " id="DejaVuSans-111"/>
-       <path d="M 32.171875 -5.078125 
+        <path d="M 32.171875 -5.078125 
 Q 28.375 -14.84375 24.75 -17.8125 
 Q 21.140625 -20.796875 15.09375 -20.796875 
 L 7.90625 -20.796875 
@@ -180,8 +193,7 @@ L 46.6875 54.6875
 L 56.203125 54.6875 
 z
 " id="DejaVuSans-121"/>
-      </defs>
-      <g transform="translate(99.626792 308.758437)scale(0.1 -0.1)">
+       </defs>
        <use xlink:href="#DejaVuSans-68"/>
        <use x="77.001953" xlink:href="#DejaVuSans-233"/>
        <use x="138.525391" xlink:href="#DejaVuSans-112"/>
@@ -200,8 +212,9 @@ z
      </g>
      <g id="text_2">
       <!-- Gzip -->
-      <defs>
-       <path d="M 59.515625 10.40625 
+      <g transform="translate(225.098281 308.358437)scale(0.1 -0.1)">
+       <defs>
+        <path d="M 59.515625 10.40625 
 L 59.515625 29.984375 
 L 43.40625 29.984375 
 L 43.40625 38.09375 
@@ -226,7 +239,7 @@ Q 48.046875 6.6875 52.140625 7.59375
 Q 56.25 8.5 59.515625 10.40625 
 z
 " id="DejaVuSans-71"/>
-       <path d="M 5.515625 54.6875 
+        <path d="M 5.515625 54.6875 
 L 48.1875 54.6875 
 L 48.1875 46.484375 
 L 14.40625 7.171875 
@@ -238,7 +251,7 @@ L 38.09375 47.515625
 L 5.515625 47.515625 
 z
 " id="DejaVuSans-122"/>
-       <path d="M 9.421875 54.6875 
+        <path d="M 9.421875 54.6875 
 L 18.40625 54.6875 
 L 18.40625 0 
 L 9.421875 0 
@@ -249,8 +262,7 @@ L 18.40625 64.59375
 L 9.421875 64.59375 
 z
 " id="DejaVuSans-105"/>
-      </defs>
-      <g transform="translate(225.098281 308.358437)scale(0.1 -0.1)">
+       </defs>
        <use xlink:href="#DejaVuSans-71"/>
        <use x="77.490234" xlink:href="#DejaVuSans-122"/>
        <use x="129.980469" xlink:href="#DejaVuSans-105"/>
@@ -266,8 +278,9 @@ z
      </g>
      <g id="text_3">
       <!-- Clonezilla -->
-      <defs>
-       <path d="M 64.40625 67.28125 
+      <g transform="translate(328.067427 308.358437)scale(0.1 -0.1)">
+       <defs>
+        <path d="M 64.40625 67.28125 
 L 64.40625 56.890625 
 Q 59.421875 61.53125 53.78125 63.8125 
 Q 48.140625 66.109375 41.796875 66.109375 
@@ -288,7 +301,7 @@ Q 47.75 74.21875 53.53125 72.484375
 Q 59.328125 70.75 64.40625 67.28125 
 z
 " id="DejaVuSans-67"/>
-       <path d="M 54.890625 33.015625 
+        <path d="M 54.890625 33.015625 
 L 54.890625 0 
 L 45.90625 0 
 L 45.90625 32.71875 
@@ -307,7 +320,7 @@ Q 45.21875 56 50.046875 50.171875
 Q 54.890625 44.34375 54.890625 33.015625 
 z
 " id="DejaVuSans-110"/>
-       <path d="M 56.203125 29.59375 
+        <path d="M 56.203125 29.59375 
 L 56.203125 25.203125 
 L 14.890625 25.203125 
 Q 15.484375 15.921875 20.484375 11.0625 
@@ -331,7 +344,7 @@ Q 24.90625 48.390625 20.390625 44.140625
 Q 15.875 39.890625 15.1875 32.171875 
 z
 " id="DejaVuSans-101"/>
-       <path d="M 34.28125 27.484375 
+        <path d="M 34.28125 27.484375 
 Q 23.390625 27.484375 19.1875 25 
 Q 14.984375 22.515625 14.984375 16.5 
 Q 14.984375 11.71875 18.140625 8.90625 
@@ -363,8 +376,7 @@ Q 40.484375 56 46.34375 49.84375
 Q 52.203125 43.703125 52.203125 31.203125 
 z
 " id="DejaVuSans-97"/>
-      </defs>
-      <g transform="translate(328.067427 308.358437)scale(0.1 -0.1)">
+       </defs>
        <use xlink:href="#DejaVuSans-67"/>
        <use x="69.824219" xlink:href="#DejaVuSans-108"/>
        <use x="97.607422" xlink:href="#DejaVuSans-111"/>
@@ -380,8 +392,9 @@ z
     </g>
     <g id="text_4">
      <!-- Type -->
-     <defs>
-      <path d="M -0.296875 72.90625 
+     <g transform="translate(224.677188 322.436562)scale(0.1 -0.1)">
+      <defs>
+       <path d="M -0.296875 72.90625 
 L 61.375 72.90625 
 L 61.375 64.59375 
 L 35.5 64.59375 
@@ -391,8 +404,7 @@ L 25.59375 64.59375
 L -0.296875 64.59375 
 z
 " id="DejaVuSans-84"/>
-     </defs>
-     <g transform="translate(224.677188 322.436562)scale(0.1 -0.1)">
+      </defs>
       <use xlink:href="#DejaVuSans-84"/>
       <use x="45.458984" xlink:href="#DejaVuSans-121"/>
       <use x="104.638672" xlink:href="#DejaVuSans-112"/>
@@ -414,8 +426,9 @@ L -3.5 0
      </g>
      <g id="text_5">
       <!-- 0.0 -->
-      <defs>
-       <path d="M 31.78125 66.40625 
+      <g transform="translate(34.696875 297.559219)scale(0.1 -0.1)">
+       <defs>
+        <path d="M 31.78125 66.40625 
 Q 24.171875 66.40625 20.328125 58.90625 
 Q 16.5 51.421875 16.5 36.375 
 Q 16.5 21.390625 20.328125 13.890625 
@@ -436,14 +449,13 @@ Q 6.59375 54.828125 13.0625 64.515625
 Q 19.53125 74.21875 31.78125 74.21875 
 z
 " id="DejaVuSans-48"/>
-       <path d="M 10.6875 12.40625 
+        <path d="M 10.6875 12.40625 
 L 21 12.40625 
 L 21 0 
 L 10.6875 0 
 z
 " id="DejaVuSans-46"/>
-      </defs>
-      <g transform="translate(34.696875 297.559219)scale(0.1 -0.1)">
+       </defs>
        <use xlink:href="#DejaVuSans-48"/>
        <use x="63.623047" xlink:href="#DejaVuSans-46"/>
        <use x="95.410156" xlink:href="#DejaVuSans-48"/>
@@ -458,8 +470,9 @@ z
      </g>
      <g id="text_6">
       <!-- 0.5 -->
-      <defs>
-       <path d="M 10.796875 72.90625 
+      <g transform="translate(34.696875 260.251591)scale(0.1 -0.1)">
+       <defs>
+        <path d="M 10.796875 72.90625 
 L 49.515625 72.90625 
 L 49.515625 64.59375 
 L 19.828125 64.59375 
@@ -483,8 +496,7 @@ Q 22.75 39.890625 18.8125 39.015625
 Q 14.890625 38.140625 10.796875 36.28125 
 z
 " id="DejaVuSans-53"/>
-      </defs>
-      <g transform="translate(34.696875 260.251591)scale(0.1 -0.1)">
+       </defs>
        <use xlink:href="#DejaVuSans-48"/>
        <use x="63.623047" xlink:href="#DejaVuSans-46"/>
        <use x="95.410156" xlink:href="#DejaVuSans-53"/>
@@ -499,8 +511,9 @@ z
      </g>
      <g id="text_7">
       <!-- 1.0 -->
-      <defs>
-       <path d="M 12.40625 8.296875 
+      <g transform="translate(34.696875 222.943963)scale(0.1 -0.1)">
+       <defs>
+        <path d="M 12.40625 8.296875 
 L 28.515625 8.296875 
 L 28.515625 63.921875 
 L 10.984375 60.40625 
@@ -513,8 +526,7 @@ L 54.390625 0
 L 12.40625 0 
 z
 " id="DejaVuSans-49"/>
-      </defs>
-      <g transform="translate(34.696875 222.943963)scale(0.1 -0.1)">
+       </defs>
        <use xlink:href="#DejaVuSans-49"/>
        <use x="63.623047" xlink:href="#DejaVuSans-46"/>
        <use x="95.410156" xlink:href="#DejaVuSans-48"/>
@@ -544,8 +556,9 @@ z
      </g>
      <g id="text_9">
       <!-- 2.0 -->
-      <defs>
-       <path d="M 19.1875 8.296875 
+      <g transform="translate(34.696875 148.328706)scale(0.1 -0.1)">
+       <defs>
+        <path d="M 19.1875 8.296875 
 L 53.609375 8.296875 
 L 53.609375 0 
 L 7.328125 0 
@@ -569,8 +582,7 @@ Q 44.1875 33.984375 37.640625 27.21875
 Q 31.109375 20.453125 19.1875 8.296875 
 z
 " id="DejaVuSans-50"/>
-      </defs>
-      <g transform="translate(34.696875 148.328706)scale(0.1 -0.1)">
+       </defs>
        <use xlink:href="#DejaVuSans-50"/>
        <use x="63.623047" xlink:href="#DejaVuSans-46"/>
        <use x="95.410156" xlink:href="#DejaVuSans-48"/>
@@ -600,8 +612,9 @@ z
      </g>
      <g id="text_11">
       <!-- 3.0 -->
-      <defs>
-       <path d="M 40.578125 39.3125 
+      <g transform="translate(34.696875 73.71345)scale(0.1 -0.1)">
+       <defs>
+        <path d="M 40.578125 39.3125 
 Q 47.65625 37.796875 51.625 33 
 Q 55.609375 28.21875 55.609375 21.1875 
 Q 55.609375 10.40625 48.1875 4.484375 
@@ -633,8 +646,7 @@ Q 53.90625 49.265625 50.4375 45.09375
 Q 46.96875 40.921875 40.578125 39.3125 
 z
 " id="DejaVuSans-51"/>
-      </defs>
-      <g transform="translate(34.696875 73.71345)scale(0.1 -0.1)">
+       </defs>
        <use xlink:href="#DejaVuSans-51"/>
        <use x="63.623047" xlink:href="#DejaVuSans-46"/>
        <use x="95.410156" xlink:href="#DejaVuSans-48"/>
@@ -643,9 +655,10 @@ z
     </g>
     <g id="text_12">
      <!-- Taille (GB) -->
-     <defs>
-      <path id="DejaVuSans-32"/>
-      <path d="M 31 75.875 
+     <g transform="translate(28.617187 192.948031)rotate(-90)scale(0.1 -0.1)">
+      <defs>
+       <path id="DejaVuSans-32"/>
+       <path d="M 31 75.875 
 Q 24.46875 64.65625 21.28125 53.65625 
 Q 18.109375 42.671875 18.109375 31.390625 
 Q 18.109375 20.125 21.3125 9.0625 
@@ -657,7 +670,7 @@ Q 8.59375 42.28125 12.203125 53.3125
 Q 15.828125 64.359375 23.1875 75.875 
 z
 " id="DejaVuSans-40"/>
-      <path d="M 19.671875 34.8125 
+       <path d="M 19.671875 34.8125 
 L 19.671875 8.109375 
 L 35.5 8.109375 
 Q 43.453125 8.109375 47.28125 11.40625 
@@ -686,7 +699,7 @@ Q 48.25 0 35.984375 0
 L 9.8125 0 
 z
 " id="DejaVuSans-66"/>
-      <path d="M 8.015625 75.875 
+       <path d="M 8.015625 75.875 
 L 15.828125 75.875 
 Q 23.140625 64.359375 26.78125 53.3125 
 Q 30.421875 42.28125 30.421875 31.390625 
@@ -699,8 +712,7 @@ Q 20.90625 42.671875 17.703125 53.65625
 Q 14.5 64.65625 8.015625 75.875 
 z
 " id="DejaVuSans-41"/>
-     </defs>
-     <g transform="translate(28.617187 192.948031)rotate(-90)scale(0.1 -0.1)">
+      </defs>
       <use xlink:href="#DejaVuSans-84"/>
       <use x="44.583984" xlink:href="#DejaVuSans-97"/>
       <use x="105.863281" xlink:href="#DejaVuSans-105"/>
diff --git a/doc/charts/chart_image_sizes_win10.png b/doc/charts/chart_image_sizes_win10.png
index 1f307b4..8358bb8 100644
--- a/doc/charts/chart_image_sizes_win10.png
+++ b/doc/charts/chart_image_sizes_win10.png
@@ -1,3 +1,3 @@
 version https://git-lfs.github.com/spec/v1
-oid sha256:0399fa84632fda7b3c7e26e7f75125abb7343df1f9f19a34a6eb802bec6b0516
-size 12569
+oid sha256:1d7e8bc591131e9a18bbc29ef29294100fa01f9a8904c88004abeec831dd519a
+size 12543
diff --git a/doc/charts/chart_image_sizes_win10.svg b/doc/charts/chart_image_sizes_win10.svg
index 1dbdf6b..4f089ff 100644
--- a/doc/charts/chart_image_sizes_win10.svg
+++ b/doc/charts/chart_image_sizes_win10.svg
@@ -3,10 +3,22 @@
   "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
 <!-- Created with matplotlib (https://matplotlib.org/) -->
 <svg height="345.6pt" version="1.1" viewBox="0 0 460.8 345.6" width="460.8pt" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <metadata>
+  <rdf:RDF xmlns:cc="http://creativecommons.org/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
+   <cc:Work>
+    <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>
+    <dc:date>2020-08-16T19:18:09.215542</dc:date>
+    <dc:format>image/svg+xml</dc:format>
+    <dc:creator>
+     <cc:Agent>
+      <dc:title>Matplotlib v3.3.0, https://matplotlib.org/</dc:title>
+     </cc:Agent>
+    </dc:creator>
+   </cc:Work>
+  </rdf:RDF>
+ </metadata>
  <defs>
-  <style type="text/css">
-*{stroke-linecap:butt;stroke-linejoin:round;}
-  </style>
+  <style type="text/css">*{stroke-linecap:butt;stroke-linejoin:round;}</style>
  </defs>
  <g id="figure_1">
   <g id="patch_1">
@@ -64,8 +76,9 @@ L 0 3.5
      </g>
      <g id="text_1">
       <!-- Déployé -->
-      <defs>
-       <path d="M 19.671875 64.796875 
+      <g transform="translate(99.626792 308.758437)scale(0.1 -0.1)">
+       <defs>
+        <path d="M 19.671875 64.796875 
 L 19.671875 8.109375 
 L 31.59375 8.109375 
 Q 46.6875 8.109375 53.6875 14.9375 
@@ -82,7 +95,7 @@ Q 51.171875 0 30.078125 0
 L 9.8125 0 
 z
 " id="DejaVuSans-68"/>
-       <path d="M 56.203125 29.59375 
+        <path d="M 56.203125 29.59375 
 L 56.203125 25.203125 
 L 14.890625 25.203125 
 Q 15.484375 15.921875 20.484375 11.0625 
@@ -111,7 +124,7 @@ L 32.375 61.625
 L 24.90625 61.625 
 z
 " id="DejaVuSans-233"/>
-       <path d="M 18.109375 8.203125 
+        <path d="M 18.109375 8.203125 
 L 18.109375 -20.796875 
 L 9.078125 -20.796875 
 L 9.078125 54.6875 
@@ -137,13 +150,13 @@ Q 40.53125 6.109375 44.609375 11.75
 Q 48.6875 17.390625 48.6875 27.296875 
 z
 " id="DejaVuSans-112"/>
-       <path d="M 9.421875 75.984375 
+        <path d="M 9.421875 75.984375 
 L 18.40625 75.984375 
 L 18.40625 0 
 L 9.421875 0 
 z
 " id="DejaVuSans-108"/>
-       <path d="M 30.609375 48.390625 
+        <path d="M 30.609375 48.390625 
 Q 23.390625 48.390625 19.1875 42.75 
 Q 14.984375 37.109375 14.984375 27.296875 
 Q 14.984375 17.484375 19.15625 11.84375 
@@ -164,7 +177,7 @@ Q 5.515625 40.765625 12.171875 48.375
 Q 18.84375 56 30.609375 56 
 z
 " id="DejaVuSans-111"/>
-       <path d="M 32.171875 -5.078125 
+        <path d="M 32.171875 -5.078125 
 Q 28.375 -14.84375 24.75 -17.8125 
 Q 21.140625 -20.796875 15.09375 -20.796875 
 L 7.90625 -20.796875 
@@ -180,8 +193,7 @@ L 46.6875 54.6875
 L 56.203125 54.6875 
 z
 " id="DejaVuSans-121"/>
-      </defs>
-      <g transform="translate(99.626792 308.758437)scale(0.1 -0.1)">
+       </defs>
        <use xlink:href="#DejaVuSans-68"/>
        <use x="77.001953" xlink:href="#DejaVuSans-233"/>
        <use x="138.525391" xlink:href="#DejaVuSans-112"/>
@@ -200,8 +212,9 @@ z
      </g>
      <g id="text_2">
       <!-- Gzip -->
-      <defs>
-       <path d="M 59.515625 10.40625 
+      <g transform="translate(225.098281 308.358437)scale(0.1 -0.1)">
+       <defs>
+        <path d="M 59.515625 10.40625 
 L 59.515625 29.984375 
 L 43.40625 29.984375 
 L 43.40625 38.09375 
@@ -226,7 +239,7 @@ Q 48.046875 6.6875 52.140625 7.59375
 Q 56.25 8.5 59.515625 10.40625 
 z
 " id="DejaVuSans-71"/>
-       <path d="M 5.515625 54.6875 
+        <path d="M 5.515625 54.6875 
 L 48.1875 54.6875 
 L 48.1875 46.484375 
 L 14.40625 7.171875 
@@ -238,7 +251,7 @@ L 38.09375 47.515625
 L 5.515625 47.515625 
 z
 " id="DejaVuSans-122"/>
-       <path d="M 9.421875 54.6875 
+        <path d="M 9.421875 54.6875 
 L 18.40625 54.6875 
 L 18.40625 0 
 L 9.421875 0 
@@ -249,8 +262,7 @@ L 18.40625 64.59375
 L 9.421875 64.59375 
 z
 " id="DejaVuSans-105"/>
-      </defs>
-      <g transform="translate(225.098281 308.358437)scale(0.1 -0.1)">
+       </defs>
        <use xlink:href="#DejaVuSans-71"/>
        <use x="77.490234" xlink:href="#DejaVuSans-122"/>
        <use x="129.980469" xlink:href="#DejaVuSans-105"/>
@@ -266,8 +278,9 @@ z
      </g>
      <g id="text_3">
       <!-- Clonezilla -->
-      <defs>
-       <path d="M 64.40625 67.28125 
+      <g transform="translate(328.067427 308.358437)scale(0.1 -0.1)">
+       <defs>
+        <path d="M 64.40625 67.28125 
 L 64.40625 56.890625 
 Q 59.421875 61.53125 53.78125 63.8125 
 Q 48.140625 66.109375 41.796875 66.109375 
@@ -288,7 +301,7 @@ Q 47.75 74.21875 53.53125 72.484375
 Q 59.328125 70.75 64.40625 67.28125 
 z
 " id="DejaVuSans-67"/>
-       <path d="M 54.890625 33.015625 
+        <path d="M 54.890625 33.015625 
 L 54.890625 0 
 L 45.90625 0 
 L 45.90625 32.71875 
@@ -307,7 +320,7 @@ Q 45.21875 56 50.046875 50.171875
 Q 54.890625 44.34375 54.890625 33.015625 
 z
 " id="DejaVuSans-110"/>
-       <path d="M 56.203125 29.59375 
+        <path d="M 56.203125 29.59375 
 L 56.203125 25.203125 
 L 14.890625 25.203125 
 Q 15.484375 15.921875 20.484375 11.0625 
@@ -331,7 +344,7 @@ Q 24.90625 48.390625 20.390625 44.140625
 Q 15.875 39.890625 15.1875 32.171875 
 z
 " id="DejaVuSans-101"/>
-       <path d="M 34.28125 27.484375 
+        <path d="M 34.28125 27.484375 
 Q 23.390625 27.484375 19.1875 25 
 Q 14.984375 22.515625 14.984375 16.5 
 Q 14.984375 11.71875 18.140625 8.90625 
@@ -363,8 +376,7 @@ Q 40.484375 56 46.34375 49.84375
 Q 52.203125 43.703125 52.203125 31.203125 
 z
 " id="DejaVuSans-97"/>
-      </defs>
-      <g transform="translate(328.067427 308.358437)scale(0.1 -0.1)">
+       </defs>
        <use xlink:href="#DejaVuSans-67"/>
        <use x="69.824219" xlink:href="#DejaVuSans-108"/>
        <use x="97.607422" xlink:href="#DejaVuSans-111"/>
@@ -380,8 +392,9 @@ z
     </g>
     <g id="text_4">
      <!-- Type -->
-     <defs>
-      <path d="M -0.296875 72.90625 
+     <g transform="translate(224.677188 322.436562)scale(0.1 -0.1)">
+      <defs>
+       <path d="M -0.296875 72.90625 
 L 61.375 72.90625 
 L 61.375 64.59375 
 L 35.5 64.59375 
@@ -391,8 +404,7 @@ L 25.59375 64.59375
 L -0.296875 64.59375 
 z
 " id="DejaVuSans-84"/>
-     </defs>
-     <g transform="translate(224.677188 322.436562)scale(0.1 -0.1)">
+      </defs>
       <use xlink:href="#DejaVuSans-84"/>
       <use x="45.458984" xlink:href="#DejaVuSans-121"/>
       <use x="104.638672" xlink:href="#DejaVuSans-112"/>
@@ -414,8 +426,9 @@ L -3.5 0
      </g>
      <g id="text_5">
       <!-- 0 -->
-      <defs>
-       <path d="M 31.78125 66.40625 
+      <g transform="translate(44.2375 297.559219)scale(0.1 -0.1)">
+       <defs>
+        <path d="M 31.78125 66.40625 
 Q 24.171875 66.40625 20.328125 58.90625 
 Q 16.5 51.421875 16.5 36.375 
 Q 16.5 21.390625 20.328125 13.890625 
@@ -436,8 +449,7 @@ Q 6.59375 54.828125 13.0625 64.515625
 Q 19.53125 74.21875 31.78125 74.21875 
 z
 " id="DejaVuSans-48"/>
-      </defs>
-      <g transform="translate(44.2375 297.559219)scale(0.1 -0.1)">
+       </defs>
        <use xlink:href="#DejaVuSans-48"/>
       </g>
      </g>
@@ -450,8 +462,9 @@ z
      </g>
      <g id="text_6">
       <!-- 100 -->
-      <defs>
-       <path d="M 12.40625 8.296875 
+      <g transform="translate(31.5125 250.639368)scale(0.1 -0.1)">
+       <defs>
+        <path d="M 12.40625 8.296875 
 L 28.515625 8.296875 
 L 28.515625 63.921875 
 L 10.984375 60.40625 
@@ -464,8 +477,7 @@ L 54.390625 0
 L 12.40625 0 
 z
 " id="DejaVuSans-49"/>
-      </defs>
-      <g transform="translate(31.5125 250.639368)scale(0.1 -0.1)">
+       </defs>
        <use xlink:href="#DejaVuSans-49"/>
        <use x="63.623047" xlink:href="#DejaVuSans-48"/>
        <use x="127.246094" xlink:href="#DejaVuSans-48"/>
@@ -480,8 +492,9 @@ z
      </g>
      <g id="text_7">
       <!-- 200 -->
-      <defs>
-       <path d="M 19.1875 8.296875 
+      <g transform="translate(31.5125 203.719516)scale(0.1 -0.1)">
+       <defs>
+        <path d="M 19.1875 8.296875 
 L 53.609375 8.296875 
 L 53.609375 0 
 L 7.328125 0 
@@ -505,8 +518,7 @@ Q 44.1875 33.984375 37.640625 27.21875
 Q 31.109375 20.453125 19.1875 8.296875 
 z
 " id="DejaVuSans-50"/>
-      </defs>
-      <g transform="translate(31.5125 203.719516)scale(0.1 -0.1)">
+       </defs>
        <use xlink:href="#DejaVuSans-50"/>
        <use x="63.623047" xlink:href="#DejaVuSans-48"/>
        <use x="127.246094" xlink:href="#DejaVuSans-48"/>
@@ -521,8 +533,9 @@ z
      </g>
      <g id="text_8">
       <!-- 300 -->
-      <defs>
-       <path d="M 40.578125 39.3125 
+      <g transform="translate(31.5125 156.799665)scale(0.1 -0.1)">
+       <defs>
+        <path d="M 40.578125 39.3125 
 Q 47.65625 37.796875 51.625 33 
 Q 55.609375 28.21875 55.609375 21.1875 
 Q 55.609375 10.40625 48.1875 4.484375 
@@ -554,8 +567,7 @@ Q 53.90625 49.265625 50.4375 45.09375
 Q 46.96875 40.921875 40.578125 39.3125 
 z
 " id="DejaVuSans-51"/>
-      </defs>
-      <g transform="translate(31.5125 156.799665)scale(0.1 -0.1)">
+       </defs>
        <use xlink:href="#DejaVuSans-51"/>
        <use x="63.623047" xlink:href="#DejaVuSans-48"/>
        <use x="127.246094" xlink:href="#DejaVuSans-48"/>
@@ -570,8 +582,9 @@ z
      </g>
      <g id="text_9">
       <!-- 400 -->
-      <defs>
-       <path d="M 37.796875 64.3125 
+      <g transform="translate(31.5125 109.879814)scale(0.1 -0.1)">
+       <defs>
+        <path d="M 37.796875 64.3125 
 L 12.890625 25.390625 
 L 37.796875 25.390625 
 z
@@ -588,8 +601,7 @@ L 4.890625 17.1875
 L 4.890625 26.703125 
 z
 " id="DejaVuSans-52"/>
-      </defs>
-      <g transform="translate(31.5125 109.879814)scale(0.1 -0.1)">
+       </defs>
        <use xlink:href="#DejaVuSans-52"/>
        <use x="63.623047" xlink:href="#DejaVuSans-48"/>
        <use x="127.246094" xlink:href="#DejaVuSans-48"/>
@@ -604,8 +616,9 @@ z
      </g>
      <g id="text_10">
       <!-- 500 -->
-      <defs>
-       <path d="M 10.796875 72.90625 
+      <g transform="translate(31.5125 62.959963)scale(0.1 -0.1)">
+       <defs>
+        <path d="M 10.796875 72.90625 
 L 49.515625 72.90625 
 L 49.515625 64.59375 
 L 19.828125 64.59375 
@@ -629,8 +642,7 @@ Q 22.75 39.890625 18.8125 39.015625
 Q 14.890625 38.140625 10.796875 36.28125 
 z
 " id="DejaVuSans-53"/>
-      </defs>
-      <g transform="translate(31.5125 62.959963)scale(0.1 -0.1)">
+       </defs>
        <use xlink:href="#DejaVuSans-53"/>
        <use x="63.623047" xlink:href="#DejaVuSans-48"/>
        <use x="127.246094" xlink:href="#DejaVuSans-48"/>
@@ -639,9 +651,10 @@ z
     </g>
     <g id="text_11">
      <!-- Taille (GB) -->
-     <defs>
-      <path id="DejaVuSans-32"/>
-      <path d="M 31 75.875 
+     <g transform="translate(25.432812 192.948031)rotate(-90)scale(0.1 -0.1)">
+      <defs>
+       <path id="DejaVuSans-32"/>
+       <path d="M 31 75.875 
 Q 24.46875 64.65625 21.28125 53.65625 
 Q 18.109375 42.671875 18.109375 31.390625 
 Q 18.109375 20.125 21.3125 9.0625 
@@ -653,7 +666,7 @@ Q 8.59375 42.28125 12.203125 53.3125
 Q 15.828125 64.359375 23.1875 75.875 
 z
 " id="DejaVuSans-40"/>
-      <path d="M 19.671875 34.8125 
+       <path d="M 19.671875 34.8125 
 L 19.671875 8.109375 
 L 35.5 8.109375 
 Q 43.453125 8.109375 47.28125 11.40625 
@@ -682,7 +695,7 @@ Q 48.25 0 35.984375 0
 L 9.8125 0 
 z
 " id="DejaVuSans-66"/>
-      <path d="M 8.015625 75.875 
+       <path d="M 8.015625 75.875 
 L 15.828125 75.875 
 Q 23.140625 64.359375 26.78125 53.3125 
 Q 30.421875 42.28125 30.421875 31.390625 
@@ -695,8 +708,7 @@ Q 20.90625 42.671875 17.703125 53.65625
 Q 14.5 64.65625 8.015625 75.875 
 z
 " id="DejaVuSans-41"/>
-     </defs>
-     <g transform="translate(25.432812 192.948031)rotate(-90)scale(0.1 -0.1)">
+      </defs>
       <use xlink:href="#DejaVuSans-84"/>
       <use x="44.583984" xlink:href="#DejaVuSans-97"/>
       <use x="105.863281" xlink:href="#DejaVuSans-105"/>
diff --git a/doc/charts/chart_image_sizes_xubuntu.png b/doc/charts/chart_image_sizes_xubuntu.png
index 79d30c8..e6a8d8f 100644
--- a/doc/charts/chart_image_sizes_xubuntu.png
+++ b/doc/charts/chart_image_sizes_xubuntu.png
@@ -1,3 +1,3 @@
 version https://git-lfs.github.com/spec/v1
-oid sha256:b2121f09a33bf4f6d93b02aefec24ebad4b3dbff972809d400bcb5c185db608a
-size 13652
+oid sha256:32c51829ae50fd667e8fe755f9c9558dc4c382abc64b8ef76064107262e3bc35
+size 13627
diff --git a/doc/charts/chart_image_sizes_xubuntu.svg b/doc/charts/chart_image_sizes_xubuntu.svg
index a67f2f8..c7418b6 100644
--- a/doc/charts/chart_image_sizes_xubuntu.svg
+++ b/doc/charts/chart_image_sizes_xubuntu.svg
@@ -3,10 +3,22 @@
   "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
 <!-- Created with matplotlib (https://matplotlib.org/) -->
 <svg height="345.6pt" version="1.1" viewBox="0 0 460.8 345.6" width="460.8pt" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <metadata>
+  <rdf:RDF xmlns:cc="http://creativecommons.org/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
+   <cc:Work>
+    <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>
+    <dc:date>2020-08-16T19:18:08.711073</dc:date>
+    <dc:format>image/svg+xml</dc:format>
+    <dc:creator>
+     <cc:Agent>
+      <dc:title>Matplotlib v3.3.0, https://matplotlib.org/</dc:title>
+     </cc:Agent>
+    </dc:creator>
+   </cc:Work>
+  </rdf:RDF>
+ </metadata>
  <defs>
-  <style type="text/css">
-*{stroke-linecap:butt;stroke-linejoin:round;}
-  </style>
+  <style type="text/css">*{stroke-linecap:butt;stroke-linejoin:round;}</style>
  </defs>
  <g id="figure_1">
   <g id="patch_1">
@@ -64,8 +76,9 @@ L 0 3.5
      </g>
      <g id="text_1">
       <!-- Déployé -->
-      <defs>
-       <path d="M 19.671875 64.796875 
+      <g transform="translate(99.626792 308.758437)scale(0.1 -0.1)">
+       <defs>
+        <path d="M 19.671875 64.796875 
 L 19.671875 8.109375 
 L 31.59375 8.109375 
 Q 46.6875 8.109375 53.6875 14.9375 
@@ -82,7 +95,7 @@ Q 51.171875 0 30.078125 0
 L 9.8125 0 
 z
 " id="DejaVuSans-68"/>
-       <path d="M 56.203125 29.59375 
+        <path d="M 56.203125 29.59375 
 L 56.203125 25.203125 
 L 14.890625 25.203125 
 Q 15.484375 15.921875 20.484375 11.0625 
@@ -111,7 +124,7 @@ L 32.375 61.625
 L 24.90625 61.625 
 z
 " id="DejaVuSans-233"/>
-       <path d="M 18.109375 8.203125 
+        <path d="M 18.109375 8.203125 
 L 18.109375 -20.796875 
 L 9.078125 -20.796875 
 L 9.078125 54.6875 
@@ -137,13 +150,13 @@ Q 40.53125 6.109375 44.609375 11.75
 Q 48.6875 17.390625 48.6875 27.296875 
 z
 " id="DejaVuSans-112"/>
-       <path d="M 9.421875 75.984375 
+        <path d="M 9.421875 75.984375 
 L 18.40625 75.984375 
 L 18.40625 0 
 L 9.421875 0 
 z
 " id="DejaVuSans-108"/>
-       <path d="M 30.609375 48.390625 
+        <path d="M 30.609375 48.390625 
 Q 23.390625 48.390625 19.1875 42.75 
 Q 14.984375 37.109375 14.984375 27.296875 
 Q 14.984375 17.484375 19.15625 11.84375 
@@ -164,7 +177,7 @@ Q 5.515625 40.765625 12.171875 48.375
 Q 18.84375 56 30.609375 56 
 z
 " id="DejaVuSans-111"/>
-       <path d="M 32.171875 -5.078125 
+        <path d="M 32.171875 -5.078125 
 Q 28.375 -14.84375 24.75 -17.8125 
 Q 21.140625 -20.796875 15.09375 -20.796875 
 L 7.90625 -20.796875 
@@ -180,8 +193,7 @@ L 46.6875 54.6875
 L 56.203125 54.6875 
 z
 " id="DejaVuSans-121"/>
-      </defs>
-      <g transform="translate(99.626792 308.758437)scale(0.1 -0.1)">
+       </defs>
        <use xlink:href="#DejaVuSans-68"/>
        <use x="77.001953" xlink:href="#DejaVuSans-233"/>
        <use x="138.525391" xlink:href="#DejaVuSans-112"/>
@@ -200,8 +212,9 @@ z
      </g>
      <g id="text_2">
       <!-- Gzip -->
-      <defs>
-       <path d="M 59.515625 10.40625 
+      <g transform="translate(225.098281 308.358437)scale(0.1 -0.1)">
+       <defs>
+        <path d="M 59.515625 10.40625 
 L 59.515625 29.984375 
 L 43.40625 29.984375 
 L 43.40625 38.09375 
@@ -226,7 +239,7 @@ Q 48.046875 6.6875 52.140625 7.59375
 Q 56.25 8.5 59.515625 10.40625 
 z
 " id="DejaVuSans-71"/>
-       <path d="M 5.515625 54.6875 
+        <path d="M 5.515625 54.6875 
 L 48.1875 54.6875 
 L 48.1875 46.484375 
 L 14.40625 7.171875 
@@ -238,7 +251,7 @@ L 38.09375 47.515625
 L 5.515625 47.515625 
 z
 " id="DejaVuSans-122"/>
-       <path d="M 9.421875 54.6875 
+        <path d="M 9.421875 54.6875 
 L 18.40625 54.6875 
 L 18.40625 0 
 L 9.421875 0 
@@ -249,8 +262,7 @@ L 18.40625 64.59375
 L 9.421875 64.59375 
 z
 " id="DejaVuSans-105"/>
-      </defs>
-      <g transform="translate(225.098281 308.358437)scale(0.1 -0.1)">
+       </defs>
        <use xlink:href="#DejaVuSans-71"/>
        <use x="77.490234" xlink:href="#DejaVuSans-122"/>
        <use x="129.980469" xlink:href="#DejaVuSans-105"/>
@@ -266,8 +278,9 @@ z
      </g>
      <g id="text_3">
       <!-- Clonezilla -->
-      <defs>
-       <path d="M 64.40625 67.28125 
+      <g transform="translate(328.067427 308.358437)scale(0.1 -0.1)">
+       <defs>
+        <path d="M 64.40625 67.28125 
 L 64.40625 56.890625 
 Q 59.421875 61.53125 53.78125 63.8125 
 Q 48.140625 66.109375 41.796875 66.109375 
@@ -288,7 +301,7 @@ Q 47.75 74.21875 53.53125 72.484375
 Q 59.328125 70.75 64.40625 67.28125 
 z
 " id="DejaVuSans-67"/>
-       <path d="M 54.890625 33.015625 
+        <path d="M 54.890625 33.015625 
 L 54.890625 0 
 L 45.90625 0 
 L 45.90625 32.71875 
@@ -307,7 +320,7 @@ Q 45.21875 56 50.046875 50.171875
 Q 54.890625 44.34375 54.890625 33.015625 
 z
 " id="DejaVuSans-110"/>
-       <path d="M 56.203125 29.59375 
+        <path d="M 56.203125 29.59375 
 L 56.203125 25.203125 
 L 14.890625 25.203125 
 Q 15.484375 15.921875 20.484375 11.0625 
@@ -331,7 +344,7 @@ Q 24.90625 48.390625 20.390625 44.140625
 Q 15.875 39.890625 15.1875 32.171875 
 z
 " id="DejaVuSans-101"/>
-       <path d="M 34.28125 27.484375 
+        <path d="M 34.28125 27.484375 
 Q 23.390625 27.484375 19.1875 25 
 Q 14.984375 22.515625 14.984375 16.5 
 Q 14.984375 11.71875 18.140625 8.90625 
@@ -363,8 +376,7 @@ Q 40.484375 56 46.34375 49.84375
 Q 52.203125 43.703125 52.203125 31.203125 
 z
 " id="DejaVuSans-97"/>
-      </defs>
-      <g transform="translate(328.067427 308.358437)scale(0.1 -0.1)">
+       </defs>
        <use xlink:href="#DejaVuSans-67"/>
        <use x="69.824219" xlink:href="#DejaVuSans-108"/>
        <use x="97.607422" xlink:href="#DejaVuSans-111"/>
@@ -380,8 +392,9 @@ z
     </g>
     <g id="text_4">
      <!-- Type -->
-     <defs>
-      <path d="M -0.296875 72.90625 
+     <g transform="translate(224.677188 322.436562)scale(0.1 -0.1)">
+      <defs>
+       <path d="M -0.296875 72.90625 
 L 61.375 72.90625 
 L 61.375 64.59375 
 L 35.5 64.59375 
@@ -391,8 +404,7 @@ L 25.59375 64.59375
 L -0.296875 64.59375 
 z
 " id="DejaVuSans-84"/>
-     </defs>
-     <g transform="translate(224.677188 322.436562)scale(0.1 -0.1)">
+      </defs>
       <use xlink:href="#DejaVuSans-84"/>
       <use x="45.458984" xlink:href="#DejaVuSans-121"/>
       <use x="104.638672" xlink:href="#DejaVuSans-112"/>
@@ -414,8 +426,9 @@ L -3.5 0
      </g>
      <g id="text_5">
       <!-- 0 -->
-      <defs>
-       <path d="M 31.78125 66.40625 
+      <g transform="translate(44.2375 297.559219)scale(0.1 -0.1)">
+       <defs>
+        <path d="M 31.78125 66.40625 
 Q 24.171875 66.40625 20.328125 58.90625 
 Q 16.5 51.421875 16.5 36.375 
 Q 16.5 21.390625 20.328125 13.890625 
@@ -436,8 +449,7 @@ Q 6.59375 54.828125 13.0625 64.515625
 Q 19.53125 74.21875 31.78125 74.21875 
 z
 " id="DejaVuSans-48"/>
-      </defs>
-      <g transform="translate(44.2375 297.559219)scale(0.1 -0.1)">
+       </defs>
        <use xlink:href="#DejaVuSans-48"/>
       </g>
      </g>
@@ -450,8 +462,9 @@ z
      </g>
      <g id="text_6">
       <!-- 25 -->
-      <defs>
-       <path d="M 19.1875 8.296875 
+      <g transform="translate(37.875 267.601602)scale(0.1 -0.1)">
+       <defs>
+        <path d="M 19.1875 8.296875 
 L 53.609375 8.296875 
 L 53.609375 0 
 L 7.328125 0 
@@ -475,7 +488,7 @@ Q 44.1875 33.984375 37.640625 27.21875
 Q 31.109375 20.453125 19.1875 8.296875 
 z
 " id="DejaVuSans-50"/>
-       <path d="M 10.796875 72.90625 
+        <path d="M 10.796875 72.90625 
 L 49.515625 72.90625 
 L 49.515625 64.59375 
 L 19.828125 64.59375 
@@ -499,8 +512,7 @@ Q 22.75 39.890625 18.8125 39.015625
 Q 14.890625 38.140625 10.796875 36.28125 
 z
 " id="DejaVuSans-53"/>
-      </defs>
-      <g transform="translate(37.875 267.601602)scale(0.1 -0.1)">
+       </defs>
        <use xlink:href="#DejaVuSans-50"/>
        <use x="63.623047" xlink:href="#DejaVuSans-53"/>
       </g>
@@ -528,8 +540,9 @@ z
      </g>
      <g id="text_8">
       <!-- 75 -->
-      <defs>
-       <path d="M 8.203125 72.90625 
+      <g transform="translate(37.875 207.686368)scale(0.1 -0.1)">
+       <defs>
+        <path d="M 8.203125 72.90625 
 L 55.078125 72.90625 
 L 55.078125 68.703125 
 L 28.609375 0 
@@ -538,8 +551,7 @@ L 43.21875 64.59375
 L 8.203125 64.59375 
 z
 " id="DejaVuSans-55"/>
-      </defs>
-      <g transform="translate(37.875 207.686368)scale(0.1 -0.1)">
+       </defs>
        <use xlink:href="#DejaVuSans-55"/>
        <use x="63.623047" xlink:href="#DejaVuSans-53"/>
       </g>
@@ -553,8 +565,9 @@ z
      </g>
      <g id="text_9">
       <!-- 100 -->
-      <defs>
-       <path d="M 12.40625 8.296875 
+      <g transform="translate(31.5125 177.728751)scale(0.1 -0.1)">
+       <defs>
+        <path d="M 12.40625 8.296875 
 L 28.515625 8.296875 
 L 28.515625 63.921875 
 L 10.984375 60.40625 
@@ -567,8 +580,7 @@ L 54.390625 0
 L 12.40625 0 
 z
 " id="DejaVuSans-49"/>
-      </defs>
-      <g transform="translate(31.5125 177.728751)scale(0.1 -0.1)">
+       </defs>
        <use xlink:href="#DejaVuSans-49"/>
        <use x="63.623047" xlink:href="#DejaVuSans-48"/>
        <use x="127.246094" xlink:href="#DejaVuSans-48"/>
@@ -637,9 +649,10 @@ z
     </g>
     <g id="text_14">
      <!-- Taille (GB) -->
-     <defs>
-      <path id="DejaVuSans-32"/>
-      <path d="M 31 75.875 
+     <g transform="translate(25.432812 192.948031)rotate(-90)scale(0.1 -0.1)">
+      <defs>
+       <path id="DejaVuSans-32"/>
+       <path d="M 31 75.875 
 Q 24.46875 64.65625 21.28125 53.65625 
 Q 18.109375 42.671875 18.109375 31.390625 
 Q 18.109375 20.125 21.3125 9.0625 
@@ -651,7 +664,7 @@ Q 8.59375 42.28125 12.203125 53.3125
 Q 15.828125 64.359375 23.1875 75.875 
 z
 " id="DejaVuSans-40"/>
-      <path d="M 19.671875 34.8125 
+       <path d="M 19.671875 34.8125 
 L 19.671875 8.109375 
 L 35.5 8.109375 
 Q 43.453125 8.109375 47.28125 11.40625 
@@ -680,7 +693,7 @@ Q 48.25 0 35.984375 0
 L 9.8125 0 
 z
 " id="DejaVuSans-66"/>
-      <path d="M 8.015625 75.875 
+       <path d="M 8.015625 75.875 
 L 15.828125 75.875 
 Q 23.140625 64.359375 26.78125 53.3125 
 Q 30.421875 42.28125 30.421875 31.390625 
@@ -693,8 +706,7 @@ Q 20.90625 42.671875 17.703125 53.65625
 Q 14.5 64.65625 8.015625 75.875 
 z
 " id="DejaVuSans-41"/>
-     </defs>
-     <g transform="translate(25.432812 192.948031)rotate(-90)scale(0.1 -0.1)">
+      </defs>
       <use xlink:href="#DejaVuSans-84"/>
       <use x="44.583984" xlink:href="#DejaVuSans-97"/>
       <use x="105.863281" xlink:href="#DejaVuSans-105"/>
diff --git a/doc/charts/chart_protocols.png b/doc/charts/chart_protocols.png
index 636fa46..39ca5ba 100644
--- a/doc/charts/chart_protocols.png
+++ b/doc/charts/chart_protocols.png
@@ -1,3 +1,3 @@
 version https://git-lfs.github.com/spec/v1
-oid sha256:e11e376fd98f104b05bc323d98a563d706e772d3996de381ce0ebf5209f6ea8e
-size 13071
+oid sha256:6315daadb53225c7f0e11ad6b9e8ac4267eb5ec25604961aacefa95e65f71285
+size 13041
diff --git a/doc/charts/chart_protocols.svg b/doc/charts/chart_protocols.svg
index 19ba40b..c9472a5 100644
--- a/doc/charts/chart_protocols.svg
+++ b/doc/charts/chart_protocols.svg
@@ -3,10 +3,22 @@
   "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
 <!-- Created with matplotlib (https://matplotlib.org/) -->
 <svg height="345.6pt" version="1.1" viewBox="0 0 460.8 345.6" width="460.8pt" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <metadata>
+  <rdf:RDF xmlns:cc="http://creativecommons.org/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
+   <cc:Work>
+    <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>
+    <dc:date>2020-08-16T19:18:07.697144</dc:date>
+    <dc:format>image/svg+xml</dc:format>
+    <dc:creator>
+     <cc:Agent>
+      <dc:title>Matplotlib v3.3.0, https://matplotlib.org/</dc:title>
+     </cc:Agent>
+    </dc:creator>
+   </cc:Work>
+  </rdf:RDF>
+ </metadata>
  <defs>
-  <style type="text/css">
-*{stroke-linecap:butt;stroke-linejoin:round;}
-  </style>
+  <style type="text/css">*{stroke-linecap:butt;stroke-linejoin:round;}</style>
  </defs>
  <g id="figure_1">
   <g id="patch_1">
@@ -88,8 +100,9 @@ L 0 3.5
      </g>
      <g id="text_1">
       <!-- SCP -->
-      <defs>
-       <path d="M 53.515625 70.515625 
+      <g transform="translate(86.542227 308.358437)scale(0.1 -0.1)">
+       <defs>
+        <path d="M 53.515625 70.515625 
 L 53.515625 60.890625 
 Q 47.90625 63.578125 42.921875 64.890625 
 Q 37.9375 66.21875 33.296875 66.21875 
@@ -120,7 +133,7 @@ Q 37.3125 74.21875 42.625 73.28125
 Q 47.953125 72.359375 53.515625 70.515625 
 z
 " id="DejaVuSans-83"/>
-       <path d="M 64.40625 67.28125 
+        <path d="M 64.40625 67.28125 
 L 64.40625 56.890625 
 Q 59.421875 61.53125 53.78125 63.8125 
 Q 48.140625 66.109375 41.796875 66.109375 
@@ -141,7 +154,7 @@ Q 47.75 74.21875 53.53125 72.484375
 Q 59.328125 70.75 64.40625 67.28125 
 z
 " id="DejaVuSans-67"/>
-       <path d="M 19.671875 64.796875 
+        <path d="M 19.671875 64.796875 
 L 19.671875 37.40625 
 L 32.078125 37.40625 
 Q 38.96875 37.40625 42.71875 40.96875 
@@ -160,8 +173,7 @@ L 19.671875 0
 L 9.8125 0 
 z
 " id="DejaVuSans-80"/>
-      </defs>
-      <g transform="translate(86.542227 308.358437)scale(0.1 -0.1)">
+       </defs>
        <use xlink:href="#DejaVuSans-83"/>
        <use x="63.476562" xlink:href="#DejaVuSans-67"/>
        <use x="133.300781" xlink:href="#DejaVuSans-80"/>
@@ -176,8 +188,9 @@ z
      </g>
      <g id="text_2">
       <!-- HTTP -->
-      <defs>
-       <path d="M 9.8125 72.90625 
+      <g transform="translate(139.402305 308.358437)scale(0.1 -0.1)">
+       <defs>
+        <path d="M 9.8125 72.90625 
 L 19.671875 72.90625 
 L 19.671875 43.015625 
 L 55.515625 43.015625 
@@ -191,7 +204,7 @@ L 19.671875 0
 L 9.8125 0 
 z
 " id="DejaVuSans-72"/>
-       <path d="M -0.296875 72.90625 
+        <path d="M -0.296875 72.90625 
 L 61.375 72.90625 
 L 61.375 64.59375 
 L 35.5 64.59375 
@@ -201,8 +214,7 @@ L 25.59375 64.59375
 L -0.296875 64.59375 
 z
 " id="DejaVuSans-84"/>
-      </defs>
-      <g transform="translate(139.402305 308.358437)scale(0.1 -0.1)">
+       </defs>
        <use xlink:href="#DejaVuSans-72"/>
        <use x="75.195312" xlink:href="#DejaVuSans-84"/>
        <use x="134.529297" xlink:href="#DejaVuSans-84"/>
@@ -218,8 +230,9 @@ z
      </g>
      <g id="text_3">
       <!-- FTP -->
-      <defs>
-       <path d="M 9.8125 72.90625 
+      <g transform="translate(199.315508 308.358437)scale(0.1 -0.1)">
+       <defs>
+        <path d="M 9.8125 72.90625 
 L 51.703125 72.90625 
 L 51.703125 64.59375 
 L 19.671875 64.59375 
@@ -231,8 +244,7 @@ L 19.671875 0
 L 9.8125 0 
 z
 " id="DejaVuSans-70"/>
-      </defs>
-      <g transform="translate(199.315508 308.358437)scale(0.1 -0.1)">
+       </defs>
        <use xlink:href="#DejaVuSans-70"/>
        <use x="55.769531" xlink:href="#DejaVuSans-84"/>
        <use x="116.853516" xlink:href="#DejaVuSans-80"/>
@@ -247,8 +259,9 @@ z
      </g>
      <g id="text_4">
       <!-- NFS -->
-      <defs>
-       <path d="M 9.8125 72.90625 
+      <g transform="translate(254.444336 308.358437)scale(0.1 -0.1)">
+       <defs>
+        <path d="M 9.8125 72.90625 
 L 23.09375 72.90625 
 L 55.421875 11.921875 
 L 55.421875 72.90625 
@@ -260,8 +273,7 @@ L 19.390625 0
 L 9.8125 0 
 z
 " id="DejaVuSans-78"/>
-      </defs>
-      <g transform="translate(254.444336 308.358437)scale(0.1 -0.1)">
+       </defs>
        <use xlink:href="#DejaVuSans-78"/>
        <use x="74.804688" xlink:href="#DejaVuSans-70"/>
        <use x="130.574219" xlink:href="#DejaVuSans-83"/>
@@ -276,8 +288,9 @@ z
      </g>
      <g id="text_5">
       <!-- SMB -->
-      <defs>
-       <path d="M 9.8125 72.90625 
+      <g transform="translate(309.203632 308.358437)scale(0.1 -0.1)">
+       <defs>
+        <path d="M 9.8125 72.90625 
 L 24.515625 72.90625 
 L 43.109375 23.296875 
 L 61.8125 72.90625 
@@ -292,7 +305,7 @@ L 19.390625 0
 L 9.8125 0 
 z
 " id="DejaVuSans-77"/>
-       <path d="M 19.671875 34.8125 
+        <path d="M 19.671875 34.8125 
 L 19.671875 8.109375 
 L 35.5 8.109375 
 Q 43.453125 8.109375 47.28125 11.40625 
@@ -321,8 +334,7 @@ Q 48.25 0 35.984375 0
 L 9.8125 0 
 z
 " id="DejaVuSans-66"/>
-      </defs>
-      <g transform="translate(309.203632 308.358437)scale(0.1 -0.1)">
+       </defs>
        <use xlink:href="#DejaVuSans-83"/>
        <use x="63.476562" xlink:href="#DejaVuSans-77"/>
        <use x="149.755859" xlink:href="#DejaVuSans-66"/>
@@ -337,15 +349,15 @@ z
      </g>
      <g id="text_6">
       <!-- IPFS -->
-      <defs>
-       <path d="M 9.8125 72.90625 
+      <g transform="translate(365.64496 308.358437)scale(0.1 -0.1)">
+       <defs>
+        <path d="M 9.8125 72.90625 
 L 19.671875 72.90625 
 L 19.671875 0 
 L 9.8125 0 
 z
 " id="DejaVuSans-73"/>
-      </defs>
-      <g transform="translate(365.64496 308.358437)scale(0.1 -0.1)">
+       </defs>
        <use xlink:href="#DejaVuSans-73"/>
        <use x="29.492188" xlink:href="#DejaVuSans-80"/>
        <use x="89.794922" xlink:href="#DejaVuSans-70"/>
@@ -355,8 +367,9 @@ z
     </g>
     <g id="text_7">
      <!-- Protocole -->
-     <defs>
-      <path d="M 41.109375 46.296875 
+     <g transform="translate(212.936562 322.036562)scale(0.1 -0.1)">
+      <defs>
+       <path d="M 41.109375 46.296875 
 Q 39.59375 47.171875 37.8125 47.578125 
 Q 36.03125 48 33.890625 48 
 Q 26.265625 48 22.1875 43.046875 
@@ -372,7 +385,7 @@ Q 37.453125 56 38.578125 55.875
 Q 39.703125 55.765625 41.0625 55.515625 
 z
 " id="DejaVuSans-114"/>
-      <path d="M 30.609375 48.390625 
+       <path d="M 30.609375 48.390625 
 Q 23.390625 48.390625 19.1875 42.75 
 Q 14.984375 37.109375 14.984375 27.296875 
 Q 14.984375 17.484375 19.15625 11.84375 
@@ -393,7 +406,7 @@ Q 5.515625 40.765625 12.171875 48.375
 Q 18.84375 56 30.609375 56 
 z
 " id="DejaVuSans-111"/>
-      <path d="M 18.3125 70.21875 
+       <path d="M 18.3125 70.21875 
 L 18.3125 54.6875 
 L 36.8125 54.6875 
 L 36.8125 47.703125 
@@ -413,7 +426,7 @@ L 9.28125 54.6875
 L 9.28125 70.21875 
 z
 " id="DejaVuSans-116"/>
-      <path d="M 48.78125 52.59375 
+       <path d="M 48.78125 52.59375 
 L 48.78125 44.1875 
 Q 44.96875 46.296875 41.140625 47.34375 
 Q 37.3125 48.390625 33.40625 48.390625 
@@ -434,13 +447,13 @@ Q 37.15625 56 41.109375 55.140625
 Q 45.0625 54.296875 48.78125 52.59375 
 z
 " id="DejaVuSans-99"/>
-      <path d="M 9.421875 75.984375 
+       <path d="M 9.421875 75.984375 
 L 18.40625 75.984375 
 L 18.40625 0 
 L 9.421875 0 
 z
 " id="DejaVuSans-108"/>
-      <path d="M 56.203125 29.59375 
+       <path d="M 56.203125 29.59375 
 L 56.203125 25.203125 
 L 14.890625 25.203125 
 Q 15.484375 15.921875 20.484375 11.0625 
@@ -464,8 +477,7 @@ Q 24.90625 48.390625 20.390625 44.140625
 Q 15.875 39.890625 15.1875 32.171875 
 z
 " id="DejaVuSans-101"/>
-     </defs>
-     <g transform="translate(212.936562 322.036562)scale(0.1 -0.1)">
+      </defs>
       <use xlink:href="#DejaVuSans-80"/>
       <use x="58.552734" xlink:href="#DejaVuSans-114"/>
       <use x="97.416016" xlink:href="#DejaVuSans-111"/>
@@ -492,8 +504,9 @@ L -3.5 0
      </g>
      <g id="text_8">
       <!-- 0 -->
-      <defs>
-       <path d="M 31.78125 66.40625 
+      <g transform="translate(44.2375 297.559219)scale(0.1 -0.1)">
+       <defs>
+        <path d="M 31.78125 66.40625 
 Q 24.171875 66.40625 20.328125 58.90625 
 Q 16.5 51.421875 16.5 36.375 
 Q 16.5 21.390625 20.328125 13.890625 
@@ -514,8 +527,7 @@ Q 6.59375 54.828125 13.0625 64.515625
 Q 19.53125 74.21875 31.78125 74.21875 
 z
 " id="DejaVuSans-48"/>
-      </defs>
-      <g transform="translate(44.2375 297.559219)scale(0.1 -0.1)">
+       </defs>
        <use xlink:href="#DejaVuSans-48"/>
       </g>
      </g>
@@ -528,8 +540,9 @@ z
      </g>
      <g id="text_9">
       <!-- 100 -->
-      <defs>
-       <path d="M 12.40625 8.296875 
+      <g transform="translate(31.5125 243.806582)scale(0.1 -0.1)">
+       <defs>
+        <path d="M 12.40625 8.296875 
 L 28.515625 8.296875 
 L 28.515625 63.921875 
 L 10.984375 60.40625 
@@ -542,8 +555,7 @@ L 54.390625 0
 L 12.40625 0 
 z
 " id="DejaVuSans-49"/>
-      </defs>
-      <g transform="translate(31.5125 243.806582)scale(0.1 -0.1)">
+       </defs>
        <use xlink:href="#DejaVuSans-49"/>
        <use x="63.623047" xlink:href="#DejaVuSans-48"/>
        <use x="127.246094" xlink:href="#DejaVuSans-48"/>
@@ -558,8 +570,9 @@ z
      </g>
      <g id="text_10">
       <!-- 200 -->
-      <defs>
-       <path d="M 19.1875 8.296875 
+      <g transform="translate(31.5125 190.053945)scale(0.1 -0.1)">
+       <defs>
+        <path d="M 19.1875 8.296875 
 L 53.609375 8.296875 
 L 53.609375 0 
 L 7.328125 0 
@@ -583,8 +596,7 @@ Q 44.1875 33.984375 37.640625 27.21875
 Q 31.109375 20.453125 19.1875 8.296875 
 z
 " id="DejaVuSans-50"/>
-      </defs>
-      <g transform="translate(31.5125 190.053945)scale(0.1 -0.1)">
+       </defs>
        <use xlink:href="#DejaVuSans-50"/>
        <use x="63.623047" xlink:href="#DejaVuSans-48"/>
        <use x="127.246094" xlink:href="#DejaVuSans-48"/>
@@ -599,8 +611,9 @@ z
      </g>
      <g id="text_11">
       <!-- 300 -->
-      <defs>
-       <path d="M 40.578125 39.3125 
+      <g transform="translate(31.5125 136.301309)scale(0.1 -0.1)">
+       <defs>
+        <path d="M 40.578125 39.3125 
 Q 47.65625 37.796875 51.625 33 
 Q 55.609375 28.21875 55.609375 21.1875 
 Q 55.609375 10.40625 48.1875 4.484375 
@@ -632,8 +645,7 @@ Q 53.90625 49.265625 50.4375 45.09375
 Q 46.96875 40.921875 40.578125 39.3125 
 z
 " id="DejaVuSans-51"/>
-      </defs>
-      <g transform="translate(31.5125 136.301309)scale(0.1 -0.1)">
+       </defs>
        <use xlink:href="#DejaVuSans-51"/>
        <use x="63.623047" xlink:href="#DejaVuSans-48"/>
        <use x="127.246094" xlink:href="#DejaVuSans-48"/>
@@ -648,8 +660,9 @@ z
      </g>
      <g id="text_12">
       <!-- 400 -->
-      <defs>
-       <path d="M 37.796875 64.3125 
+      <g transform="translate(31.5125 82.548672)scale(0.1 -0.1)">
+       <defs>
+        <path d="M 37.796875 64.3125 
 L 12.890625 25.390625 
 L 37.796875 25.390625 
 z
@@ -666,8 +679,7 @@ L 4.890625 17.1875
 L 4.890625 26.703125 
 z
 " id="DejaVuSans-52"/>
-      </defs>
-      <g transform="translate(31.5125 82.548672)scale(0.1 -0.1)">
+       </defs>
        <use xlink:href="#DejaVuSans-52"/>
        <use x="63.623047" xlink:href="#DejaVuSans-48"/>
        <use x="127.246094" xlink:href="#DejaVuSans-48"/>
@@ -676,8 +688,9 @@ z
     </g>
     <g id="text_13">
      <!-- Durée (secondes) -->
-     <defs>
-      <path d="M 19.671875 64.796875 
+     <g transform="translate(25.432812 211.735531)rotate(-90)scale(0.1 -0.1)">
+      <defs>
+       <path d="M 19.671875 64.796875 
 L 19.671875 8.109375 
 L 31.59375 8.109375 
 Q 46.6875 8.109375 53.6875 14.9375 
@@ -694,7 +707,7 @@ Q 51.171875 0 30.078125 0
 L 9.8125 0 
 z
 " id="DejaVuSans-68"/>
-      <path d="M 8.5 21.578125 
+       <path d="M 8.5 21.578125 
 L 8.5 54.6875 
 L 17.484375 54.6875 
 L 17.484375 21.921875 
@@ -715,7 +728,7 @@ z
 M 31.109375 56 
 z
 " id="DejaVuSans-117"/>
-      <path d="M 56.203125 29.59375 
+       <path d="M 56.203125 29.59375 
 L 56.203125 25.203125 
 L 14.890625 25.203125 
 Q 15.484375 15.921875 20.484375 11.0625 
@@ -744,8 +757,8 @@ L 32.375 61.625
 L 24.90625 61.625 
 z
 " id="DejaVuSans-233"/>
-      <path id="DejaVuSans-32"/>
-      <path d="M 31 75.875 
+       <path id="DejaVuSans-32"/>
+       <path d="M 31 75.875 
 Q 24.46875 64.65625 21.28125 53.65625 
 Q 18.109375 42.671875 18.109375 31.390625 
 Q 18.109375 20.125 21.3125 9.0625 
@@ -757,7 +770,7 @@ Q 8.59375 42.28125 12.203125 53.3125
 Q 15.828125 64.359375 23.1875 75.875 
 z
 " id="DejaVuSans-40"/>
-      <path d="M 44.28125 53.078125 
+       <path d="M 44.28125 53.078125 
 L 44.28125 44.578125 
 Q 40.484375 46.53125 36.375 47.5 
 Q 32.28125 48.484375 27.875 48.484375 
@@ -788,7 +801,7 @@ Q 31.78125 56 36.171875 55.265625
 Q 40.578125 54.546875 44.28125 53.078125 
 z
 " id="DejaVuSans-115"/>
-      <path d="M 54.890625 33.015625 
+       <path d="M 54.890625 33.015625 
 L 54.890625 0 
 L 45.90625 0 
 L 45.90625 32.71875 
@@ -807,7 +820,7 @@ Q 45.21875 56 50.046875 50.171875
 Q 54.890625 44.34375 54.890625 33.015625 
 z
 " id="DejaVuSans-110"/>
-      <path d="M 45.40625 46.390625 
+       <path d="M 45.40625 46.390625 
 L 45.40625 75.984375 
 L 54.390625 75.984375 
 L 54.390625 0 
@@ -833,7 +846,7 @@ Q 22.953125 48.484375 18.875 42.84375
 Q 14.796875 37.203125 14.796875 27.296875 
 z
 " id="DejaVuSans-100"/>
-      <path d="M 8.015625 75.875 
+       <path d="M 8.015625 75.875 
 L 15.828125 75.875 
 Q 23.140625 64.359375 26.78125 53.3125 
 Q 30.421875 42.28125 30.421875 31.390625 
@@ -846,8 +859,7 @@ Q 20.90625 42.671875 17.703125 53.65625
 Q 14.5 64.65625 8.015625 75.875 
 z
 " id="DejaVuSans-41"/>
-     </defs>
-     <g transform="translate(25.432812 211.735531)rotate(-90)scale(0.1 -0.1)">
+      </defs>
       <use xlink:href="#DejaVuSans-68"/>
       <use x="77.001953" xlink:href="#DejaVuSans-117"/>
       <use x="140.380859" xlink:href="#DejaVuSans-114"/>
diff --git a/doc/gitlab-markdown.gpp b/doc/gitlab-markdown.gpp
index fd14f13..69b76fe 100644
--- a/doc/gitlab-markdown.gpp
+++ b/doc/gitlab-markdown.gpp
@@ -62,4 +62,8 @@
 
 !!define{!!label{ref_id}}{}
 
-!!define{!!ref{ref_id}}{}
\ No newline at end of file
+!!define{!!ref{ref_id}}{}
+
+!!define{!!cite{citation_id}}{}
+
+!!define{!!citelong{citation_content}}{}
\ No newline at end of file
diff --git a/doc/iso690.csl b/doc/iso690.csl
new file mode 100644
index 0000000..93cca47
--- /dev/null
+++ b/doc/iso690.csl
@@ -0,0 +1,493 @@
+<?xml version="1.0" encoding="utf-8"?>
+<style xmlns="http://purl.org/net/xbiblio/csl" class="in-text" version="1.0" demote-non-dropping-particle="never" default-locale="fr-FR">
+  <info>
+    <title>ISO-690 (numeric, French)</title>
+    <id>http://www.zotero.org/styles/iso690-numeric-fr</id>
+    <link href="http://www.zotero.org/styles/iso690-numeric-fr" rel="self"/>
+    <link href="https://forums.zotero.org/discussion/23511" rel="documentation"/>
+    <author>
+      <name>Laure Mellifluo</name>
+      <email>laure.melli@gmail.com</email>
+    </author>
+    <author>
+      <name>Raphael Grolimund</name>
+      <email>raphael.grolimund@epfl.ch</email>
+    </author>
+    <author>
+      <name>Michel Hardegger</name>
+      <email>hardegger@gmail.com</email>
+    </author>
+    <category citation-format="numeric"/>
+    <category field="generic-base"/>
+    <summary>Style based on ISO 690:2010(F), V1.1</summary>
+    <updated>2015-01-22T16:03:28+00:00</updated>
+    <rights license="http://creativecommons.org/licenses/by-sa/3.0/">This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 License</rights>
+  </info>
+  <locale>
+    <terms>
+      <term name="no date">[sans date]</term>
+      <term name="in">in</term>
+      <term name="online">en&#160;ligne</term>
+      <term name="accessed">consulté&#160;le</term>
+      <term name="retrieved">disponible</term>
+      <term name="from">à l'adresse</term>
+    </terms>
+  </locale>
+  <macro name="author">
+    <names variable="author">
+      <name and="text" name-as-sort-order="all" sort-separator=", " delimiter=", " delimiter-precedes-last="never">
+        <name-part name="family" text-case="uppercase"/>
+        <name-part name="given"/>
+      </name>
+    </names>
+  </macro>
+  <macro name="editor">
+    <names variable="editor">
+      <name and="text" name-as-sort-order="all" sort-separator=", " delimiter=", " delimiter-precedes-last="never">
+        <name-part name="family" text-case="uppercase"/>
+        <name-part name="given"/>
+      </name>
+      <label prefix=" (" form="short" suffix=".)"/>
+    </names>
+  </macro>
+  <macro name="translator">
+    <names variable="translator">
+      <name and="text" name-as-sort-order="all" sort-separator=", " delimiter=", " delimiter-precedes-last="never">
+        <name-part name="family" text-case="uppercase"/>
+        <name-part name="given"/>
+      </name>
+      <label prefix=" (" form="short" suffix=".)"/>
+    </names>
+  </macro>
+  <macro name="responsability">
+    <choose>
+      <if variable="author editor translator" match="any">
+        <choose>
+          <if variable="author">
+            <text macro="author"/>
+          </if>
+          <else-if variable="editor">
+            <text macro="editor"/>
+          </else-if>
+          <else>
+            <text macro="translator"/>
+          </else>
+        </choose>
+      </if>
+    </choose>
+  </macro>
+  <macro name="container-author">
+    <names variable="container-author">
+      <name and="text" name-as-sort-order="all" sort-separator=", " delimiter=", " delimiter-precedes-last="never">
+        <name-part name="family" text-case="uppercase"/>
+        <name-part name="given"/>
+      </name>
+    </names>
+  </macro>
+  <macro name="container-responsability">
+    <choose>
+      <if variable="container-author editor translator" match="any">
+        <choose>
+          <if variable="container-author">
+            <text macro="container-author"/>
+          </if>
+          <else-if variable="editor">
+            <text macro="editor"/>
+          </else-if>
+          <else>
+            <text macro="translator"/>
+          </else>
+        </choose>
+      </if>
+    </choose>
+  </macro>
+  <macro name="year-date">
+    <choose>
+      <if variable="issued">
+        <date variable="issued">
+          <date-part name="year" form="long"/>
+        </date>
+      </if>
+      <else>
+        <text term="no date"/>
+      </else>
+    </choose>
+  </macro>
+  <macro name="title">
+    <choose>
+      <if type="book thesis map motion_picture song manuscript" match="any">
+        <text variable="title" font-style="italic"/>
+      </if>
+      <else-if type="paper-conference speech chapter article-journal article-magazine article-newspaper entry entry-dictionary entry-encyclopedia post-weblog post webpage broadcast" match="any">
+        <text variable="title" suffix=". "/>
+        <choose>
+          <if type="chapter paper-conference" match="any">
+            <text term="in" text-case="capitalize-first" suffix="&#160;: "/>
+          </if>
+        </choose>
+        <choose>
+          <if variable="container-author editor translator" match="any">
+            <text macro="container-responsability"/>
+            <choose>
+              <if variable="container-title event" match="any">
+                <text value=", "/>
+              </if>
+            </choose>
+          </if>
+        </choose>
+        <choose>
+          <if variable="container-title">
+            <text variable="container-title" font-style="italic"/>
+          </if>
+          <else>
+            <text variable="event" font-style="italic"/>
+          </else>
+        </choose>
+      </else-if>
+      <else-if type="report">
+        <text variable="number" suffix=": "/>
+        <text variable="title" font-style="italic"/>
+      </else-if>
+      <else-if type="patent">
+        <text variable="title"/>
+      </else-if>
+      <else>
+        <text variable="title" font-style="italic"/>
+      </else>
+    </choose>
+    <choose>
+      <if variable="URL">
+        <text term="online" prefix=" [" suffix="]"/>
+      </if>
+    </choose>
+  </macro>
+  <macro name="number">
+    <text variable="number"/>
+  </macro>
+  <macro name="medium">
+    <text variable="medium" prefix=" [" suffix="]"/>
+  </macro>
+  <macro name="genre">
+    <choose>
+      <if type="map">
+        <choose>
+          <if variable="genre">
+            <text variable="genre" prefix="[" suffix="]"/>
+          </if>
+          <else>
+            <text value="carte" prefix="[" suffix="]"/>
+          </else>
+        </choose>
+      </if>
+      <else>
+        <text variable="genre"/>
+      </else>
+    </choose>
+  </macro>
+  <macro name="date">
+    <choose>
+      <if variable="issued">
+        <date variable="issued">
+          <date-part name="day" suffix=" "/>
+          <date-part name="month" suffix=" "/>
+          <date-part name="year"/>
+        </date>
+      </if>
+    </choose>
+  </macro>
+  <macro name="edition">
+    <text variable="edition" form="long"/>
+  </macro>
+  <macro name="publisher-group">
+    <group delimiter="&#160;: ">
+      <text variable="publisher-place"/>
+      <text variable="publisher"/>
+    </group>
+  </macro>
+  <macro name="issue">
+    <group delimiter=", ">
+      <text variable="volume" prefix="Vol.&#160;"/>
+      <choose>
+        <if variable="volume">
+          <text variable="issue" prefix="n°&#160;"/>
+          <text variable="page" prefix="pp.&#160;"/>
+        </if>
+        <else-if variable="issue">
+          <text variable="issue" prefix="N°&#160;"/>
+          <text variable="page" prefix="pp.&#160;"/>
+        </else-if>
+        <else>
+          <text variable="page" prefix="pp.&#160;"/>
+        </else>
+      </choose>
+    </group>
+  </macro>
+  <macro name="accessed">
+    <choose>
+      <if variable="URL">
+        <group prefix=" [" suffix="]">
+          <text term="accessed" text-case="capitalize-first"/>
+          <date variable="accessed">
+            <date-part name="day" prefix="&#160;"/>
+            <date-part name="month" prefix="&#160;"/>
+            <date-part name="year" prefix="&#160;"/>
+          </date>
+        </group>
+      </if>
+    </choose>
+  </macro>
+  <macro name="collection">
+    <group delimiter=", ">
+      <text variable="collection-title"/>
+      <text variable="collection-number"/>
+    </group>
+  </macro>
+  <macro name="page">
+    <choose>
+      <if type="book thesis manuscript" match="any">
+        <text variable="number-of-pages" suffix="&#160;p"/>
+      </if>
+      <else-if type="chapter paper-conference article-newspaper" match="any">
+        <text variable="page" prefix="pp.&#160;"/>
+      </else-if>
+      <else-if type="report patent" match="any">
+        <text variable="page" suffix="&#160;p"/>
+      </else-if>
+    </choose>
+  </macro>
+  <macro name="isbn">
+    <text variable="ISBN" prefix="ISBN&#160;"/>
+  </macro>
+  <macro name="doi">
+    <text variable="DOI" prefix="DOI&#160;"/>
+  </macro>
+  <macro name="url">
+    <choose>
+      <if variable="URL">
+        <group>
+          <text term="retrieved" suffix=" " text-case="capitalize-first"/>
+          <text term="from" suffix="&#160;: "/>
+          <text variable="URL"/>
+        </group>
+      </if>
+    </choose>
+  </macro>
+  <macro name="archive">
+    <group delimiter=":&#160;">
+      <text variable="archive"/>
+      <text macro="archive_location"/>
+    </group>
+  </macro>
+  <macro name="archive_location">
+    <choose>
+      <if variable="archive_location">
+        <text variable="archive_location"/>
+      </if>
+      <else>
+        <text variable="call-number"/>
+      </else>
+    </choose>
+  </macro>
+  <macro name="abstract">
+    <text variable="abstract"/>
+  </macro>
+  <macro name="note">
+    <text variable="note"/>
+  </macro>
+  <citation collapse="citation-number" after-collapse-delimiter="; ">
+    <sort>
+      <key variable="citation-number"/>
+    </sort>
+    <layout prefix="(" suffix=")" delimiter=", ">
+      <group delimiter=", ">
+        <text variable="citation-number"/>
+        <group>
+          <label variable="locator" suffix=".&#160;" form="short" strip-periods="true"/>
+          <text variable="locator"/>
+        </group>
+      </group>
+    </layout>
+  </citation>
+  <bibliography>
+    <sort>
+      <key variable="citation-number"/>
+    </sort>
+    <layout>
+      <text variable="citation-number" display="left-margin" font-weight="bold" suffix=". "/>
+      <choose>
+        <if type="book map" match="any">
+          <group display="right-inline">
+            <text macro="responsability" suffix=". "/>
+            <text macro="title" suffix=". "/>
+            <text macro="genre" suffix=". "/>
+            <text macro="edition" suffix=". "/>
+            <text macro="publisher-group" suffix=", "/>
+            <text macro="year-date" suffix=". "/>
+            <text macro="accessed" suffix=". "/>
+            <text macro="collection" suffix=". "/>
+            <text macro="isbn" suffix=". "/>
+            <text macro="url"/>
+          </group>
+        </if>
+        <else-if type="article-journal article-magazine" match="any">
+          <group display="right-inline">
+            <text macro="responsability" suffix=". "/>
+            <text macro="title" suffix=". "/>
+            <text macro="edition" suffix=". "/>
+            <text macro="date" suffix=". "/>
+            <text macro="issue" suffix=". "/>
+            <text macro="accessed" suffix=". "/>
+            <text macro="doi" suffix=". "/>
+            <text macro="url"/>
+          </group>
+        </else-if>
+        <else-if type="article-newspaper">
+          <group display="right-inline">
+            <text macro="responsability" suffix=". "/>
+            <text macro="title" suffix=". "/>
+            <text macro="edition" suffix=". "/>
+            <text macro="publisher-group" suffix=", "/>
+            <text macro="date" suffix=". "/>
+            <text macro="page" suffix=". "/>
+            <text macro="accessed" suffix=". "/>
+            <text macro="url"/>
+          </group>
+        </else-if>
+        <else-if type="chapter entry entry-dictionary entry-encyclopedia" match="any">
+          <group display="right-inline">
+            <text macro="responsability" suffix=". "/>
+            <text macro="title" font-style="normal" suffix=". "/>
+            <text macro="edition" suffix=". "/>
+            <text macro="publisher-group" suffix=", "/>
+            <text macro="year-date" suffix=". "/>
+            <text macro="page" suffix=". "/>
+            <text macro="collection" suffix=". "/>
+            <text macro="accessed" suffix=". "/>
+            <text macro="isbn" suffix=". "/>
+            <text macro="url"/>
+          </group>
+        </else-if>
+        <else-if type="speech">
+          <group display="right-inline">
+            <text macro="responsability" suffix=". "/>
+            <text macro="title" suffix=". "/>
+            <text macro="genre" suffix=". "/>
+            <text macro="publisher-group" suffix=". "/>
+            <text macro="date" suffix=". "/>
+            <text macro="accessed" suffix=". "/>
+            <text macro="page" suffix=". "/>
+            <text macro="url"/>
+          </group>
+        </else-if>
+        <else-if type="paper-conference">
+          <group display="right-inline">
+            <text macro="responsability" suffix=". "/>
+            <text macro="title" suffix=". "/>
+            <text macro="genre" suffix=". "/>
+            <text macro="publisher-group" suffix=", "/>
+            <text macro="date" suffix=". "/>
+            <text macro="page" suffix=". "/>
+            <text macro="accessed" suffix=". "/>
+            <text macro="collection" suffix=". "/>
+            <text macro="isbn" suffix=". "/>
+            <text macro="url"/>
+          </group>
+        </else-if>
+        <else-if type="thesis">
+          <group display="right-inline">
+            <text macro="responsability" suffix=". "/>
+            <text macro="title" suffix=". "/>
+            <text macro="genre" suffix=". "/>
+            <text macro="publisher-group" suffix=", "/>
+            <text macro="year-date" suffix=". "/>
+            <text macro="accessed" suffix=". "/>
+            <text macro="url"/>
+          </group>
+        </else-if>
+        <else-if type="post-weblog post webpage" match="any">
+          <group display="right-inline">
+            <text macro="responsability" suffix=". "/>
+            <text macro="title" suffix=". "/>
+            <text macro="date" suffix=". "/>
+            <text macro="accessed" suffix=". "/>
+            <text macro="url"/>
+          </group>
+        </else-if>
+        <else-if type="broadcast motion_picture song" match="any">
+          <group display="right-inline">
+            <text macro="responsability" suffix=". "/>
+            <text macro="title" suffix=". "/>
+            <text macro="medium" suffix=". "/>
+            <text macro="publisher-group" suffix=", "/>
+            <text macro="date" suffix=". "/>
+            <text macro="accessed" suffix=". "/>
+            <text macro="collection" suffix=". "/>
+            <text macro="isbn" suffix=". "/>
+            <text macro="url"/>
+          </group>
+        </else-if>
+        <else-if type="report" match="any">
+          <group display="right-inline">
+            <text macro="responsability" suffix=". "/>
+            <text macro="title" suffix=". "/>
+            <text macro="genre" suffix=". "/>
+            <text macro="edition" suffix=". "/>
+            <text macro="publisher-group" suffix=", "/>
+            <text macro="year-date" suffix=". "/>
+            <text macro="accessed" suffix=". "/>
+            <text macro="collection" suffix=". "/>
+            <text macro="url"/>
+          </group>
+        </else-if>
+        <else-if type="manuscript" match="any">
+          <group display="right-inline">
+            <text macro="responsability" suffix=". "/>
+            <text macro="title" suffix=". "/>
+            <text macro="genre" suffix=". "/>
+            <text macro="edition" suffix=". "/>
+            <text macro="publisher-group" suffix=", "/>
+            <text macro="year-date" suffix=". "/>
+            <text macro="accessed" suffix=". "/>
+            <text macro="collection" suffix=". "/>
+            <text macro="url"/>
+          </group>
+        </else-if>
+        <else-if type="patent">
+          <group display="right-inline">
+            <text macro="responsability" suffix=". "/>
+            <text macro="title" suffix=". "/>
+            <text macro="number" suffix=". "/>
+            <text macro="date" suffix=". "/>
+            <text macro="publisher-group" suffix=". "/>
+            <text macro="accessed" suffix=". "/>
+            <text macro="collection" suffix=". "/>
+            <text macro="url"/>
+          </group>
+        </else-if>
+        <else>
+          <group display="right-inline">
+            <text macro="responsability" suffix=". "/>
+            <text macro="title" suffix=". "/>
+            <text macro="medium" suffix=". "/>
+            <text macro="genre" suffix=". "/>
+            <text macro="date" suffix=". "/>
+            <text macro="edition" suffix=". "/>
+            <text macro="publisher-group" suffix=". "/>
+            <text macro="number" suffix=". "/>
+            <text macro="accessed" suffix=". "/>
+            <text macro="collection" suffix=". "/>
+            <text macro="page" suffix=". "/>
+            <text macro="isbn" suffix=". "/>
+            <text macro="url"/>
+          </group>
+        </else>
+      </choose>
+      <group display="right-inline">
+        <text macro="archive"/>
+      </group>
+      <group display="right-inline">
+        <text macro="note"/>
+      </group>
+    </layout>
+  </bibliography>
+</style>
diff --git a/doc/pandoc-pdf-markdown.gpp b/doc/pandoc-pdf-markdown.gpp
index f2b2e18..dd5fc5b 100644
--- a/doc/pandoc-pdf-markdown.gpp
+++ b/doc/pandoc-pdf-markdown.gpp
@@ -41,3 +41,7 @@
 !!define{!!tableheader{ref_id}{description}}{
 Table: !!description \label{!!ref_id}
 }
+
+!!define{!!cite{citation_id}}{[@@!!citation_id]}
+
+!!define{!!citelong{citation_content}}{[!!citation_content]}
\ No newline at end of file
diff --git a/doc/rapport.gpp.md b/doc/rapport.gpp.md
index 179a3f4..3192f40 100644
--- a/doc/rapport.gpp.md
+++ b/doc/rapport.gpp.md
@@ -18,6 +18,11 @@ numbersections: true
 fontsize: 12pt
 monofont: JetBrains Mono
 output: pdf_document
+filters:
+- pandoc-citeproc
+bibliography: references.bib
+csl: iso690.csl
+link-citations: true
 header-includes: |
     \usepackage{pdfpages}
     \usepackage{fancyhdr}
@@ -44,7 +49,7 @@ header-includes: |
 
     \setlength{\parindent}{0pt}
     \setlength{\parskip}{9pt}
-    \setlength{\beforechapskip}{0pt}
+    \setlength{\beforechapskip}{-10pt}
     
     \OnehalfSpacing
 ---
@@ -62,7 +67,8 @@ header-includes: |
 !!defacronym{FTP}{_File Transfer Protocol_: protocole de transfert de fichier}
 !!defacronym{GPT}{_GUID Partition Table_: table de partitionnement GUID}
 !!defacronym{GRUB}{_GRand Unified Bootloader_}
-!!defacronym{HEPIA}{Haute école du paysage, d'ingénierie et d'architecture de Genève}
+!!defacronym{HEPIA}{Haute École du Paysage, d'Ingénierie et d'Architecture de Genève}
+!!defacronym{HES}{Haute École Spécialisée}
 !!defacronym{HTTPS}{_HyperText Transfer Protocol Secure_: protocole de transfert hypertexte sécurisé}
 !!defacronym{HTTP}{_HyperText Transfer Protocol_:  protocole de transfert hypertexte}
 !!defacronym{IBM}{_International Business Machines corporation_}
@@ -78,6 +84,7 @@ header-includes: |
 !!defacronym{PC}{_Personal Computer_: ordinateur personnel}
 !!defacronym{PXE}{_Pre-boot eXecution Environment_: environnement d'exécution pré-démarrage}
 !!defacronym{SCP}{_Secure CoPy_: protocole de copie sécurisée sur le réseau}
+!!defacronym{SI}{Système d'Information}
 !!defacronym{SMB}{_Server Message Block_}
 !!defacronym{SSH}{_Secure SHell_: protocole de terminal à distance securisé}
 !!defacronym{TFTP}{_Trivial File Transfer Protocol_: protocole simplifié de transfert de fichiers}
@@ -89,7 +96,20 @@ header-includes: |
 
 !!chapterwithoutnumber{Remerciements}
 
-**TODO: remerciements**
+Je souhaite remercier **Florent Glück**, professeur !!acronym{HES}
+associé à !!acronym{HEPIA}, ainsi que **Sébastien Chassot**, assistant
+!!acronym{HES} à !!acronym{HEPIA} pour leur implication et leur aide
+précieuse apportée lors des rendez-vous hebdomadaire de suivi de ce
+projet.
+
+Je souhaite également remercier ma compagne, **Nathalie Sieber**, pour
+son soutien, sa patience et sa confiance, tout au long de mon cursus à
+!!acronym{HEPIA}.
+
+Enfin, je souhaite remercier mes parents, Cristina Lizzi et Enzo Zonca
+pour m'avoir fait découvrir le monde de l'informatique quand j'étais
+petit et m'avoir toujours encouragé et aidé à poursuivre mes études dans
+ce domaine.
 
 !!ifdef{PANDOC_PDF}
 \addcontentsline{toc}{chapter}{Résumé}
@@ -111,6 +131,9 @@ header-includes: |
 
 ## Contexte
 
+Le contexte du projet, tiré de l´énoncé de ce dernier
+!!cite{gluck_enonce_2020}, est le suivant:
+
 Aujourd’hui les machines des salles de cours à !!acronym{HEPIA} sont
 installées avec une image spécifique d’un système d’exploitation. Dans
 le cadre de certains cours, on désirerait pouvoir utiliser un autre
@@ -131,6 +154,9 @@ d’un travail déjà existant.
 
 ## Objectifs
 
+Les objectifs du projet, tirés de l´énoncé de ce dernier
+!!cite{gluck_enonce_2020}, sont les suivants:
+
 - Etude du travail existant.
 - Mise en place d’un déploiement automatisé et reproductible du travail
   existant.
@@ -221,16 +247,19 @@ projet _Bootiful_. Il permet aux postes clients de lancer un mini
 système d'exploitation via !!acronym{PXE} au démarrage de la machine. Ce
 mini-système permet de télécharger et déployer des images de système
 d'exploitation sur la machine, tout en créant une copie en cache à la
-fin du disque pour éviter de la télécharger plusieurs fois.
+fin du disque pour éviter de la télécharger plusieurs fois
+!!cite{bpbatch_homepage}.
 
 La première version, nommée _BpBatch_ fut distribuée gratuitement sur
 internet. Une entreprise nommée _Rembo Technology Sàrl_ a ensuite été
-fondée en 1999 pour continuer un développement commercial de ce projet
-sous le nom de _Rembo_. En 2006, la société a été rachetée par IBM et le
-projet a été intégré à leur solution _Tivoli Provisionning Manager_.
-
-Ce système réponde aux besoins de !!acronym{HEPIA}, et il a même déjà
-été utilisé au sein de l'institution par le passé. Il a cependant été
+fondée en 1999 !!cite{registre_commerce_rembo} pour continuer un
+développement commercial de ce projet sous le nom de _Rembo_. En 2006,
+la société a été rachetée par IBM !!cite{registre_commerce_rembo} et le
+projet a été intégré à leur solution _Tivoli Provisionning Manager_
+!!cite{ibm_rembo}.
+
+Ce système répond aux besoins de !!acronym{HEPIA}, et il a même déjà été
+utilisé au sein de l'institution par le passé. Il a cependant été
 abandonné à cause de sa licence devenue très couteuse et de sa
 complexité devenue trop grande pour les besoins simple de l'école.
 
@@ -242,6 +271,7 @@ intéressante.
 
 !!acronym{FOG} est une solution open-source gratuite permettant de
 déployer des images de systèmes d'exploitation sur des postes clients.
+!!cite{fog_wiki_intro}
 
 Elle fonctionne avec une architecture client-serveur. Le serveur est
 accédé par une interface web, où un administrateur peut gérer ses images
@@ -267,7 +297,7 @@ nouveau depuis le serveur, ce qui peut prendre beaucoup de temps et doit
 ### Clonezilla
 
 _Clonezilla_ est une solution open-source et gratuite de création et de
-restauration d'images.
+restauration d'images. !!cite{clonezilla_home}
 
 Cet outil peut être utilisé de deux manières:
 
@@ -302,10 +332,11 @@ déploiement. Cette possibilité sera étudiée plus tard dans ce document.
 # Architecture initiale du projet
 
 Le projet _Bootiful_ n'a pas été initié dans le cadre de ce travail de
-bachelor: une implémentation basique avait déjà été réalisée afin de
-prouver que l'idée fonctionne. Cette version initiale a été créée par
-Abhilash Venkatesh, un étudiant indien qui est venu à !!acronym{HEPIA}
-effectuer un stage pendant la période de mai à juillet 2019.
+bachelor: une implémentation basique !!cite{venkatesh_remote_imaging}
+avait déjà été réalisée afin de prouver que l'idée fonctionne. Cette
+version initiale a été créée par Abhilash Venkatesh, un étudiant indien
+qui est venu à !!acronym{HEPIA} effectuer un stage pendant la période de
+mai à juillet 2019.
 
 Les premières étapes de ce travail diplôme ont été de reproduire le
 système réalisé dans le projet initial afin de valider son
@@ -2027,9 +2058,11 @@ avancés (_sIT_384_), programmation avancée des systèmes (_sIT_632_) et
 virtualisation des !!acronym{SI} (_sIT_632_).
 
 !!ifdef{PANDOC_PDF}
-# Références
 
-**TODO: add references**
+!!chapterwithoutnumber{Références}
+
+::: {#refs}
+:::
 
 \appendix
 !!endif
diff --git a/doc/rapport.md b/doc/rapport.md
index 163744a..2d8209a 100644
--- a/doc/rapport.md
+++ b/doc/rapport.md
@@ -61,6 +61,8 @@
 
 - **SCP**: _Secure CoPy_: protocole de copie sécurisée sur le réseau
 
+- **SI**: Système d'Information
+
 - **SMB**: _Server Message Block_
 
 - **SSH**: _Secure SHell_: protocole de terminal à distance securisé
@@ -84,6 +86,9 @@
 
 ## Contexte
 
+Le contexte du projet, tiré de l´énoncé de ce dernier
+, est le suivant:
+
 Aujourd’hui les machines des salles de cours à <abbr title="Haute école du paysage, d’ingénierie et d’architecture de Genève ">HEPIA</abbr> sont
 installées avec une image spécifique d’un système d’exploitation. Dans
 le cadre de certains cours, on désirerait pouvoir utiliser un autre
@@ -104,6 +109,9 @@ d’un travail déjà existant.
 
 ## Objectifs
 
+Les objectifs du projet, tirés de l´énoncé de ce dernier
+, sont les suivants:
+
 - Etude du travail existant.
 - Mise en place d’un déploiement automatisé et reproductible du travail
   existant.
@@ -208,16 +216,19 @@ projet _Bootiful_. Il permet aux postes clients de lancer un mini
 système d'exploitation via <abbr title="Pre-boot eXecution Environment: environnement d’exécution pré-démarrage ">PXE</abbr> au démarrage de la machine. Ce
 mini-système permet de télécharger et déployer des images de système
 d'exploitation sur la machine, tout en créant une copie en cache à la
-fin du disque pour éviter de la télécharger plusieurs fois.
+fin du disque pour éviter de la télécharger plusieurs fois
+.
 
 La première version, nommée _BpBatch_ fut distribuée gratuitement sur
 internet. Une entreprise nommée _Rembo Technology Sàrl_ a ensuite été
-fondée en 1999 pour continuer un développement commercial de ce projet
-sous le nom de _Rembo_. En 2006, la société a été rachetée par IBM et le
-projet a été intégré à leur solution _Tivoli Provisionning Manager_.
+fondée en 1999  pour continuer un
+développement commercial de ce projet sous le nom de _Rembo_. En 2006,
+la société a été rachetée par IBM  et le
+projet a été intégré à leur solution _Tivoli Provisionning Manager_
+.
 
-Ce système réponde aux besoins de <abbr title="Haute école du paysage, d’ingénierie et d’architecture de Genève ">HEPIA</abbr>, et il a même déjà
-été utilisé au sein de l'institution par le passé. Il a cependant été
+Ce système répond aux besoins de <abbr title="Haute école du paysage, d’ingénierie et d’architecture de Genève ">HEPIA</abbr>, et il a même déjà été
+utilisé au sein de l'institution par le passé. Il a cependant été
 abandonné à cause de sa licence devenue très couteuse et de sa
 complexité devenue trop grande pour les besoins simple de l'école.
 
@@ -230,6 +241,7 @@ intéressante.
 <abbr title="Free Open-source Ghost ">FOG</abbr> est une solution open-source gratuite permettant de
 déployer des images de systèmes d'exploitation sur des postes clients.
 
+
 Elle fonctionne avec une architecture client-serveur. Le serveur est
 accédé par une interface web, où un administrateur peut gérer ses images
 et les déployer sur des clients qui démarrent un logiciel de déploiement
@@ -254,7 +266,7 @@ nouveau depuis le serveur, ce qui peut prendre beaucoup de temps et doit
 ### Clonezilla
 
 _Clonezilla_ est une solution open-source et gratuite de création et de
-restauration d'images.
+restauration d'images. 
 
 Cet outil peut être utilisé de deux manières:
 
@@ -289,10 +301,11 @@ déploiement. Cette possibilité sera étudiée plus tard dans ce document.
 # Architecture initiale du projet
 
 Le projet _Bootiful_ n'a pas été initié dans le cadre de ce travail de
-bachelor: une implémentation basique avait déjà été réalisée afin de
-prouver que l'idée fonctionne. Cette version initiale a été créée par
-Abhilash Venkatesh, un étudiant indien qui est venu à <abbr title="Haute école du paysage, d’ingénierie et d’architecture de Genève ">HEPIA</abbr>
-effectuer un stage pendant la période de mai à juillet 2019.
+bachelor: une implémentation basique 
+avait déjà été réalisée afin de prouver que l'idée fonctionne. Cette
+version initiale a été créée par Abhilash Venkatesh, un étudiant indien
+qui est venu à <abbr title="Haute école du paysage, d’ingénierie et d’architecture de Genève ">HEPIA</abbr> effectuer un stage pendant la période de
+mai à juillet 2019.
 
 Les premières étapes de ce travail diplôme ont été de reproduire le
 système réalisé dans le projet initial afin de valider son
@@ -2137,7 +2150,7 @@ suivis les quatre années précédentes, dont en particulier les cours de
 programmation des systèmes (_sIT_242_), systèmes d'exploitation
 (_sIT_244_), réseaux et protocoles informatiques (sIT_362), réseaux
 avancés (_sIT_384_), programmation avancée des systèmes (_sIT_632_) et
-virtualisation des <abbr title=" ">SI</abbr> (_sIT_632_).
+virtualisation des <abbr title="Système d’Information ">SI</abbr> (_sIT_632_).
 
 
 
diff --git a/doc/rapport.pdf b/doc/rapport.pdf
index 63c0b86d133ed20c40fba24a10b7ec7ee8ca9fbb..3c14f1fd62f75188d65774567252da9bc0efde8b 100644
GIT binary patch
delta 128910
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

delta 124618
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
Y&C`E(%F6Q?nH!oLbE&Gj`nz!f0L|3ek^lez

diff --git a/doc/rapport.tex b/doc/rapport.tex
index e51283e..19a3c6b 100644
--- a/doc/rapport.tex
+++ b/doc/rapport.tex
@@ -18,6 +18,7 @@
   \usepackage{unicode-math}
   \defaultfontfeatures{Scale=MatchLowercase}
   \defaultfontfeatures[\rmfamily]{Ligatures=TeX,Scale=1}
+  \setmonofont[]{JetBrains Mono}
 \fi
 % Use upquote if available, for straight quotes in verbatim environments
 \IfFileExists{upquote.sty}{\usepackage{upquote}}{}
@@ -39,14 +40,14 @@
 \IfFileExists{xurl.sty}{\usepackage{xurl}}{} % add URL line breaks if available
 \IfFileExists{bookmark.sty}{\usepackage{bookmark}}{\usepackage{hyperref}}
 \hypersetup{
-  pdftitle={Bootiful Déploiement d'OS à choix durant le processus de boot},
+  pdftitle={Bootiful},
   pdfauthor={Dimitri Lizzi},
   pdflang={fr-CH},
   pdfkeywords={Bachelor, HEPIA, HESSO, Bootiful},
   hidelinks,
   pdfcreator={LaTeX via pandoc}}
 \urlstyle{same} % disable monospaced font for URLs
-\usepackage[margin=2.5cm,includefoot,includehead]{geometry}
+\usepackage[includeheadfoot,margin=2.5cm]{geometry}
 \usepackage{color}
 \usepackage{fancyvrb}
 \newcommand{\VerbBar}{|}
@@ -117,7 +118,7 @@
 \usepackage{float}
 \usepackage{lastpage}
 \usepackage{fvextra}
-\DefineVerbatimEnvironment{Highlighting}{Verbatim}{frame=single,breaklines,commandchars=\\\{\}}
+\DefineVerbatimEnvironment{Highlighting}{Verbatim}{frame=single,breaklines,commandchars=\\\{\},fontsize=\footnotesize}
 
 \pagestyle{fancy}
 \setlength{\headheight}{14pt}
@@ -129,7 +130,6 @@
 \fancyhead[CO,CE]{Déploiement d'OS à choix durant le processus de boot}
 \fancyhead[RO,RE]{Dimitri Lizzi}
 \fancyfoot[LO,LE]{août 2020}
-
 \fancyfoot[CO,CE]{}
 \fancyfoot[RE,RO]{\thepage /\pageref{LastPage}}
 
@@ -137,6 +137,7 @@
 
 \setlength{\parindent}{0pt}
 \setlength{\parskip}{9pt}
+\setlength{\beforechapskip}{-10pt}
 
 \OnehalfSpacing
 \ifxetex
@@ -146,9 +147,20 @@
 \else
   \usepackage[shorthands=off,main=french]{babel}
 \fi
+\newlength{\cslhangindent}
+\setlength{\cslhangindent}{1.5em}
+\newenvironment{cslreferences}%
+  {}%
+  {\par}
 
-\title{Bootiful\\
-Déploiement d'OS à choix durant le processus de boot}
+\title{Bootiful}
+\usepackage{etoolbox}
+\makeatletter
+\providecommand{\subtitle}[1]{% add subtitle to \maketitle
+  \apptocmd{\@title}{\par {\large #1 \par}}{}{}
+}
+\makeatother
+\subtitle{Déploiement d'OS à choix durant le processus de boot}
 \author{Dimitri Lizzi}
 \date{Août 2020}
 
@@ -158,37 +170,36 @@ Déploiement d'OS à choix durant le processus de boot}
 \renewcommand*\listtablename{Liste des tableaux}
 % Sets the page numbering style to roman
 %\pagestyle{headings}
-\setcounter{page}{1}
-\pagenumbering{roman}
+%\setcounter{page}{1}
+%\pagenumbering{roman}
 
 % Hides the page number for the cover page
 \thispagestyle{empty}
+\addtolength{\voffset}{-5pt}
 % Hides the header for the cover page
 % Cover page
 \begin{figure}
+    \vspace*{-5cm}
     \begin{sffamily}
         \begin{minipage}{.4\textwidth}
             \centering
-            \hspace*{-3cm}\includegraphics[height=2cm,bb=0 0 278.9 70.92]{images/logo_hepia.svg}
+            \hspace*{-3cm}\includegraphics[height=1.25cm]{images/logo_hepia.pdf}
         \end{minipage}\qquad
         \begin{minipage}{.4\textwidth}
             \centering
-            \hspace*{5cm}\includegraphics[scale=1]{images/hes.png}
+            \hspace*{5cm}\includegraphics[height=1.25cm]{images/logo-hesso-geneve.pdf}
         \end{minipage}
     \end{sffamily}
 \end{figure}
 
 \begin{center}
-    \huge{Bootiful\\
-Déploiement d'OS à choix durant le processus de boot}\\
-    \vspace{.5cm}
-    \IfFileExists{images/front-logo.png}{
-      \includegraphics[width=8cm,height=5cm]{images/front-logo.png}\\
-    }{
-      \vspace{5cm}
-    }
-
+    \vspace{1.5cm}
+    \includegraphics[height=5cm]{images/bootiful_logo_final.pdf}\\
     \vspace{5mm}
+
+    \huge{Déploiement d'OS à choix durant le processus de boot}\\
+    \vspace{2cm}
+
     \large{Thèse de Bachelor présentée par}\\
     \vspace{5mm}
     \textbf{\Large{Dimitri Lizzi}}\\
@@ -196,12 +207,12 @@ Déploiement d'OS à choix durant le processus de boot}\\
 
     \large{pour l’obtention du titre Bachelor of Science HES-SO en}\\
     \vspace{5mm}
-    \textbf{\Large{Ingénierie des technologies de l’information avec orientation en \\logiciels
+    \textbf{\Large{Ingénierie des technologies de l’information \\avec orientation en \\logiciels
 et systèmes complexes}}
 
     \vspace{5mm}
     \textbf{Août 2020\\}
-    \vspace{5mm}
+    \vspace{8mm}
     \begin{tabular}{ p{6cm} }
       \multicolumn{1}{c}{Professeur-e HES responsable}\\
       \multicolumn{1}{c}{\textbf{Florent Glück}}\\
@@ -213,123 +224,96 @@ et systèmes complexes}}
 \tableofcontents
 \newpage
 
+\chapter*{Remerciements}
+\addcontentsline{toc}{chapter}{Remerciements}
+
+\textbf{TODO: remerciements}
+
+\addcontentsline{toc}{chapter}{Résumé}
+\includepdf{abstract.pdf}
+
+\addcontentsline{toc}{chapter}{Énoncé}
+\includepdf{statement.pdf}
+
 \chapter*{Liste des acronymes}
 \addcontentsline{toc}{chapter}{Liste des acronymes}
 
 \begin{description}
-\item[EFI \protect\hypertarget{acronym__EFI}{}{}]
-\emph{Extensible Firmware Interface}: interface micrologicielle
-extensible unifiée
+\tightlist
 \item[BIOS \protect\hypertarget{acronym__BIOS}{}{}]
 \emph{Basic Input Output System}: système de base d'entrée sortie
-\item[FTP \protect\hypertarget{acronym__FTP}{}{}]
-\emph{File Transfer Protocol}: protocole de transfert de fichier
 \item[DHCP \protect\hypertarget{acronym__DHCP}{}{}]
 \emph{Dynamic Host Configuration Protocol}: protocole de configuration
 dynamique des hôtes
-\item[GPT \protect\hypertarget{acronym__GPT}{}{}]
-\emph{GUID Partition Table}: table de partitionnement GUID
-\item[GRUB \protect\hypertarget{acronym__GRUB}{}{}]
-\emph{GRand Unified Bootloader} EFI
-\protect\hypertarget{acronym__EFI}{}{}
-
+\item[EFI \protect\hypertarget{acronym__EFI}{}{}]
 \emph{Extensible Firmware Interface}: interface micrologicielle
 extensible unifiée
-\end{description}
-
-FTP \protect\hypertarget{acronym__FTP}{}{} HEPIA
-\protect\hypertarget{acronym__HEPIA}{}{} \textasciitilde{} \emph{File
-Transfer Protocol}: protocole de transfert de fichier \textasciitilde{}
-Haute école du paysage, d'ingénierie et d'architecture de Genève
-
-\begin{description}
-\tightlist
+\item[ESP \protect\hypertarget{acronym__ESP}{}{}]
+\emph{EFI System Partition}: partition système EFI
+\item[FOG \protect\hypertarget{acronym__FOG}{}{}]
+\emph{Free Open-source Ghost}
+\item[FTP \protect\hypertarget{acronym__FTP}{}{}]
+\emph{File Transfer Protocol}: protocole de transfert de fichier
 \item[GPT \protect\hypertarget{acronym__GPT}{}{}]
 \emph{GUID Partition Table}: table de partitionnement GUID
-\item[HTTPS \protect\hypertarget{acronym__HTTPS}{}{}]
-\emph{HyperText Transfer Protocol Secure}: protocole de transfert
-hypertexte sécurisé
 \item[GRUB \protect\hypertarget{acronym__GRUB}{}{}]
 \emph{GRand Unified Bootloader}
-\item[HTTP \protect\hypertarget{acronym__HTTP}{}{}]
-\emph{HyperText Transfer Protocol}: protocole de transfert hypertexte
 \item[HEPIA \protect\hypertarget{acronym__HEPIA}{}{}]
 Haute école du paysage, d'ingénierie et d'architecture de Genève
-\item[IPFS \protect\hypertarget{acronym__IPFS}{}{}]
-\emph{InterPlanetary File System}: système de fichier inter-planétaire
 \item[HTTPS \protect\hypertarget{acronym__HTTPS}{}{}]
 \emph{HyperText Transfer Protocol Secure}: protocole de transfert
 hypertexte sécurisé
-\item[IP \protect\hypertarget{acronym__IP}{}{}]
-\emph{Internet Protocol}: protocole internet
 \item[HTTP \protect\hypertarget{acronym__HTTP}{}{}]
 \emph{HyperText Transfer Protocol}: protocole de transfert hypertexte
-\item[LDAP \protect\hypertarget{acronym__LDAP}{}{}]
-\emph{Lightweight Directory Access Protocol}: protocole léger d'accès à
-un annuaire
+\item[IBM \protect\hypertarget{acronym__IBM}{}{}]
+\emph{International Business Machines corporation}
 \item[IPFS \protect\hypertarget{acronym__IPFS}{}{}]
 \emph{InterPlanetary File System}: système de fichier inter-planétaire
-\item[MBR \protect\hypertarget{acronym__MBR}{}{}]
-\emph{Master Boot Record}: enregistrement d'amorcage maître
 \item[IP \protect\hypertarget{acronym__IP}{}{}]
 \emph{Internet Protocol}: protocole internet
-\item[NAT \protect\hypertarget{acronym__NAT}{}{}]
-\emph{Network Address Translation}: traduction d'adresse réseau
 \item[LDAP \protect\hypertarget{acronym__LDAP}{}{}]
 \emph{Lightweight Directory Access Protocol}: protocole léger d'accès à
 un annuaire
-\item[NFS \protect\hypertarget{acronym__NFS}{}{}]
-\emph{Network File System}: système de fichiers en réseau
+\item[MAC \protect\hypertarget{acronym__MAC}{}{}]
+\emph{Media Access Control (address)}: adresse physique
 \item[MBR \protect\hypertarget{acronym__MBR}{}{}]
 \emph{Master Boot Record}: enregistrement d'amorcage maître
-\item[OS \protect\hypertarget{acronym__OS}{}{}]
-\emph{Operating System}: système d'exploitation
 \item[NAT \protect\hypertarget{acronym__NAT}{}{}]
 \emph{Network Address Translation}: traduction d'adresse réseau
-\item[PC \protect\hypertarget{acronym__PC}{}{}]
-\emph{Personal Computer}: ordinateur personnel
 \item[NFS \protect\hypertarget{acronym__NFS}{}{}]
 \emph{Network File System}: système de fichiers en réseau
+\item[NVRAM \protect\hypertarget{acronym__NVRAM}{}{}]
+\emph{Non-Volatile Random Access Memory}: mémoire vive non volatile
+\item[OS \protect\hypertarget{acronym__OS}{}{}]
+\emph{Operating System}: système d'exploitation
+\item[PC \protect\hypertarget{acronym__PC}{}{}]
+\emph{Personal Computer}: ordinateur personnel
 \item[PXE \protect\hypertarget{acronym__PXE}{}{}]
 \emph{Pre-boot eXecution Environment}: environnement d'exécution
 pré-démarrage
-\item[OS \protect\hypertarget{acronym__OS}{}{}]
-\emph{Operating System}: système d'exploitation
 \item[SCP \protect\hypertarget{acronym__SCP}{}{}]
 \emph{Secure CoPy}: protocole de copie sécurisée sur le réseau
-\item[PC \protect\hypertarget{acronym__PC}{}{}]
-\emph{Personal Computer}: ordinateur personnel
+\item[SI \protect\hypertarget{acronym__SI}{}{}]
+Système d'Information
 \item[SMB \protect\hypertarget{acronym__SMB}{}{}]
 \emph{Server Message Block}
 \item[SSH \protect\hypertarget{acronym__SSH}{}{}]
 \emph{Secure SHell}: protocole de terminal à distance securisé
-\item[PXE \protect\hypertarget{acronym__PXE}{}{}]
-\emph{Pre-boot eXecution Environment}: environnement d'exécution
-pré-démarrage
-\end{description}
-
-SCP \protect\hypertarget{acronym__SCP}{}{} TFTP
-\protect\hypertarget{acronym__TFTP}{}{} \textasciitilde{} \emph{Secure
-CoPy}: protocole de copie sécurisée sur le réseau \textasciitilde{}
+\item[TFTP \protect\hypertarget{acronym__TFTP}{}{}]
 \emph{Trivial File Transfer Protocol}: protocole simplifié de transfert
 de fichiers
-
-\begin{description}
 \item[UEFI \protect\hypertarget{acronym__UEFI}{}{}]
 \emph{Unified Extensible Firmware Interface}: interface micrologicielle
-extensible unifiée SMB \protect\hypertarget{acronym__SMB}{}{}
-
-\emph{Server Message Block}
+extensible unifiée
+\item[WWW \protect\hypertarget{acronym__WWW}{}{}]
+\emph{World Wide Web}: toile mondiale / réseau mondial
 \end{description}
 
-WWW \protect\hypertarget{acronym__WWW}{}{} SSH
-\protect\hypertarget{acronym__SSH}{}{} \textasciitilde{} \emph{World
-Wide Web}: toile mondiale / réseau mondial \textasciitilde{}
-\emph{Secure SHell}: protocole de terminal à distance securisé
-
 \newpage
+
 \listoffigures
 \newpage
+
 \listoftables
 
 \hypertarget{introduction}{%
@@ -402,22 +386,99 @@ ce base sur une ébauche d'un travail déjà existant.
   dans le cas de nombreux téléchargements effectués en parallèle.
 \end{itemize}
 
-\hypertarget{muxe9thodologie-de-travail}{%
-\section{Méthodologie de travail}\label{muxe9thodologie-de-travail}}
+\hypertarget{duxe9roulement}{%
+\section{Déroulement}\label{duxe9roulement}}
 
-\textbf{TODO: Expliquer comment le travail a été planifié, les meetings
-hebdomadaires, les outils à disposition, le fait de travailler à
-distance dans un contexte ``cours du soir''}
+Ce projet n'a pas n'a pas été réalisé dans les locaux
+d'\protect\hyperlink{acronym__HEPIA}{HEPIA} mais à distance, depuis la
+maison, en partie à cause de la situation sanitaire due au COVID-19 mais
+aussi parce qu'il est effectué dans le cadre d'un bachelor en cours du
+soir, en parallèle à une activité professionnelle à 80\%.
 
-\hypertarget{cas-dutilisation}{%
-\chapter{Cas d'utilisation}\label{cas-dutilisation}}
+Des rendez-vous hebdomadaires avec le professeur responsable Florent
+Glück ainsi que l'assistant Sébastien Chassot ont été organisés tous les
+mercredis, afin d'assurer un suivi du projet.
+
+\hypertarget{matuxe9riel-uxe0-disposition}{%
+\section{Matériel à disposition}\label{matuxe9riel-uxe0-disposition}}
+
+Deux mini-ordinateurs ont étés prêtés par
+\protect\hyperlink{acronym__HEPIA}{HEPIA} pour la durée du projet, afin
+d'effectuer des tests sur du matériel réel. Les spécifications de ces
+ordinateurs sont définies dans la table \ref{mini_pc_specs}.
+
+\begin{longtable}[]{@{}ll@{}}
+\caption{Spécifications techniques des ordinateurs mis à disposition
+\label{mini_pc_specs}}\tabularnewline
+\toprule
+\begin{minipage}[b]{0.19\columnwidth}\raggedright
+Caractéristique\strut
+\end{minipage} & \begin{minipage}[b]{0.75\columnwidth}\raggedright
+Description\strut
+\end{minipage}\tabularnewline
+\midrule
+\endfirsthead
+\toprule
+\begin{minipage}[b]{0.19\columnwidth}\raggedright
+Caractéristique\strut
+\end{minipage} & \begin{minipage}[b]{0.75\columnwidth}\raggedright
+Description\strut
+\end{minipage}\tabularnewline
+\midrule
+\endhead
+\begin{minipage}[t]{0.19\columnwidth}\raggedright
+Constructeur\strut
+\end{minipage} & \begin{minipage}[t]{0.75\columnwidth}\raggedright
+\emph{DELL}\strut
+\end{minipage}\tabularnewline
+\begin{minipage}[t]{0.19\columnwidth}\raggedright
+Modèle\strut
+\end{minipage} & \begin{minipage}[t]{0.75\columnwidth}\raggedright
+\emph{Optiplex 7060 micro}\strut
+\end{minipage}\tabularnewline
+\begin{minipage}[t]{0.19\columnwidth}\raggedright
+Processeur\strut
+\end{minipage} & \begin{minipage}[t]{0.75\columnwidth}\raggedright
+\emph{Intel® Core™ i7-8700 3.20GHz}\strut
+\end{minipage}\tabularnewline
+\begin{minipage}[t]{0.19\columnwidth}\raggedright
+Mémoire vive\strut
+\end{minipage} & \begin{minipage}[t]{0.75\columnwidth}\raggedright
+8 GiB (2 barettes 4GiB \emph{SODIMM DDR4 Synchronous} 2666 MHz (0.4
+ns))\strut
+\end{minipage}\tabularnewline
+\begin{minipage}[t]{0.19\columnwidth}\raggedright
+Disque\strut
+\end{minipage} & \begin{minipage}[t]{0.75\columnwidth}\raggedright
+\emph{TOSHIBA KSG60ZMV} SSD 476GiB (512GB)\strut
+\end{minipage}\tabularnewline
+\begin{minipage}[t]{0.19\columnwidth}\raggedright
+Réseau\strut
+\end{minipage} & \begin{minipage}[t]{0.75\columnwidth}\raggedright
+\emph{Intel e1000e Gigabit Ethernet}\strut
+\end{minipage}\tabularnewline
+\bottomrule
+\end{longtable}
+
+\hypertarget{muxe9thodologie}{%
+\section{Méthodologie}\label{muxe9thodologie}}
+
+Le travail a été découpé en plusieurs parties, dont la durée a été
+estimée en semaines de travail. Un planning a été effectué sous la forme
+d'un diagramme de Gantt. Ce diagramme est visible dans la figure
+\ref{planning_gantt}.
+
+\begin{figure}
+\centering
+\includegraphics{images/planning.pdf}
+\caption{Diagramme de Gantt du planning\label{planning_gantt}}
+\end{figure}
 
-\textbf{TODO: décrire les cas d'utilisation du projet à l'aide d'un
-diagramme de use cases qui montre les inter-actions possibles entre les
-différentes entités du sytème que sont les utilsateurs, administrateurs,
-les postes clients, le serveur, les images, les configurations. Le
-diagramme doit décrire les aspects fonctionnels du système (quoi) sans
-détailler les aspects techniques (comment).}
+\hypertarget{analyse}{%
+\section{Analyse}\label{analyse}}
+
+\hypertarget{cas-dutilisation}{%
+\section{Cas d'utilisation}\label{cas-dutilisation}}
 
 L'aspect fonctionnel du système à réaliser est décrit avec un diagramme
 de cas d'utilisations dans la figure \ref{diagram_usecases}.
@@ -429,8 +490,9 @@ de cas d'utilisations dans la figure \ref{diagram_usecases}.
 système.\label{diagram_usecases}}
 \end{figure}
 
-\hypertarget{uxe9tat-de-lart}{%
-\chapter{État de l'art}\label{uxe9tat-de-lart}}
+\hypertarget{uxe9tude-des-solutions-existantes}{%
+\section{Étude des solutions
+existantes}\label{uxe9tude-des-solutions-existantes}}
 
 De nombreux systèmes de déploiement
 d'\protect\hyperlink{acronym__OS}{OS} existent, mais aucun d'entre eux
@@ -441,53 +503,120 @@ Les sous-sections qui suivent décrivent quelques-uns de ces systèmes,
 leurs points forts et points faibles et pourquoi ils ne sont pas adaptés
 tels-quel pour ce projet.
 
-\hypertarget{ibm-tivoli-rembo}{%
-\section{IBM Tivoli / Rembo}\label{ibm-tivoli-rembo}}
-
-\textbf{TODO: expliquer que ce projet se rapproche le plus des objectifs
-du projet, qu'il a été développé initialement à l'université de Genève
-et a été utilisé à HEPIA par le passé avec succès. Expliquer le rachat
-par IBM et la problématique de la licence couteuse. Introduire l'intérêt
-d'une solution open source pour ne pas retomber dans le meme schéma.}
-
-\hypertarget{fog}{%
-\section{Fog}\label{fog}}
-
-\textbf{TODO: expliquer le fonctionnement et les cas d'utilisation de
-fog, l'utilisation actuelle de ce système dans l'école, de ses
-limitations et pourquoi il ne permet pas de répondre aux objectifs de ce
-projet.}
+\hypertarget{bpbatch-rembo-ibm-tivoli}{%
+\subsection{\texorpdfstring{BpBatch / Rembo /
+\protect\hyperlink{acronym__IBM}{IBM}
+Tivoli}{BpBatch / Rembo / IBM Tivoli}}\label{bpbatch-rembo-ibm-tivoli}}
+
+Ce système est l'inspiration directe de ce projet. Son développement a
+commencé en 1996 au département informatique de l'université de Genève
+par Marc Vuilleumier Stückelberg et David Clerc.
+
+Les fonctionnalités de ce projet sont similaires à celles visée par le
+projet \emph{Bootiful}. Il permet aux postes clients de lancer un mini
+système d'exploitation via \protect\hyperlink{acronym__PXE}{PXE} au
+démarrage de la machine. Ce mini-système permet de télécharger et
+déployer des images de système d'exploitation sur la machine, tout en
+créant une copie en cache à la fin du disque pour éviter de la
+télécharger plusieurs fois.
+
+La première version, nommée \emph{BpBatch} fut distribuée gratuitement
+sur internet. Une entreprise nommée \emph{Rembo Technology Sàrl} a
+ensuite été fondée en 1999 pour continuer un développement commercial de
+ce projet sous le nom de \emph{Rembo}. En 2006, la société a été
+rachetée par IBM et le projet a été intégré à leur solution \emph{Tivoli
+Provisionning Manager}.
+
+Ce système réponde aux besoins de
+\protect\hyperlink{acronym__HEPIA}{HEPIA}, et il a même déjà été utilisé
+au sein de l'institution par le passé. Il a cependant été abandonné à
+cause de sa licence devenue très couteuse et de sa complexité devenue
+trop grande pour les besoins simple de l'école.
+
+Le développement d'une solution alternative \emph{open-source} plus
+simple et se basant sur des briques logicielles existantes serait donc
+très intéressante.
+
+\hypertarget{fog-project}{%
+\subsection{\texorpdfstring{\protect\hyperlink{acronym__FOG}{FOG}
+project}{FOG project}}\label{fog-project}}
+
+\protect\hyperlink{acronym__FOG}{FOG} est une solution open-source
+gratuite permettant de déployer des images de systèmes d'exploitation
+sur des postes clients.
+
+Elle fonctionne avec une architecture client-serveur. Le serveur est
+accédé par une interface web, où un administrateur peut gérer ses images
+et les déployer sur des clients qui démarrent un logiciel de déploiement
+avec \protect\hyperlink{acronym__PXE}{PXE}.
+
+Cette solution est utilisées dans certaines classes à
+\protect\hyperlink{acronym__HEPIA}{HEPIA} pour déployer des images sur
+certains postes, notemment pour les travaux de laboratoire de réseau.
+
+Malheureusement, ce système ne répond pas exactement au cahier des
+charges de ce projet: il est plutôt conçu pour ``pousser'' des images
+sur des clients, depuis le serveur, après une initiation du déploiement
+par un administrateur. Nous souhaitons plutôt un système ne nécessitant
+pas d'intervention d'un administrateur pour initier un déploiement.
+
+De plus,\protect\hyperlink{acronym__FOG}{FOG} ne dispose pas de
+mécanisme de cache sur les clients permettant de ne pas télécharger les
+images plusieurs fois. À chaque fois qu'un image doit être déployée,
+elle doit être téléchargée à nouveau depuis le serveur, ce qui peut
+prendre beaucoup de temps et doit être planifié à l'avance.
 
 \hypertarget{clonezilla}{%
-\section{Clonezilla}\label{clonezilla}}
-
-\textbf{TODO: expliquer le fonctionnement, les cas d'utilisation le
-contexte. Parler de l'outil partclone et de ses avantages. Expliquer
-pourquoi il n'est pas adapté tel quel, mais aussi pourquoi il est
-intéressant de réutiliser certaines parties.}
+\subsection{Clonezilla}\label{clonezilla}}
 
-\hypertarget{ghost}{%
-\section{Ghost}\label{ghost}}
+\emph{Clonezilla} est une solution open-source et gratuite de création
+et de restauration d'images.
 
-\textbf{TODO: expliquer le fonctionnement et mettre en parallèle à fog
-et clonezilla et souligner les problématiques d'une solution commerciale
-au lieu d'une solution open-source. }
+Cet outil peut être utilisé de deux manières:
 
-\hypertarget{acronis-trueimage}{%
-\section{Acronis TrueImage}\label{acronis-trueimage}}
+\begin{itemize}
+\tightlist
+\item
+  En faisant démarrer les clients sur le réseau. Ils chargent un petit
+  système d'exploitation de déploiement depuis un un serveur
+  \protect\hyperlink{acronym__PXE}{PXE}. Ils peuvent ensuite initier le
+  déploiement ou la restauration d'une image depuis/vers ce serveur.
+\item
+  En faisant démarrer les clients sur un CD ou une clé USB. Ils peuvent
+  ensuite initier le déploiement ou la restauration d'une image
+  d'\protect\hyperlink{acronym__OS}{OS} depuis/vers sur un autre disque
+  ou un serveur distant.
+\end{itemize}
 
-\textbf{TODO: expliquer le fonctionnement et mettre en parallèle à fog
-et clonezilla et souligner les problématiques d'une solution commerciale
-au lieu d'une solution open-source. }
+Un avantage de \emph{Clonezilla} est le format utilisé pour la
+sauvegarde des images. L'outil \emph{Partclone}, développé par la même
+équipe, est utilisé. Il permet de créer des images de partitions en ne
+copiant que les blocs utilisés dans le système de fichiers. Les parties
+non utilisées de la partition ne sont pas comprises dans l'image créée,
+ce qui permet de réduire sa taille et d'accélérer le processus de
+sauvegarde et de restauration.
+
+Malheureusement, comme pour \protect\hyperlink{acronym__FOG}{FOG},
+\emph{Clonezilla} ne dispose pas de mécanisme de cache sur les clients
+permettant de ne pas télécharger les images depuis un serveur distant
+plusieurs fois. À chaque fois qu'un image doit être déployée, elle doit
+être téléchargée à nouveau depuis le serveur, ce qui peut prendre
+beaucoup de temps et doit être planifié à l'avance.
+
+\emph{Clonezilla} ne peut donc pas être utilisé tel-quel. Cependant, il
+est possible de l'utiliser uniquement pour la création d'images et
+d'intégrer son mécanisme de restauration à un autre système de
+déploiement. Cette possibilité sera étudiée plus tard dans ce document.
 
 \hypertarget{architecture-initiale-du-projet}{%
 \chapter{Architecture initiale du
 projet}\label{architecture-initiale-du-projet}}
 
 Le projet \emph{Bootiful} n'a pas été initié dans le cadre de ce travail
-de bachelor: une implémentation basique avait déjà été réalisée afin de
-prouver que l'idée fonctionne. Cette version initiale a été créée par
-Abhilash Venkatesh, un étudiant indien qui est venu à
+de bachelor: une implémentation basique
+(\protect\hyperlink{ref-venkatesh_remote_imaging}{1}) avait déjà été
+réalisée afin de prouver que l'idée fonctionne. Cette version initiale a
+été créée par Abhilash Venkatesh, un étudiant indien qui est venu à
 \protect\hyperlink{acronym__HEPIA}{HEPIA} effectuer un stage pendant la
 période de mai à juillet 2019.
 
@@ -1759,16 +1888,17 @@ des images déployées et à la taille des images juste compressées avec
 \def\labelenumi{\arabic{enumi}.}
 \tightlist
 \item
-  Une petite image du système \emph{Debian}, comparée dans le tableau
-  \ref{table_image_sizes_debian} et la figure
-  \ref{chart_image_sizes_debian}
+  Une petite image (environ 3.2 GB) du système \emph{Debian}, dont les
+  tailles sont comparées dans le tableau \ref{table_image_sizes_debian}
+  et la figure \ref{chart_image_sizes_debian}
 \item
-  Une image moyenne du système \emph{Xubuntu}, comparée dans le tableau
-  \ref{table_image_sizes_xubuntu} et la figure
-  \ref{chart_image_sizes_xubuntu}
+  Une image moyenne (environ 200GB) du système \emph{Xubuntu}, dont les
+  tailles sont comparées dans le tableau \ref{table_image_sizes_xubuntu}
+  et la figure \ref{chart_image_sizes_xubuntu}
 \item
-  Une grande image du système \emph{Windows 10}, comparée dans le
-  tableau \ref{table_image_sizes_win10} et la figure
+  Une grande image (environ 512GB) du système \emph{Windows 10}, dont
+  les tailles sont comparées dans le tableau
+  \ref{table_image_sizes_win10} et la figure
   \ref{chart_image_sizes_win10}
 \end{enumerate}
 
@@ -2042,10 +2172,11 @@ possible depuis d'autres distributions Linux, un conteneur \emph{Docker}
 a été créé.
 
 Le processus de création du système décrit dans la section précédente a
-été automatisé et est décrit dans un fichier \texttt{Dockerfile}. La
-nouvelle fonctionnalité de Docker de construction en plusieurs
-``étages'' (\emph{multi-stage build}) a été utilisée. Trois ``étages''
-sont définis:
+été automatisé et est décrit dans un fichier \texttt{Dockerfile} (le
+code-souce de ce fichier peut être consulté dans la section
+\ref{deployer_dockerfile}). La fonctionnalité de Docker de construction
+en plusieurs ``étages'' (\emph{multi-stage build}) a été utilisée. Trois
+``étages'' sont définis:
 
 \begin{itemize}
 \tightlist
@@ -2101,41 +2232,493 @@ des deux derniers étages dans leurs dossiers respectifs:
   \protect\hyperlink{acronym__TFTP}{TFTP}.
 \end{itemize}
 
+\hypertarget{duxe9ploiement-dimage-windows}{%
+\section{Déploiement d'image
+Windows}\label{duxe9ploiement-dimage-windows}}
+
+Une image \emph{Windows 10} a été créée avec \emph{Clonezilla}, à partir
+du système présent par défaut sur les mini-pc DELL que l'école avait mis
+à disposition. Les PC étant neufs il s'agit du système d'exploitation
+par défaut installé pour le constructeur. L'image qui a été créée a déjà
+été mentionnée dans la section \emph{Réduction de la taille des images}.
+Elle a la particularité d'être très grande car elle prend l'espace
+entier du disque.
+
+Un problème a été rencontré lors du premier déploiement de l'image: le
+script de déploiement ne gérait pas une image qui est tellement grande
+qu'elle écrase la partition de cache et plantait. Une vérification a
+donc été rajoutée sur la taille de l'image. Quand une image va écraser
+la partition de cache, un message d'avertissement est affiché et
+l'utilisateur doit confirmer qu'il souhaite continuer. Si l'utilisateur
+accepte, le déploiment se fait sans mise en cache de l'image et la
+partition cachée de cache est détruite.
+
+Une fois ce système mis en place, le déploiement de l'image s'est
+déroulé sans problème particulier, et a confirmé que le déploiement
+d'une image \emph{Windows} est faisable avec ce système.
+
 \hypertarget{ruxe9duction-du-temps-de-duxe9ploiement-total}{%
 \section{Réduction du temps de déploiement
 total}\label{ruxe9duction-du-temps-de-duxe9ploiement-total}}
 
-\textbf{TODO: expliquer, détailler et comparer (tableaux, diagrammes)
-les différentes mesures qui ont montré que clonezilla est intéressant
-les images larges mais que dd est parfois plus performant pour de
-petites images.}
+Théoriquement, le déploiement d'images avec clonezilla devrait être plus
+court que le déploiement d'images \emph{raw}. Des mesures ont été
+effectuées avec les trois images dont les différences de taille ont déjà
+étudiées précédemment dans la section \emph{Réduction de la taille des
+images}:
 
-\hypertarget{duxe9ploiement-dimage-windows}{%
-\section{Déploiement d'image
-Windows}\label{duxe9ploiement-dimage-windows}}
+\begin{enumerate}
+\def\labelenumi{\arabic{enumi}.}
+\tightlist
+\item
+  Une petite image (environ 3.2 GB) du système \emph{Debian}, dont les
+  temps de déploiement sont comparés dans le tableau
+  \ref{table_deploy_time_debian} et la figure
+  \ref{chart_deploy_time_debian}
+\item
+  Une image moyenne (environ 200GB) du système \emph{Xubuntu}, dont les
+  temps de déploiement sont comparés dans le tableau
+  \ref{table_deploy_time_xubuntu} et la figure
+  \ref{chart_deploy_time_xubuntu}
+\item
+  Une grande image (environ 512GB) du système \emph{Windows 10}, dont
+  les temps de déploiement sont comparés dans le tableau
+  \ref{table_deploy_time_win10} et la figure
+  \ref{chart_deploy_time_win10}
+\end{enumerate}
+
+\clearpage
+
+\begin{longtable}[]{@{}ll@{}}
+\caption{Table des temps de déploiement d'une petite image \emph{Debian}
+dans plusieurs formats \label{table_deploy_time_debian}}\tabularnewline
+\toprule
+Type & Temps de déploiement (secondes)\tabularnewline
+\midrule
+\endfirsthead
+\toprule
+Type & Temps de déploiement (secondes)\tabularnewline
+\midrule
+\endhead
+Gzip (sans cache) & 14\tabularnewline
+Gzip (avec cache) & 13\tabularnewline
+Clonezilla (sans cache) & 39\tabularnewline
+Clonezilla (avec cache) & 39\tabularnewline
+\bottomrule
+\end{longtable}
+
+\begin{figure}
+\centering
+\includegraphics{charts/chart_deploy_time_debian.svg}
+\caption{Graphique des temps de déploiement d'une petite image
+\emph{Debian} dans plusieurs formats\label{chart_deploy_time_debian}}
+\end{figure}
+
+\clearpage
+
+\begin{longtable}[]{@{}ll@{}}
+\caption{Table des temps de déploiement d'une image \emph{Xubuntu}
+moyenne dans plusieurs formats
+\label{table_deploy_time_xubuntu}}\tabularnewline
+\toprule
+Type & Temps de déploiement (secondes)\tabularnewline
+\midrule
+\endfirsthead
+\toprule
+Type & Temps de déploiement (secondes)\tabularnewline
+\midrule
+\endhead
+Gzip (sans cache) & 623\tabularnewline
+Gzip (avec cache) & 630\tabularnewline
+Clonezilla (sans cache) & 109\tabularnewline
+Clonezilla (avec cache) & 85\tabularnewline
+\bottomrule
+\end{longtable}
+
+\begin{figure}
+\centering
+\includegraphics{charts/chart_deploy_time_xubuntu.svg}
+\caption{Graphique des temps de déploiement d'une image \emph{Xubuntu}
+moyenne dans plusieurs formats\label{chart_deploy_time_xubuntu}}
+\end{figure}
+
+\clearpage
+
+\begin{longtable}[]{@{}ll@{}}
+\caption{Table des temps de déploiement d'une grande image \emph{Windows
+10} dans plusieurs formats
+\label{table_deploy_time_win10}}\tabularnewline
+\toprule
+Type & Temps de déploiement (secondes)\tabularnewline
+\midrule
+\endfirsthead
+\toprule
+Type & Temps de déploiement (secondes)\tabularnewline
+\midrule
+\endhead
+Gzip (sans cache) & 3433\tabularnewline
+Clonezilla (sans cache) & 371\tabularnewline
+\bottomrule
+\end{longtable}
+
+\begin{figure}
+\centering
+\includegraphics{charts/chart_deploy_time_win10.svg}
+\caption{Graphique des temps de déploiement d'une grande image
+\emph{Windows 10} dans plusieurs formats\label{chart_deploy_time_win10}}
+\end{figure}
+
+\clearpage
+
+Ces mesures permettent de se rendre contre de plusieurs faits
+remarquables, qui ne sont pas forcément intuitifs.
+
+Sur des très petites images le déploiement au format \emph{raw}
+compressé avec \emph{gzip} est plus rapide que le déploiement avec
+\emph{Clonezilla}. Ceci peut s'expliquer par le fait que
+\emph{Clonezilla} prend du temps pour créer une table des partitions, un
+système de fichiers pour chacune de ces partitions et copie ensuite les
+blocs un à un sur chaque système de fichiers. Sur une grande image, ce
+mode de fonctionnement est ``rentable'' car il y a beaucoup de blocs qui
+n'auront pas à être copiés, alors qu'une image \emph{raw} devra passer
+du temps à copier les données de chacun de ces blocs. Sur une très
+petite image comme l'image \emph{Debian} mesurée ici, presque tous les
+blocs du système de fichiers sont déjà utilisés, donc la copie brute des
+données des partitions est plus rapide car tout le temps est passé à
+copier les données.
+
+Sur les plus grosses images, cependant, \emph{Clonezilla} a clairement
+l'avantage, car de nombreux blocs vides n'ont pas besoin d'être copiés.
+Ainsi, avec les images plus larges utilisées dans les mesures, le temps
+de déploiement des images plus larges au format \emph{raw} prend environ
+5 à 9 fois plus de temps que le temps de déploiement avec
+\emph{Clonezilla}.
+
+Un autre fait remarquable est que le déploiement d'une image \emph{raw}
+déjà mise en cache prend plus de temps que le déploiement avec une copie
+simultanée dans le cache. Cela s'explique peut être par le fait que dans
+le premier cas, des données doivent être lues depuis le disque et
+écrites sur le même disque, tandis que dans le second cas, seule de
+l'écriture est effectuée.
+
+Par contre, dans le cas des images \emph{Clonezilla}, le déploiement
+d'une image déjà présente en cache s'effectue plus rapidement que le
+déploiement d'une image présente en cache. C'est l'inverse de ce qui se
+passe avec les images \emph{raw}. Cela s'explique par le fait que les
+images \emph{Clonezilla} sont copiées avant d'être déployées, alors que
+les images \emph{raw} sont copiées et déployées simultanément.
+
+Il est important de se rappeller que les mesures montrées ici sont
+effectuées dans des circonstances idéales: il n'y a qu'un seul client
+qui télécharge l'image, seul un switch réseau sépare le client du
+serveur et le client et le serveur sont les appareils connectés à ce
+réseau local. Dans des conditions réelles, plusieurs machines seront
+fréquemment en train de télécharger des images depuis le serveur en même
+temps. Dans ce cas, le temps de déploiement d'une image non présente en
+cache risque de prendre beaucoup plus de temps. Au contraire, le
+déploiement d'une image déjà mise en cache devrait théoriquement prendre
+le même temps que dans ces circonstances idéales.
 
 \hypertarget{amuxe9lioration-des-scripts-de-duxe9ploiement}{%
 \section{Amélioration des scripts de
 déploiement}\label{amuxe9lioration-des-scripts-de-duxe9ploiement}}
 
-\textbf{TODO: Expliquer les problèmes rencontrés avec les scripts de
-déploiement initiaux et les nombreuses améliorations apportées par leur
-ré-écriture\\
-quasi-complète (gestion des erreurs, stack traces, amélioration des
-logs, gestion des images plus grandes que le cache, mesure des timings,
-scripts utilitaires de maintenance, possibilité d'utiliser clonezilla,
-détection du point d'entrée EFI).}
+De très nombreuses améliorations ont été apportées aux scripts de
+déploiement, au point qu'ils sont presque complètement différents des
+scripts initiaux.
+
+\hypertarget{gestion-des-erreurs}{%
+\subsection{Gestion des erreurs}\label{gestion-des-erreurs}}
+
+Premièrement, la gestion des erreurs, inexistante dans le script initial
+a été rajoutée. Les codes de retour des commandes sont vérifiés et les
+données récupérées depuis la sortie de ces commandes sont validées avant
+utilisation. Si un code de retour ou une donnée récupérée n'est pas au
+format attendu, une fonction spéciale \texttt{fatal\_error} est appelée
+avec comme argument un message d'erreur adapté à la situation. Cette
+fonction va afficher le message d'erreur, ainsi qu'une trace de la pile
+des appels (\emph{stack trace} en anglais). Cette trace permet
+d'identifier précisément à quelle ligne de quel fonction et dans quel
+fichier une erreur a eu lieu.
+
+Finalement, le script de déploiement \texttt{bootiful-deploy} sera
+quitté avec un code d'erreur, ce qui permet au script parent,
+\texttt{bootiful-init}, de détecter qu'une erreur a eu lieu et de
+proposer à l'utilisateur quelle action il souhaite effectuer parmi les
+choix suivants:
+
+\begin{itemize}
+\tightlist
+\item
+  Recommencer le déploiement
+\item
+  Redémarrer la machine
+\item
+  Éteindre la machine
+\item
+  Ouvrir un \emph{shell} interactif (\texttt{/bin/bash}) pour étudier la
+  cause de l'erreur. Une fois le \emph{shell} terminé, l'utilisateur
+  peut à nouveau choisir ce qu'il souhaite faire.
+\end{itemize}
+
+Le mécanisme de gestion d'erreurs a été très utile lors du développement
+et du test des scripts de déploiement pour comprendre pourquoi certaines
+erreurs arrivaient et adapter les scripts pour les éviter. Ce mécanisme
+sera aussi utile pour aider un futur administrateur du système à
+comprendre ce qu'il se passe si un déploiement ne se déroule pas comme
+prévu.
+
+\hypertarget{mesure-du-temps-uxe9couluxe9}{%
+\subsection{Mesure du temps écoulé}\label{mesure-du-temps-uxe9couluxe9}}
+
+Un système permettant de mesurer et d'afficher le temps passé dans
+chaque section du script de déploiement a été créé. Il permet de mesurer
+chacune des parties et d'afficher le temps passé dans chaque partie à la
+fin du script. Les parties mesurées sont classées en deux catégories:
+\emph{batch} et \emph{interactive}. Les parties \emph{batch} sont celles
+qui sont exécutées automatiquement, sans intervention de l'utilisateur,
+tandis que les parties \emph{interactive} sont celles où le système
+attend un choix de l'utilisateur, comme par exemple le choix de l'image
+à déployer. Cette catégorisation des parties permet d'afficher à la fin
+du script combien de temps a été passé dans les parties \emph{batch}
+sans prendre en compte le temps passé à attendre un choix de
+l'utilisateur.
+
+\hypertarget{amuxe9lioration-des-logs}{%
+\subsection{Amélioration des logs}\label{amuxe9lioration-des-logs}}
+
+Plusieurs améliorations ont été apportées au mécanisme de logging. Dans
+le système initial, les flux \texttt{stdin} et \texttt{stdout} du script
+de déploiement étaient redirigés vers un fichier de log sur le serveur.
+Cela permet d'étudier à \emph{posteriori} comment le déploiement s'est
+effectué, et de vérifier la durée d'exécution. Cela permet aussi de
+comprendre ce qui s'est mal passé en cas d'erreur.
+
+Dans le système initial, étant donné que les flux sont redirigés vers un
+fichier, un écran noir est affiché sur l'écran du poste client. Cela a
+l'inconvénient de ne pas permettre à l'utilisateur du poste client de
+savoir ce qu'il est en train de se passer. Il n'est pas possible pour
+l'utilisateur de savoir si le déploiement est en cours ou s'il est
+bloqué sur une étape. La première modification apportée au système de
+logging a été d'utiliser la commande \texttt{tee} pour écrire dans les
+fichiers de log, au lieu d'une simple redirection. Cela permet aux
+sorties d'être simultanément affichées sur l'écran du client et
+sauvegardée dans les logs.
+
+De nombreux textes informatifs ont aussi été rajoutés dans la sortie du
+script pour expliquer ce qu'il est en train de se passer petit à petit.
+Cela permet de mieux contextualiser chaque ligne de log. Une barre de
+progression a aussi été rajoutée lors du déploiement d'une image au
+format \emph{raw} pour que l'utilisateur puisse suivre la progression du
+déploiement et qu'il puisse voir le temps écoulé ainsi qu'une estimation
+du temps restant.
+
+Le mécanisme initial de logging créait un fichier de log par poste
+client, en le nommant avec l'adresse
+\protect\hyperlink{acronym__MAC}{MAC} du poste. Chaque déploiement
+successif était loggué dans ce même fichier. Pour bien différencier le
+début et la fin d'un log, une ligne facilement reconnaissable contenant
+la date et l'heure était affichée. Il y a plusieurs problèmes avec ce
+système:
+
+\begin{itemize}
+\tightlist
+\item
+  Les fichiers de log peuvent devenir très gros après de nombreux
+  déploiements.
+\item
+  Le nettoyage du dossier de logs pour ne garder que les plus récents
+  est compliqué, car chaque fichier contient les logs de plusieurs
+  déploiements.
+\item
+  La manipulation avec des commandes standard telles que \texttt{grep},
+  \texttt{awk}, \texttt{tail} du log d'un déploiement précis est
+  compliqué.
+\item
+  La comparaison de deux logs de déploiement sur la même machine est
+  difficile car il faut trouver où les déploiements commencent et se
+  terminent dans le même fichier.
+\end{itemize}
+
+Le système de log a donc été modifié pour qu'un fichier par déploiement
+soit créé par déploiement. Chaque fichier de log est nommé selon
+l'adresse mac de la machine ainsi que la date et l'heure du début du
+déploiement.
+
+\hypertarget{intuxe9gration-de-clonezilla-comme-type-dimage}{%
+\subsection{\texorpdfstring{Intégration de \emph{Clonezilla} comme type
+d'image}{Intégration de Clonezilla comme type d'image}}\label{intuxe9gration-de-clonezilla-comme-type-dimage}}
+
+Le script de déploiement a été modifié pour pouvoir détecter si une
+image est au format \emph{raw} ou s'il s'agit d'une image
+\emph{Clonezilla}. Selon le type d'image, des stratégies différentes
+sont utilisées pour différentes étapes du déploiement:
+
+\begin{itemize}
+\tightlist
+\item
+  Détermination de la place nécessaire sur le disque pour déployer
+  l'image
+\item
+  Commandes utilisées pour le déploiement
+\item
+  Détermination du point d'entrée EFI.
+\end{itemize}
+
+\hypertarget{duxe9tection-automatique-du-point-dentruxe9e-efi}{%
+\subsection{\texorpdfstring{Détection automatique du point d'entrée
+\protect\hyperlink{acronym__EFI}{EFI}}{Détection automatique du point d'entrée EFI}}\label{duxe9tection-automatique-du-point-dentruxe9e-efi}}
+
+Si l'image est au format \emph{Clonezilla}, le script de déploiement est
+capable de déterminer automatiquement quel sera le programme
+\protect\hyperlink{acronym__EFI}{EFI} qui sera exécuté au prochain
+démarrage pour démarrer l'\protect\hyperlink{acronym__OS}{OS} déployé.
+
+En effet, les images \emph{Clonezilla} de systèmes
+\protect\hyperlink{acronym__EFI}{EFI} contiennent un fichier spécial,
+\texttt{efi-nvram.dat}, qui contient les variables contenues dans la
+\protect\hyperlink{acronym__NVRAM}{NVRAM} du système
+\protect\hyperlink{acronym__EFI}{EFI} au moment de la création de
+l'image. Cette mémoire contient notemment l'ordre des entrées de boot et
+les programmes \protect\hyperlink{acronym__EFI}{EFI} à exécuter pour
+chacune de ces entrées, si applicable.
+
+Par exemple, voici le contenu du fichier \texttt{nvram.dat} de l'image
+\emph{Windows 10} mentionnée dans les sections précédentes:
+
+\begin{Shaded}
+\begin{Highlighting}[]
+\NormalTok{BootCurrent: 0001}
+\NormalTok{Timeout: 0 seconds}
+\NormalTok{BootOrder: 0000,0001}
+\NormalTok{Boot0000* Windows Boot Manager  HD(1,GPT,0cccfd69{-}e584{-}4e2d{-}8a5d{-}6afa7130fcab,0x800,0x15e000) /File(\textbackslash{}EFI\textbackslash{}Microsoft\textbackslash{}Boot\textbackslash{}bootmgfw.efi) WINDOWS.........x...B.C.D.O.B.J.E.C.T.=.\{.9.d.e.a.8.6.2.c.{-}.5.c.d.d.{-}.4.e.7.0.{-}.a.c.c.1.{-}.f.3.2.b.3.4.4.d.4.7.9.5.\}....................}
+\NormalTok{Boot0001* UEFI:  USB DISK 3.0 PMAP  PciRoot(0x0)/Pci(0x14,0x0)/USB(16,0)/CDROM(1,0x344,0x5e00)..BO}
+\end{Highlighting}
+\end{Shaded}
+
+Le script de déploiement est capable de lire ce fichier, de trouver la
+première entrée contenant un chemin vers un exécutable
+\protect\hyperlink{acronym__EFI}{EFI}, et transformer ce chemin en un
+chemin \emph{Unix}, c'est à dire avec le caractère \texttt{/} au lieu de
+\texttt{\textbackslash{}} et des noms de dossiers et fichiers sensibles
+à la casse, qui correspondent à des dossiers et fichiers présents sur la
+partition \protect\hyperlink{acronym__ESP}{ESP} qui vient d'être
+déployée. Cette conversion est importante car ce chemin devra être passé
+à \protect\hyperlink{acronym__GRUB}{GRUB}, qui ne sait lire que des
+chemins au format \emph{Unix}.
+
+Une fois le point d'entrée déterminé un fichier \texttt{efi\_entrypoint}
+est écrit à la racine de la partition
+\protect\hyperlink{acronym__ESP}{ESP}. Il sera ensuite lu par
+\protect\hyperlink{acronym__GRUB}{GRUB} au prochain démarrage pour
+trouver le point d'entrée à exécuter. Le contenu de ce fichier
+ressemblera à ceci:
+
+\begin{Shaded}
+\begin{Highlighting}[]
+\KeywordTok{set} \VariableTok{efi\_entrypoint=}\NormalTok{/efi/Microsoft/Boot/bootmgfw.efi}
+\end{Highlighting}
+\end{Shaded}
+
+Si l'image est au format \emph{raw}, ou alors qu'il est souhaité
+d'outrepasser la lecture automatique du point d'entrée d'une image
+\emph{Clonezilla}, il suffit de rajouter un fichier
+\texttt{efi\_entrypoint} dans le dossier de l'image. Ce fichier sera
+directement copié dans l'\protect\hyperlink{acronym__ESP}{ESP}, sans
+qu'une tentative de détermination automatique du point d'entrée à partir
+du fichier \texttt{nvram.dat} soit effectuée.
 
 \hypertarget{personnalisation-dimages-post-duxe9ploiement}{%
 \section{Personnalisation d'images
 post-déploiement}\label{personnalisation-dimages-post-duxe9ploiement}}
 
-\textbf{TODO: expliquer pourquoi Ansible a été choisi pour cette tache,
-et des avantages que cela apporte de pouvoir customiser une image
-post-déploiement plutôt que d'avoir une multitude d'images pour chaque
-personnalisation (simplicité de création de playbook plutot que la
-création d'une image complète, possiblité de réutiliser les mêmes
-playbooks sur plusieurs images similaires, réutilisation d'images).}
+Un système a été conçu pour que l'utilisateur puisse choisir des
+personnalisations post-déploiement pour une image parmi un ensemble
+prédéfini. Ces personnalisations peuvent être implémentées de plusieurs
+manières: il ne s'agit que de fichiers qui seront copiés dans un dossier
+présent dans un répertoire de la machine déployée.
+
+Une image supportant les personnalisation post-déploiement peut par
+exemple être configurée pour exécuter des scripts qui auront été copiés
+dans un répertoire. Par exemple, sur une image dont
+l'\protect\hyperlink{acronym__OS}{OS} est une distribution \emph{Linux}
+utilisant \emph{Systemd}, une unité peut être configurée pour être
+exécutée au démarrage. Cette unité peut lancer au démarrage un script
+servant à exécuter séquentiellement des scripts présents dans un dossier
+prédéfini, ou alors exécuter des \emph{playbooks} \emph{Ansible}.
+
+Des personnalisations peuvent aussi être ``passives'' et ne pas
+nécessiter de configuration particulière du côté du client. Par exemple,
+si elle consiste uniquement à copier/remplacer un fichier de
+configuration à un endroit précis.
+
+Après le choix d'une image, le script de déploiement va chercher si un
+sous dossier \texttt{customizations} existe. Ce dossier contient un
+sous-dossier par personnalisation que l'utilisateur peut choisir. Chaque
+sous dossier personnalisation doit contenir une arborescence de dossiers
+et de fichiers dont le premier niveau contient uniquement des dossier
+correspondant à des noms de partitions existant dans l'image déployée. À
+l'intérieur de ce dossier, une arborescence des fichiers copiés sur la
+machine depuis laS
+
+Étudions une arborescence fictive de personnalisations pour mieux
+comprendre ce système. Voici l'arborescence du dossier
+\texttt{customizations} d'une image:
+
+\begin{Shaded}
+\begin{Highlighting}[]
+\NormalTok{customizations}
+\NormalTok{├── C language development environment}
+\NormalTok{│   └── sda2}
+\NormalTok{│       └── etc}
+\NormalTok{│           └── bootiful}
+\NormalTok{│               └── postdeploy{-}playbooks}
+\NormalTok{│                   └── 002{-}install{-}c{-}dev.yml}
+\NormalTok{├── Custom bashrc}
+\NormalTok{│   └── sda2}
+\NormalTok{│       └── etc}
+\NormalTok{│           └── bash.bashrc}
+\NormalTok{└── Join LDAP domain}
+\NormalTok{    └── sda2}
+\NormalTok{        └── etc}
+\NormalTok{            └── bootiful}
+\NormalTok{                └── postdeploy{-}playbooks}
+\NormalTok{                    └── 001{-}join{-}ldap.yml}
+\end{Highlighting}
+\end{Shaded}
+
+Cette arborescence définit les personnalisations suivantes, qui peuvent
+être choisies par l'utilisateur:
+
+\begin{enumerate}
+\def\labelenumi{\arabic{enumi}.}
+\tightlist
+\item
+  \texttt{C\ language\ development\ environment}: copie un
+  \emph{playbook} \emph{Ansible} servant à installer un environnement de
+  développement C dans le dossier
+  \texttt{/etc/bootiful/postdeploy-playbooks} de la partition
+  \texttt{sda2}
+\item
+  \texttt{Custom\ bashrc}: remplace le ficher \texttt{/etc/bash.bashrc}
+  de la partition \texttt{sda2} par un fichier personnalisé.
+\item
+  \texttt{Join\ LDAP\ domain}: copie un \emph{playbook} \emph{Ansible}
+  servant à rejoindre un domaine \protect\hyperlink{acronym__LDAP}{LDAP}
+  dans le dossier \texttt{/etc/bootiful/postdeploy-playbooks} de la
+  partition \texttt{sda2}
+\end{enumerate}
+
+Les personnalisations \textbf{1} et \textbf{3} nécessitent que l'image
+soit équipée d'un mécanisme qui va exécuter les \emph{playbooks Ansible}
+présents dans \texttt{/etc/bootiful/postdeploy-playbooks} au démarrage.
+Des exemples d'un tel script et de l'unité \emph{systemd} servant à le
+lancer au démarrage sont consultables dans les sections
+\ref{source_ansible_run} et \ref{source_ansible_init}.'w'\,'\,'\,'
+
+La personnalisation \textbf{2} est passive: elle remplace juste un
+fichier mais ne nécessite pas de mécanisme spécial sur la machine de
+déploiement pour l'exécuter.
 
 \hypertarget{architecture-finale-du-projet}{%
 \chapter{Architecture finale du
@@ -2184,14 +2767,6 @@ cette configuration à un environnement de production.}
 \textbf{TODO: expliquer exactement comment sont structurées les données
 des images (raw et clonezilla).}
 
-\hypertarget{systuxe8me-de-personnalisation-des-images}{%
-\section{Système de personnalisation des
-images}\label{systuxe8me-de-personnalisation-des-images}}
-
-\textbf{TODO: expliquer en détails comment fonctionne le système de
-personnalisation des images, ce qui est nécéssaire sur le client et ce
-qui est nécessaire sur le serveur}
-
 \hypertarget{utilisation-du-systuxe8me-duxe9ployuxe9}{%
 \chapter{Utilisation du système
 déployé}\label{utilisation-du-systuxe8me-duxe9ployuxe9}}
@@ -2200,6 +2775,18 @@ déployé}\label{utilisation-du-systuxe8me-duxe9ployuxe9}}
 \section{Déployer une image sur un
 poste}\label{duxe9ployer-une-image-sur-un-poste}}
 
+Cette section contient une marche à suivre qui décrit les étapes pour
+déployer une image sur un poste client quand un serveur est déjà
+installé et configuré, que la machine est configurée pour démarrer sur
+le réseau.
+
+\begin{enumerate}
+\def\labelenumi{\arabic{enumi}.}
+\tightlist
+\item
+  Démarrer la machine et attendre qu'elle
+\end{enumerate}
+
 \textbf{TODO: expliquer pas à pas comment utiliser l'interface pour
 déployer une image sur un client et les différentes inter-actions de
 l'utilisateur, avec des captures d'écran, etc.}
@@ -2229,15 +2816,2270 @@ scripts de personnalisation, avec un exemple type simple.}
 \chapter{Conclusion}\label{conclusion}}
 
 \hypertarget{synthuxe8se-du-travail-effectuuxe9}{%
-\subsection{Synthèse du travail
+\section{Synthèse du travail
 effectué}\label{synthuxe8se-du-travail-effectuuxe9}}
 
+Le travail initial a été récupéré, analysé, documenté et remis en
+fonctionnement en corrigeant quelques problèmes dans les fichiers de
+configuration et les scripts de déploiement. L'outil \emph{Vagrant} a
+été utilisé pour automatiser la création d'un serveur virtuel qui
+exécute les différents services du système.
+
+Le système a été ensuite modifié pour le rendre compatible avec les
+ordinateurs modernes utilisant le standard
+\protect\hyperlink{acronym__UEFI}{UEFI} au lieu d'un
+\protect\hyperlink{acronym__BIOS}{BIOS}.
+
+Des mesures ont été effectuées pour déterminer si le choix du protocole
+\protect\hyperlink{acronym__NFS}{NFS}, le protocole réseau utilisé pour
+transférer les images, était pertinent. Il été comparé aux protocoles
+\protect\hyperlink{acronym__SCP}{SCP},
+\protect\hyperlink{acronym__HTTP}{HTTP},
+\protect\hyperlink{acronym__FTP}{FTP},
+\protect\hyperlink{acronym__NFS}{NFS},
+\protect\hyperlink{acronym__SMB}{SMB} et
+\protect\hyperlink{acronym__IPFS}{IPFS} en mesurant le temps de
+transfert d'une image. Ces mesures ont montré que les temps de
+déploiement avec ces différents protocoles étaient similaires, à
+l'exception d'\protect\hyperlink{acronym__IPFS}{IPFS} qui prenait
+beaucoup plus de temps. Le protocole
+\protect\hyperlink{acronym__NFS}{NFS} a donc été gardé car les mesures
+ont prouvé que ses performances étaient similaires à ses alternatives.
+
+Un format d'images alternatif aux images brutes compressées a été
+recherché. Une solution produisant des images plus petites et
+déployables plus rapidement a été trouvée: utiliser des images produites
+avec l'outil \emph{Clonezilla}. Cet outil permet aussi de faciliter la
+création d'images en utilisant sa version \emph{live}. Des mesures
+prouvant que ce système de déploiement d'images offre un réel avantage
+en espace utilisé et en temps de déploiement par rapport aux images
+brutes compressées.
+
+Le système d'exploitation utilisé pour effectuer le déploiement a été
+complètement remplacé. Initialement construit avec \emph{Buildroot},
+avec un système de fichiers racine chargé entièrement en mémoire, il a
+été remplacé par un système \emph{Debian} dont le système de fichiers
+racine est monté depuis un partage \protect\hyperlink{acronym__NFS}{NFS}
+en lecture seule. Ce système permet une installation aisée de tous les
+paquets \emph{Debian}, notamment \emph{Clonezilla} qui était compliqué à
+installer sur un système construit avec \emph{Buildroot}. La création de
+ce système d'exploitation a été automatisée et encapsulée dans un
+conteneur \emph{Docker} pour rendre sa modification et reconstruction
+très simple, indépendamment du système d'exploitation utilisé.
+
+Les scripts de déploiement du système initial ont été réécrits. Une
+gestion avancée des erreurs a été implémentée. Un système de mesure et
+d'affichage du temps d'exécution de chaque partie du déploiement a été
+développé. La génération de fichiers de log a été améliorée pour qu'ils
+fournissent plus d'informations utiles et qu'ils soient structurés de
+manière à rendre leur gestion et leur consultation plus aisée. Le
+déploiement d'images avec \emph{Clonezilla} a été implémenté, tout en
+gardant la possibilité d'utiliser des images brutes compressées pour
+offrir plus de flexibilité et permettre de comparer les deux systèmes.
+Le support des images de systèmes d'exploitations compatibles
+\protect\hyperlink{acronym__UEFI}{UEFI} a aussi été implémenté,
+notamment en permettant de déterminer automatiquement l'exécutable
+\protect\hyperlink{acronym__EFI}{EFI} qui devra être lancé pour démarrer
+le système déployé.
+
+Enfin, un système de personnalisation d'un système après son déploiement
+a été conçu, permettant de définir des configurations que l'utilisateur
+peut choisir de copier ou non sur le système déployé. Une image de
+système d'exploitation peut être conçue pour exécuter les fichiers
+copiés par ces personnalisations dans un dossier spécifique, pour
+permettre des configurations complexes exécutées lors du démarrage avec
+un outil choisi, par exemple \emph{Ansible}. Ce système offre beaucoup
+de flexibilité et permet de définir des configurations avancées tout en
+gardant le système de déploiement indépendant de ce qui est utilisé pour
+les exécuter, car le seul mécanisme présent dans le système de
+déploiement est la copie de fichiers sur une partition donnée.
+
 \hypertarget{points-damuxe9lioration}{%
-\subsection{Points d'amélioration}\label{points-damuxe9lioration}}
+\section{Points d'amélioration}\label{points-damuxe9lioration}}
+
+Bien que le système à la fin de ce projet soit parfaitement fonctionnel,
+il existe des points qui devraient ou pourraient être étudiés, améliorés
+ou implémentés pour que le système soit prêt à une utilisation dans un
+cadre réel.
+
+\hypertarget{amuxe9lioration-des-performances-de-tuxe9luxe9chargement-des-images-sur-un-ruxe9seau-ruxe9el-avec-de-nombreux-clients-simultanuxe9s}{%
+\subsection{Amélioration des performances de téléchargement des images
+sur un réseau réel avec de nombreux clients
+simultanés}\label{amuxe9lioration-des-performances-de-tuxe9luxe9chargement-des-images-sur-un-ruxe9seau-ruxe9el-avec-de-nombreux-clients-simultanuxe9s}}
+
+Le protocole réseau utilisé pour le téléchargement des images a été
+testé avec un client unique, sur un réseau minimal ne comprenant que le
+client et le serveur. Il est très probable que le temps de
+téléchargement des images soit beaucoup plus long que celui mesuré dans
+le cadre de ce travail si de nombreux clients téléchargent des images en
+même temps, dans un réseau plus complexe tel que celui de l'école.
+
+L'étude et la mitigation de cette problématique a volontairement été
+mise de côté dans le cadre de ce travail car il était difficile de
+simuler les conditions réelles du système déployé dans une école alors
+que tout le travail a été effectué hors de l'école, dans un petit réseau
+local domestique avec une quantité limitée d'ordinateurs à disposition
+pour faire des tests.
+
+Différentes approches pourraient être utilisées pour améliorer ces
+performances, telles que la copie en \emph{multicast} des images, la
+redondance des serveurs mettant à disposition les images ou encore
+l'utilisation d'un protocole \emph{pair à pair} tel que
+\emph{Bittorrent} ou \emph{IPFS} pour permettre de distribuer le
+transfert des images sur tous les clients connectés plutôt que
+d'utiliser uniquement le serveur central comme source du fichiers.
+
+\hypertarget{amuxe9lioration-du-systuxe8me-de-personnalisation-des-images}{%
+\subsection{Amélioration du système de personnalisation des
+images}\label{amuxe9lioration-du-systuxe8me-de-personnalisation-des-images}}
+
+Le système de personnalisation des images a été implémenté tardivement
+dans le travail. Bien qu'il soit fonctionnel, il n'a pas été testé
+extensivement. Il faudrait passer un peu de temps à créer des
+configurations post-déploiement complexes qui sont exécutées au
+démarrage par le système déployé et de valider leur fonctionnement.
+
+Par exemple, il était prévu de tester l'exécution de \emph{playbooks}
+\emph{Ansible} au démarrage du système, copiés selon les choix de
+personnalisation de l'utilisateur. Ces \emph{playbooks} pourraient étre
+utilisés pour effectuer de nombreuses actions, telles que l'installation
+de groupes de paquets choisis, la génération d'un nom d'hôte unique pour
+la machine et la connexion à un domaine \emph{Active Directory} pour
+permettre aux élèves de se connecter avec le même nom d'utilisateur et
+d'avoir accès à leur dossier \emph{home} depuis un partage
+\protect\hyperlink{acronym__NFS}{NFS}, comme sur les postes de travail
+standards présents de l'école.
+
+\hypertarget{amuxe9lioration-de-la-suxe9curituxe9}{%
+\subsection{Amélioration de la
+sécurité}\label{amuxe9lioration-de-la-suxe9curituxe9}}
+
+Sur le système actuel, un utilisateur mal intentionné peut détruire ou
+modifier les images présentes sur le serveur distant, car elles sont
+récupérées sur un partage \protect\hyperlink{acronym__NFS}{NFS} avec des
+droits de lecture-écriture. La raison de ce partage en lecture et
+écriture est que les logs sont écrits sur le même partage. Une manière
+simple de résoudre ce problème serait de séparer ce partage en deux: le
+premier en lecture seule contiendrait les images et le second
+contiendrait les logs uniquement.
+
+Il faudrait ensuite trouver une solution pour empêcher une machine
+d'aller modifier ou supprimer les logs d'une autre machine, ce qui est
+compliqué à mettre en oeuvre avec un partage
+\protect\hyperlink{acronym__NFS}{NFS}. Peut être que les logs pourraient
+être transmis au serveur en utilisant un autre canal de communication et
+de déléguer la création et le nommage du fichier au serveur, pour que
+les clients ne soient plus capables d'accéder directement aux fichiers
+des logs, mais que ce soit le serveur qui ait la responsabilité de les
+créer et de les gérer.
+
+\hypertarget{ruxe9trospection-sur-le-duxe9roulement-du-travail}{%
+\section{Rétrospection sur le déroulement du
+travail}\label{ruxe9trospection-sur-le-duxe9roulement-du-travail}}
+
+J'ai eu beaucoup d'intérêt à travailler sur ce sujet. Cela m'a permis de
+mettre en pratique de nombreuses compétences acquises lors des cours
+suivis les quatre années précédentes, dont en particulier les cours de
+programmation des systèmes (\emph{sIT\_242}), systèmes d'exploitation
+(\emph{sIT\_244}), réseaux et protocoles informatiques (sIT\_362),
+réseaux avancés (\emph{sIT\_384}), programmation avancée des systèmes
+(\emph{sIT\_632}) et virtualisation des
+\protect\hyperlink{acronym__SI}{SI} (\emph{sIT\_632}).
+
+\hypertarget{ruxe9fuxe9rences}{%
+\chapter{Références}\label{ruxe9fuxe9rences}}
+
+\appendix
+
+\hypertarget{appendix_source}{%
+\chapter{Codes sources notables}\label{appendix_source}}
+
+Cette annexe contient les listings des codes sources les plus importants
+du projet.
+
+\hypertarget{makefile-configuration-gnu-make-du-projet}{%
+\section{\texorpdfstring{\texttt{Makefile}: configuration \emph{GNU
+Make} du
+projet}{Makefile: configuration GNU Make du projet}}\label{makefile-configuration-gnu-make-du-projet}}
+
+\begin{Shaded}
+\begin{Highlighting}[]
+\DataTypeTok{SHELL }\CharTok{:=}\StringTok{ /bin/bash}
+\DataTypeTok{MAKEFLAGS }\CharTok{+=}\StringTok{ "{-}j 4"}
+
+\DataTypeTok{DOCKER\_BUILDKIT\_BUILD }\CharTok{=}\StringTok{ DOCKER\_BUILDKIT=1 docker build {-}{-}progress=plain}
+
+\DataTypeTok{GRUB\_SRC }\CharTok{:=}\StringTok{ }\CharTok{$(}\KeywordTok{shell}\StringTok{ find grub/bootiful{-}grub/ {-}type f {-}regex ".*\textbackslash{}.[c|h|sh|py|cfg|conf]"}\CharTok{)}
+\DataTypeTok{GRUB\_I386\_PC\_BIN }\CharTok{=}\StringTok{ tftp/tftpboot/boot/grub/i386{-}pc/core.0}
+\DataTypeTok{GRUB\_I386\_EFI\_BIN }\CharTok{=}\StringTok{ tftp/tftpboot/boot/grub/i386{-}efi/core.efi}
+\DataTypeTok{GRUB\_X86\_64\_EFI\_BIN }\CharTok{=}\StringTok{ tftp/tftpboot/boot/grub/x86\_64{-}efi/core.efi}
+\DataTypeTok{DEPLOYER\_SRC }\CharTok{:=}\StringTok{ }\CharTok{$(}\KeywordTok{wildcard}\StringTok{ deployer/*}\CharTok{)}
+\DataTypeTok{TFTP\_DEPLOYER\_DIR }\CharTok{=}\StringTok{ tftp/tftpboot/boot/deployer}
+\DataTypeTok{TFTP\_DEPLOYER\_VMLINUZ }\CharTok{:=}\StringTok{ }\CharTok{$(}\DataTypeTok{TFTP\_DEPLOYER\_DIR}\CharTok{)}\StringTok{/vmlinuz}
+\DataTypeTok{TFTP\_DEPLOYER\_INITRD }\CharTok{:=}\StringTok{ }\CharTok{$(}\DataTypeTok{TFTP\_DEPLOYER\_DIR}\CharTok{)}\StringTok{/initrd.img}
+\DataTypeTok{NFS\_DEPLOYER\_ROOT }\CharTok{:=}\StringTok{ nfs/nfsroot.tar.gz}
+\DataTypeTok{LATEST\_LOG }\CharTok{:=}\StringTok{ }\CharTok{$(}\KeywordTok{shell}\StringTok{ ls {-}1 nfs/nfsshared/log/*.log | tail {-}n 1}\CharTok{)}
+
+\OtherTok{.PHONY:}\DataTypeTok{ doc grub deployer start{-}server reprovision{-}server clean print\_last\_log help}
+
+\CommentTok{\# Builds everything}
+\DecValTok{all:}\DataTypeTok{ doc grub deployer}
+
+\CommentTok{\# Builds PDF and markdown documents}
+\DecValTok{doc:}
+    \CharTok{$(}\DataTypeTok{MAKE}\CharTok{)}\NormalTok{ {-}C doc}
+
+\DecValTok{grub/bootiful{-}grub/bootstrap partclone/bootiful{-}partclone/Makefile.am:}\DataTypeTok{ .gitmodules}
+\NormalTok{    git submodule init \&\& git submodule update}
+
+\CommentTok{\# Bootstraps GRUB  dependencies and configuration script}
+\DecValTok{grub/bootiful{-}grub/configure:}\DataTypeTok{ grub/bootiful{-}grub/bootstrap}
+\NormalTok{    (pushd grub/bootiful{-}grub \&\& ./bootstrap; popd)}
+
+\CommentTok{\# Builds GRUB for i386{-}pc}
+\DecValTok{$(GRUB\_I386\_PC\_BIN):}\DataTypeTok{ grub/Dockerfile grub/bootiful{-}grub/configure }\CharTok{$(}\DataTypeTok{GRUB\_SRC}\CharTok{)}
+    \CharTok{$(}\DataTypeTok{DOCKER\_BUILDKIT\_BUILD}\CharTok{)}\NormalTok{ ./grub }\CharTok{\textbackslash{}}
+\NormalTok{        {-}{-}output ./tftp/tftpboot }\CharTok{\textbackslash{}}
+\NormalTok{        {-}{-}build{-}arg PLATFORM=pc }\CharTok{\textbackslash{}}
+\NormalTok{          {-}{-}build{-}arg TARGET=i386}
+
+\CommentTok{\# Builds GRUB for i386{-}efi}
+\DecValTok{$(GRUB\_I386\_EFI\_BIN):}\DataTypeTok{ grub/Dockerfile grub/bootiful{-}grub/configure }\CharTok{$(}\DataTypeTok{GRUB\_SRC}\CharTok{)}
+    \CharTok{$(}\DataTypeTok{DOCKER\_BUILDKIT\_BUILD}\CharTok{)}\NormalTok{ ./grub }\CharTok{\textbackslash{}}
+\NormalTok{        {-}{-}output ./tftp/tftpboot }\CharTok{\textbackslash{}}
+\NormalTok{        {-}{-}build{-}arg PLATFORM=efi }\CharTok{\textbackslash{}}
+\NormalTok{        {-}{-}build{-}arg TARGET=i386}
+
+\CommentTok{\# Builds GRUB for x86\_64{-}efi}
+\DecValTok{$(GRUB\_X86\_64\_EFI\_BIN):}\DataTypeTok{ grub/Dockerfile grub/bootiful{-}grub/configure }\CharTok{$(}\DataTypeTok{GRUB\_SRC}\CharTok{)}
+    \CharTok{$(}\DataTypeTok{DOCKER\_BUILDKIT\_BUILD}\CharTok{)}\NormalTok{ ./grub }\CharTok{\textbackslash{}}
+\NormalTok{        {-}{-}output ./tftp/tftpboot }\CharTok{\textbackslash{}}
+\NormalTok{        {-}{-}build{-}arg PLATFORM=efi }\CharTok{\textbackslash{}}
+\NormalTok{        {-}{-}build{-}arg TARGET=x86\_64}
+
+\CommentTok{\# Builds GRUB for all platforms}
+\DecValTok{grub:}\DataTypeTok{ }\CharTok{$(}\DataTypeTok{GRUB\_I386\_PC\_BIN}\CharTok{)}\DataTypeTok{ }\CharTok{$(}\DataTypeTok{GRUB\_I386\_EFI\_BIN}\CharTok{)}\DataTypeTok{ }\CharTok{$(}\DataTypeTok{GRUB\_X86\_64\_EFI\_BIN}\CharTok{)}
+
+\CommentTok{\# Builds the deployer OS}
+\DecValTok{deployer:}\DataTypeTok{ }\CharTok{$(}\DataTypeTok{TFTP\_DEPLOYER\_VMLINUZ}\CharTok{)}\DataTypeTok{ }\CharTok{$(}\DataTypeTok{TFTP\_DEPLOYER\_INITRD}\CharTok{)}\DataTypeTok{ }\CharTok{$(}\DataTypeTok{NFS\_DEPLOYER\_ROOT}\CharTok{)}
+
+\DecValTok{$(TFTP\_DEPLOYER\_VMLINUZ) $(TFTP\_DEPLOYER\_INITRD) \&:}\DataTypeTok{ }\CharTok{$(}\DataTypeTok{DEPLOYER\_SRC}\CharTok{)}
+    \CharTok{$(}\DataTypeTok{DOCKER\_BUILDKIT\_BUILD}\CharTok{)}\NormalTok{ ./deployer {-}{-}target tftp{-}export{-}stage {-}{-}output }\CharTok{$(}\DataTypeTok{TFTP\_DEPLOYER\_DIR}\CharTok{)}\NormalTok{ \&\& }\CharTok{\textbackslash{}}
+\NormalTok{    touch {-}c }\CharTok{$(}\DataTypeTok{TFTP\_DEPLOYER\_VMLINUZ}\CharTok{)} \CharTok{$(}\DataTypeTok{TFTP\_DEPLOYER\_INITRD}\CharTok{)}
+
+\DecValTok{$(NFS\_DEPLOYER\_ROOT):}\DataTypeTok{ }\CharTok{$(}\DataTypeTok{DEPLOYER\_SRC}\CharTok{)}
+    \CharTok{$(}\DataTypeTok{DOCKER\_BUILDKIT\_BUILD}\CharTok{)}\NormalTok{ ./deployer {-}{-}target nfs{-}export{-}stage {-}{-}output nfs/ \&\& }\CharTok{\textbackslash{}}
+\NormalTok{    touch {-}c }\CharTok{$(}\DataTypeTok{NFS\_DEPLOYER\_ROOT}\CharTok{)}
+
+\CommentTok{\# Starts bootiful services in docker containers}
+\DecValTok{start{-}server:}\DataTypeTok{ grub deployer}
+\NormalTok{    docker{-}compose up {-}{-}build {-}{-}remove{-}orphans {-}{-}abort{-}on{-}container{-}exit}
+
+\CommentTok{\# Removes all generated files}
+\DecValTok{clean:}
+\NormalTok{    rm {-}rf deployer/rootfs}
+    \CharTok{$(}\DataTypeTok{MAKE}\CharTok{)}\NormalTok{ {-}C doc clean}
+
+\CommentTok{\# Prints the latest deployment log file}
+\DecValTok{print{-}latest{-}log:}
+\NormalTok{    cat }\CharTok{$(}\DataTypeTok{LATEST\_LOG}\CharTok{)}
+
+\CommentTok{\# Show this help.}
+\DecValTok{help:}
+\NormalTok{    printf }\StringTok{"Usage:  make \textless{}target\textgreater{}\textbackslash{}n\textbackslash{}nTargets:\textbackslash{}n"}
+\NormalTok{    awk }\StringTok{\textquotesingle{}/\^{}\#/\{c=substr(}\CharTok{$$}\StringTok{0,3);next\}c\&\&/\^{}[[:alpha:]][[:alnum:]\_{-}]+:/\{print "  " substr(}\CharTok{$$}\StringTok{1,1,index(}\CharTok{$$}\StringTok{1,":")),c\}1\{c=0\}\textquotesingle{}} \CharTok{$(}\DataTypeTok{MAKEFILE\_LIST}\CharTok{)}\NormalTok{ | column {-}s: {-}t}
+\end{Highlighting}
+\end{Shaded}
+
+\hypertarget{docker-compose.yml-configuration-docker-compose-du-serveur-de-duxe9ploiement}{%
+\section{\texorpdfstring{\texttt{docker-compose.yml}: configuration
+\emph{docker-compose} du serveur de
+déploiement}{docker-compose.yml: configuration docker-compose du serveur de déploiement}}\label{docker-compose.yml-configuration-docker-compose-du-serveur-de-duxe9ploiement}}
+
+\begin{Shaded}
+\begin{Highlighting}[]
+\FunctionTok{version}\KeywordTok{:}\AttributeTok{ }\StringTok{"3.8"}
+
+\FunctionTok{services}\KeywordTok{:}
+\AttributeTok{  }\FunctionTok{bootiful{-}dhcp}\KeywordTok{:}
+\AttributeTok{    }\FunctionTok{build}\KeywordTok{:}\AttributeTok{ ./dhcp}
+\AttributeTok{    }\FunctionTok{network\_mode}\KeywordTok{:}\AttributeTok{ host}
+\AttributeTok{  }\FunctionTok{bootiful{-}tftp}\KeywordTok{:}
+\AttributeTok{    }\FunctionTok{build}\KeywordTok{:}\AttributeTok{ ./tftp}
+\AttributeTok{    }\FunctionTok{network\_mode}\KeywordTok{:}\AttributeTok{ host}
+\AttributeTok{    }\FunctionTok{volumes}\KeywordTok{:}
+\AttributeTok{      }\KeywordTok{{-}}\AttributeTok{ }\FunctionTok{type}\KeywordTok{:}\AttributeTok{ bind}
+\AttributeTok{        }\FunctionTok{source}\KeywordTok{:}\AttributeTok{ ./tftp/tftpboot}
+\AttributeTok{        }\FunctionTok{target}\KeywordTok{:}\AttributeTok{ /tftpboot}
+\AttributeTok{        }\FunctionTok{read\_only}\KeywordTok{:}\AttributeTok{ }\CharTok{yes}
+\AttributeTok{  }\FunctionTok{bootiful{-}nfs}\KeywordTok{:}
+\AttributeTok{    }\FunctionTok{build}\KeywordTok{:}\AttributeTok{ ./nfs}
+\AttributeTok{    }\FunctionTok{network\_mode}\KeywordTok{:}\AttributeTok{ host}
+\AttributeTok{    }\FunctionTok{privileged}\KeywordTok{:}\AttributeTok{ }\CharTok{yes}
+\AttributeTok{    }\FunctionTok{volumes}\KeywordTok{:}
+\AttributeTok{      }\KeywordTok{{-}}\AttributeTok{ }\FunctionTok{type}\KeywordTok{:}\AttributeTok{ tmpfs}
+\AttributeTok{        }\FunctionTok{target}\KeywordTok{:}\AttributeTok{ /nfsroot}
+\AttributeTok{      }\KeywordTok{{-}}\AttributeTok{ }\FunctionTok{type}\KeywordTok{:}\AttributeTok{ bind}
+\AttributeTok{        }\FunctionTok{source}\KeywordTok{:}\AttributeTok{ /run/media/araxor/bigdata/nfsshared}
+\AttributeTok{        }\FunctionTok{target}\KeywordTok{:}\AttributeTok{ /nfsshared}
+\AttributeTok{      }\KeywordTok{{-}}\AttributeTok{ }\FunctionTok{type}\KeywordTok{:}\AttributeTok{ bind}
+\AttributeTok{        }\FunctionTok{source}\KeywordTok{:}\AttributeTok{ /lib/modules}
+\AttributeTok{        }\FunctionTok{target}\KeywordTok{:}\AttributeTok{ /lib/modules}
+\AttributeTok{        }\FunctionTok{read\_only}\KeywordTok{:}\AttributeTok{ }\CharTok{yes}
+\AttributeTok{    }\FunctionTok{environment}\KeywordTok{:}
+\AttributeTok{      }\FunctionTok{NFS\_LOG\_LEVEL}\KeywordTok{:}\AttributeTok{ DEBUG}
+\end{Highlighting}
+\end{Shaded}
+
+\hypertarget{deployer_dockerfile}{%
+\section{\texorpdfstring{\texttt{deployer/Dockerfile}: configuration
+\emph{Docker} pour la construction de l'OS de
+déploiement}{deployer/Dockerfile: configuration Docker pour la construction de l'OS de déploiement}}\label{deployer_dockerfile}}
+
+\begin{Shaded}
+\begin{Highlighting}[]
+\KeywordTok{FROM}\NormalTok{ debian:bullseye as build{-}stage}
+\KeywordTok{RUN}\NormalTok{ apt{-}get update \&\& apt{-}get install {-}y multistrap}
+
+\KeywordTok{WORKDIR}\NormalTok{ /multistrap}
+
+\KeywordTok{ADD}\NormalTok{ ./multistrap.config ./}
+\KeywordTok{RUN}\NormalTok{ multistrap {-}{-}arch amd64 {-}{-}file ./multistrap.config {-}{-}dir ./rootfs {-}{-}tidy{-}up}
+
+\KeywordTok{ADD}\NormalTok{ ./hostname ./rootfs/etc/hostname}
+\KeywordTok{ADD}\NormalTok{ ./hosts ./rootfs/etc/hosts}
+\KeywordTok{ADD}\NormalTok{ ./fstab ./rootfs/etc/fstab}
+\KeywordTok{ADD}\NormalTok{ ./initramfs.conf ./rootfs/etc/initramfs{-}tools/initramfs.conf}
+\KeywordTok{ADD}\NormalTok{ ./bootiful{-}deploy{-}log.service ./rootfs/etc/systemd/system/bootiful{-}deploy{-}log.service}
+
+\KeywordTok{ADD}\NormalTok{ ./configure.sh ./rootfs/}
+\KeywordTok{RUN}\NormalTok{ chroot /multistrap/rootfs ./configure.sh}
+
+\KeywordTok{RUN}\NormalTok{ mkdir ./boot ./rootfs/bootiful ./rootfs/var/lib/clonezilla ./rootfs/home/partimag}
+\KeywordTok{RUN}\NormalTok{ ln {-}s /proc/mounts rootfs/etc/mtab}
+\KeywordTok{RUN}\NormalTok{ cp ./rootfs/vmlinuz ./rootfs/initrd.img ./boot/ \&\& \textbackslash{}}
+\NormalTok{    rm {-}rf ./rootfs/configure.sh ./rootfs/vmlinuz* ./rootfs/initrd.img* ./rootfs/boot}
+
+\KeywordTok{ADD}\NormalTok{ ./bootiful{-}deploy{-}init ./rootfs/usr/bin/}
+\KeywordTok{ADD}\NormalTok{ ./bootiful{-}common ./rootfs/usr/bin/}
+\KeywordTok{ADD}\NormalTok{ ./bootiful{-}deploy ./rootfs/usr/bin/}
+\KeywordTok{ADD}\NormalTok{ ./bootiful{-}save{-}image ./rootfs/usr/bin/}
+\KeywordTok{ADD}\NormalTok{ ./bootiful{-}reset{-}cache ./rootfs/usr/bin/}
+\KeywordTok{RUN}\NormalTok{ tar {-}czf nfsroot.tar.gz rootfs {-}{-}hard{-}dereference \&\& rm {-}rf ./rootfs}
+
+\KeywordTok{FROM}\NormalTok{ scratch AS nfs{-}export{-}stage}
+\KeywordTok{COPY}\NormalTok{ {-}{-}from=build{-}stage /multistrap/nfsroot.tar.gz /}
+
+\KeywordTok{FROM}\NormalTok{ scratch AS tftp{-}export{-}stage}
+\KeywordTok{COPY}\NormalTok{ {-}{-}from=build{-}stage /multistrap/boot /}
+
+\end{Highlighting}
+\end{Shaded}
+
+\hypertarget{deployerbootiful-deploy-log.service-configuration-de-lunituxe9-systemd-des-script-de-duxe9ploiement}{%
+\section{\texorpdfstring{\texttt{deployer/bootiful-deploy-log.service}:
+configuration de l'unité \emph{Systemd} des script de
+déploiement}{deployer/bootiful-deploy-log.service: configuration de l'unité Systemd des script de déploiement}}\label{deployerbootiful-deploy-log.service-configuration-de-lunituxe9-systemd-des-script-de-duxe9ploiement}}
+
+\begin{Shaded}
+\begin{Highlighting}[]
+\KeywordTok{[Unit]}
+\DataTypeTok{Description}\OtherTok{=}\StringTok{Bootiful interactive remote image deployment}
+\DataTypeTok{Conflicts}\OtherTok{=}\StringTok{gettytty1.service}
+\DataTypeTok{Before}\OtherTok{=}\StringTok{getty.target}
+
+\KeywordTok{[Service]}
+\DataTypeTok{Type}\OtherTok{=}\StringTok{oneshot}
+\DataTypeTok{RemainAfterExit}\OtherTok{=}\KeywordTok{yes}
+\DataTypeTok{ExecStartPre}\OtherTok{=}\StringTok{/bin/sleep }\DecValTok{2}
+\DataTypeTok{ExecStart}\OtherTok{=}\StringTok{/usr/bin/bootiful{-}deploy{-}init}
+\DataTypeTok{StandardInput}\OtherTok{=}\StringTok{tty}
+\DataTypeTok{StandardOutput}\OtherTok{=}\StringTok{tty}
+\DataTypeTok{StandardError}\OtherTok{=}\StringTok{tty}
+\DataTypeTok{ }
+\KeywordTok{[Install]}
+\DataTypeTok{WantedBy}\OtherTok{=}\StringTok{multi{-}user.target}
+\end{Highlighting}
+\end{Shaded}
+
+\hypertarget{deployerinitramfs.conf-configuration-pour-cruxe9ation-dun-initramfs-pour-duxe9marrer-avec-nfs}{%
+\section{\texorpdfstring{\texttt{deployer/initramfs.conf}: configuration
+pour création d'un \emph{initramfs} pour démarrer avec
+\protect\hyperlink{acronym__NFS}{NFS}}{deployer/initramfs.conf: configuration pour création d'un initramfs pour démarrer avec NFS}}\label{deployerinitramfs.conf-configuration-pour-cruxe9ation-dun-initramfs-pour-duxe9marrer-avec-nfs}}
+
+\begin{Shaded}
+\begin{Highlighting}[]
+\CommentTok{\#}
+\CommentTok{\# initramfs.conf}
+\CommentTok{\# Configuration file for mkinitramfs(8). See initramfs.conf(5).}
+\CommentTok{\#}
+\CommentTok{\# Note that configuration options from this file can be overridden}
+\CommentTok{\# by config files in the /etc/initramfs{-}tools/conf.d directory.}
+
+\CommentTok{\#}
+\CommentTok{\# MODULES: [ most | netboot | dep | list ]}
+\CommentTok{\#}
+\CommentTok{\# most {-} Add most filesystem and all harddrive drivers.}
+\CommentTok{\#}
+\CommentTok{\# dep {-} Try and guess which modules to load.}
+\CommentTok{\#}
+\CommentTok{\# netboot {-} Add the base modules, network modules, but skip block devices.}
+\CommentTok{\#}
+\CommentTok{\# list {-} Only include modules from the \textquotesingle{}additional modules\textquotesingle{} list}
+\CommentTok{\#}
+
+\VariableTok{MODULES=}\NormalTok{netboot}
+
+\CommentTok{\#}
+\CommentTok{\# BUSYBOX: [ y | n | auto ]}
+\CommentTok{\#}
+\CommentTok{\# Use busybox shell and utilities.  If set to n, klibc utilities will be used.}
+\CommentTok{\# If set to auto (or unset), busybox will be used if installed and klibc will}
+\CommentTok{\# be used otherwise.}
+\CommentTok{\#}
+
+\VariableTok{BUSYBOX=}\NormalTok{auto}
+
+\CommentTok{\#}
+\CommentTok{\# KEYMAP: [ y | n ]}
+\CommentTok{\#}
+\CommentTok{\# Load a keymap during the initramfs stage.}
+\CommentTok{\#}
+
+\VariableTok{KEYMAP=}\NormalTok{n}
+
+\CommentTok{\#}
+\CommentTok{\# COMPRESS: [ gzip | bzip2 | lz4 | lzma | lzop | xz ]}
+\CommentTok{\#}
+
+\VariableTok{COMPRESS=}\NormalTok{xz}
+
+\CommentTok{\#}
+\CommentTok{\# NFS Section of the config.}
+\CommentTok{\#}
+
+\CommentTok{\#}
+\CommentTok{\# DEVICE: ...}
+\CommentTok{\#}
+\CommentTok{\# Specify a specific network interface, like eth0}
+\CommentTok{\# Overridden by optional ip= or BOOTIF= bootarg}
+\CommentTok{\#}
+
+\VariableTok{DEVICE=}
+
+\CommentTok{\#}
+\CommentTok{\# NFSROOT: [ auto | HOST:MOUNT ]}
+\CommentTok{\#}
+
+\VariableTok{NFSROOT=}\NormalTok{auto}
+
+\CommentTok{\#}
+\CommentTok{\# RUNSIZE: ...}
+\CommentTok{\#}
+\CommentTok{\# The size of the /run tmpfs mount point, like 256M or 10\%}
+\CommentTok{\# Overridden by optional initramfs.runsize= bootarg}
+\CommentTok{\#}
+
+\VariableTok{RUNSIZE=}\NormalTok{10}\ExtensionTok{\%}
+\end{Highlighting}
+\end{Shaded}
+
+\hypertarget{deployermultistrap.config-configuration-multistrap-pour-la-cruxe9ation-du-systuxe8me-de-fichiers-racine}{%
+\section{\texorpdfstring{\texttt{deployer/multistrap.config}:
+configuration \emph{multistrap} pour la création du système de fichiers
+racine}{deployer/multistrap.config: configuration multistrap pour la création du système de fichiers racine}}\label{deployermultistrap.config-configuration-multistrap-pour-la-cruxe9ation-du-systuxe8me-de-fichiers-racine}}
+
+\begin{Shaded}
+\begin{Highlighting}[]
+\KeywordTok{[General]}
+\DataTypeTok{unpack}\OtherTok{=}\KeywordTok{true}
+\DataTypeTok{bootstrap}\OtherTok{=}\StringTok{DRBL Debian}
+\DataTypeTok{aptsources}\OtherTok{=}\StringTok{Debian}
+\DataTypeTok{addimportant}\OtherTok{=}\KeywordTok{true}
+
+\KeywordTok{[Debian]}
+\DataTypeTok{packages}\OtherTok{=}\StringTok{nfs{-}common linux{-}image{-}amd64 parted systemd udev strace zstd dialog lolcat gdisk gawk pigz pv clonezilla partclone partimage cifs{-}utils}
+\DataTypeTok{source}\OtherTok{=}\StringTok{http://http.debian.net/debian}
+\DataTypeTok{keyring}\OtherTok{=}\StringTok{debian{-}archive{-}keyring}
+\DataTypeTok{suite}\OtherTok{=}\StringTok{bullseye}
+\DataTypeTok{components}\OtherTok{=}\StringTok{main contrib non{-}free}
+\end{Highlighting}
+\end{Shaded}
+
+\hypertarget{deployerconfigure.sh-script-de-configuration-du-systuxe8me-de-fichier-racine-uxe0-exuxe9cuter-en-chroot}{%
+\section{\texorpdfstring{\texttt{deployer/configure.sh}: script de
+configuration du système de fichier racine à exécuter en
+\texttt{chroot}}{deployer/configure.sh: script de configuration du système de fichier racine à exécuter en chroot}}\label{deployerconfigure.sh-script-de-configuration-du-systuxe8me-de-fichier-racine-uxe0-exuxe9cuter-en-chroot}}
+
+\begin{Shaded}
+\begin{Highlighting}[]
+\CommentTok{\#!/bin/bash}
+
+\KeywordTok{set} \ExtensionTok{{-}e}
+
+\BuiltInTok{export} \VariableTok{DEBIAN\_FRONTEND=}\NormalTok{noninteractive }\VariableTok{DEBCONF\_NONINTERACTIVE\_SEEN=}\NormalTok{true}
+\BuiltInTok{export} \VariableTok{LC\_ALL=}\NormalTok{C }\VariableTok{LANGUAGE=}\NormalTok{C }\VariableTok{LANG=}\NormalTok{C}
+
+\ExtensionTok{dpkg}\NormalTok{ {-}{-}configure {-}a}
+
+\ExtensionTok{apt{-}get}\NormalTok{ autoremove {-}{-}purge}
+\ExtensionTok{apt{-}get}\NormalTok{ clean}
+
+\ExtensionTok{update{-}initramfs}\NormalTok{ {-}u}
+
+\ExtensionTok{systemctl}\NormalTok{ enable bootiful{-}deploy{-}log.service}
+
+\BuiltInTok{echo} \StringTok{"root:bootiful"} \KeywordTok{|} \ExtensionTok{chpasswd}
+\end{Highlighting}
+\end{Shaded}
+
+\hypertarget{deployerbootiful-deploy-init-script-dinitialisation-du-duxe9ploiement}{%
+\section{\texorpdfstring{\texttt{deployer/bootiful-deploy-init}: script
+d'initialisation du
+déploiement}{deployer/bootiful-deploy-init: script d'initialisation du déploiement}}\label{deployerbootiful-deploy-init-script-dinitialisation-du-duxe9ploiement}}
+
+\begin{Shaded}
+\begin{Highlighting}[]
+\CommentTok{\#!/bin/bash}
+
+\BuiltInTok{umask}\NormalTok{ {-}S 0000 }\OperatorTok{\&\textgreater{}}\NormalTok{/dev/null}
+\FunctionTok{clear}
+\ExtensionTok{/usr/games/lolcat}\NormalTok{ {-}a {-}d 6 {-}s 20 {-}F 0.5 }\OperatorTok{\textless{}\textless{}\textquotesingle{}EOF\textquotesingle{}}
+\NormalTok{ .o8                               .    o8o   .o88o.             oooo}
+\NormalTok{"888                             .o8    \textasciigrave{}"\textquotesingle{}   888 \textasciigrave{}"             \textasciigrave{}888}
+\NormalTok{ 888oooo.   .ooooo.   .ooooo.  .o888oo oooo  o888oo  oooo  oooo   888}
+\NormalTok{ d88\textquotesingle{} \textasciigrave{}88b d88\textquotesingle{} \textasciigrave{}88b d88\textquotesingle{} \textasciigrave{}88b   888   \textasciigrave{}888   888    \textasciigrave{}888  \textasciigrave{}888   888}
+\NormalTok{ 888   888 888   888 888   888   888    888   888     888   888   888}
+\NormalTok{ 888   888 888   888 888   888   888 .  888   888     888   888   888}
+\NormalTok{ \textasciigrave{}Y8bod8P\textquotesingle{} \textasciigrave{}Y8bod8P\textquotesingle{} \textasciigrave{}Y8bod8P\textquotesingle{}   "888" o888o o888o    \textasciigrave{}V88V"V8P\textquotesingle{} o888o}
+\OperatorTok{EOF}
+\BuiltInTok{declare} \VariableTok{logo\_pressed\_key}
+\BuiltInTok{read}\NormalTok{ {-}t 0.001 {-}n 1 {-}s {-}r }\VariableTok{logo\_pressed\_key}
+\BuiltInTok{readonly} \VariableTok{logo\_pressed\_key}
+
+\FunctionTok{select\_next\_action()} \KeywordTok{\{}
+    \BuiltInTok{local} \VariableTok{next\_action\_pressed\_key}
+    \KeywordTok{while} \FunctionTok{true}\KeywordTok{;} \KeywordTok{do}
+        \BuiltInTok{echo}
+        \BuiltInTok{echo} \StringTok{"Press \textquotesingle{}d\textquotesingle{} to restart deployment"}
+        \BuiltInTok{echo} \StringTok{"Press \textquotesingle{}s\textquotesingle{} to start an interactive command{-}line shell"}
+        \BuiltInTok{echo} \StringTok{"Press \textquotesingle{}r\textquotesingle{} to reboot"}
+        \BuiltInTok{echo} \StringTok{"Press \textquotesingle{}p\textquotesingle{} to power off"}
+
+        \BuiltInTok{read}\NormalTok{ {-}n 1 {-}s {-}r }\VariableTok{next\_action\_pressed\_key}
+        \KeywordTok{case} \StringTok{"}\VariableTok{$next\_action\_pressed\_key}\StringTok{"}\KeywordTok{ in}
+\NormalTok{            [dD]}\KeywordTok{)}
+                \BuiltInTok{echo} \StringTok{"Restarting deployment..."}
+                \BuiltInTok{break}
+                \KeywordTok{;;}
+\NormalTok{            [sS]}\KeywordTok{)}
+                \BuiltInTok{echo} \StringTok{"Starting an interactive command{-}line shell..."}
+                \ExtensionTok{/bin/bash}\NormalTok{ {-}i}
+                \KeywordTok{;;}
+\NormalTok{            [rR]}\KeywordTok{)}
+                \BuiltInTok{echo} \StringTok{"Rebooting..."}
+                \ExtensionTok{reboot}
+                \KeywordTok{;;}
+\NormalTok{            [pP]}\KeywordTok{)}
+                \BuiltInTok{echo} \StringTok{"Powering off..."}
+                \ExtensionTok{poweroff}
+                \KeywordTok{;;}
+\NormalTok{            *}\KeywordTok{)}
+                \BuiltInTok{echo} \StringTok{"Error: No action defined for key \textquotesingle{}}\VariableTok{$next\_action\_pressed\_key}\StringTok{\textquotesingle{}"}
+                \KeywordTok{;;}
+        \KeywordTok{esac}
+    \KeywordTok{done}
+\KeywordTok{\}}
+
+\KeywordTok{if [[} \StringTok{"}\VariableTok{$logo\_pressed\_key}\StringTok{"}\NormalTok{ =\textasciitilde{} \^{}[sS]$}\KeywordTok{ ]]}\NormalTok{; }\KeywordTok{then}
+    \BuiltInTok{echo} \StringTok{"Skipping deployment...."}
+    \ExtensionTok{/bin/bash}\NormalTok{ {-}i}
+    \ExtensionTok{select\_next\_action}
+\KeywordTok{fi}
+
+\KeywordTok{while}\NormalTok{ ! }\ExtensionTok{bootiful{-}deploy}\KeywordTok{;} \KeywordTok{do}
+    \BuiltInTok{echo} \StringTok{"Error in deployment."}
+    \ExtensionTok{select\_next\_action}
+\KeywordTok{done}
+
+\BuiltInTok{echo} \StringTok{"Deployment successful. Rebooting..."}
+\ExtensionTok{reboot}
+
+\end{Highlighting}
+\end{Shaded}
+
+\hypertarget{deployerbootiful-common-script-de-duxe9finition-des-fonctions-communes-aux-scripts-bootiful-}{%
+\section{\texorpdfstring{\texttt{deployer/bootiful-common}: script de
+définition des fonctions communes aux scripts
+\texttt{bootiful-*}}{deployer/bootiful-common: script de définition des fonctions communes aux scripts bootiful-*}}\label{deployerbootiful-common-script-de-duxe9finition-des-fonctions-communes-aux-scripts-bootiful-}}
+
+\begin{Shaded}
+\begin{Highlighting}[]
+\CommentTok{\#!/bin/bash}
+
+\KeywordTok{if [[} \StringTok{"}\VariableTok{$\{BASH\_SOURCE[0]\}}\StringTok{"} \OtherTok{==} \StringTok{"}\VariableTok{$0}\StringTok{"}\KeywordTok{ ]]}\NormalTok{; }\KeywordTok{then}
+    \BuiltInTok{echo} \OperatorTok{\textgreater{}\&2} \StringTok{"Error: script \textquotesingle{}}\VariableTok{$0}\StringTok{\textquotesingle{} must be sourced, not executed."}
+    \BuiltInTok{return}\NormalTok{ 1}
+\KeywordTok{fi}
+
+\KeywordTok{if [[} \OtherTok{{-}n} \StringTok{"}\VariableTok{$BOOTIFUL\_COMMON\_SOURCED}\StringTok{"}\KeywordTok{ ]]}\NormalTok{; }\KeywordTok{then}
+    \BuiltInTok{echo} \OperatorTok{\textgreater{}\&2} \StringTok{"Warning: script \textquotesingle{}}\VariableTok{$0}\StringTok{\textquotesingle{} sourced more than once."}
+    \BuiltInTok{return}\NormalTok{ 0}
+\KeywordTok{fi}
+
+\BuiltInTok{readonly} \VariableTok{BOOTIFUL\_COMMON\_SOURCED=}\NormalTok{true}
+
+\FunctionTok{echo\_err()} \KeywordTok{\{}
+    \BuiltInTok{echo} \OperatorTok{\textgreater{}\&2} \StringTok{"$"}
+\KeywordTok{\}}
+
+\CommentTok{\# Writes an error message and a stack trace to stderr, then exits the current}
+\CommentTok{\# shell with the error status code 1.}
+\CommentTok{\#}
+\CommentTok{\# Warning: if called in a sub{-}shell, the error messages are written to stderr}
+\CommentTok{\#          but only the sub{-}shell is exited. The parent shell should always}
+\CommentTok{\#          check the sub{-}shells exit status codes and call \textasciigrave{}fatal\_error\textasciigrave{} if a}
+\CommentTok{\#          non{-}0 exit status is returned.}
+\FunctionTok{fatal\_error()} \KeywordTok{\{}
+    \BuiltInTok{local}\NormalTok{ {-}r }\VariableTok{message=}\StringTok{"}\VariableTok{$\{1:{-}}\NormalTok{unknown reason}\VariableTok{\}}\StringTok{"}
+
+    \ExtensionTok{echo\_err} \StringTok{"Fatal error: }\VariableTok{$message}\StringTok{"}
+
+    \ExtensionTok{echo\_err} \StringTok{"Stack trace:"}
+    \BuiltInTok{local} \VariableTok{frame=}\NormalTok{0}
+    \KeywordTok{while} \OperatorTok{\textgreater{}\&2} \BuiltInTok{caller} \VariableTok{$frame}\KeywordTok{;} \KeywordTok{do}
+        \KeywordTok{((}\NormalTok{frame++}\KeywordTok{))}
+    \KeywordTok{done}
+
+    \BuiltInTok{exit}\NormalTok{ 1}
+\KeywordTok{\}}
+
+\CommentTok{\# If the INT signal (ctrl+c) is received, a fatal error is thrown}
+\FunctionTok{fatal\_error\_on\_sigint()} \KeywordTok{\{}
+    \ExtensionTok{fatal\_error} \StringTok{"SIGINT received"}
+\KeywordTok{\}}
+\BuiltInTok{trap}\NormalTok{ fatal\_error\_on\_sigint INT}
+
+\BuiltInTok{declare}\NormalTok{ {-}a }\VariableTok{exit\_callbacks=()}
+\FunctionTok{execute\_exit\_callbacks()} \KeywordTok{\{}
+    \KeywordTok{for} \ExtensionTok{exit\_callback}\NormalTok{ in }\StringTok{"}\VariableTok{$\{exit\_callbacks[]\}}\StringTok{"}\KeywordTok{;} \KeywordTok{do}
+        \StringTok{"}\VariableTok{$exit\_callback}\StringTok{"}
+    \KeywordTok{done}
+\KeywordTok{\}}
+\BuiltInTok{trap} \StringTok{\textquotesingle{}execute\_exit\_callbacks\textquotesingle{}}\NormalTok{ EXIT}
+
+\FunctionTok{add\_exit\_callback()} \KeywordTok{\{}
+    \BuiltInTok{local}\NormalTok{ {-}r }\VariableTok{exit\_callback\_function=}\StringTok{"}\VariableTok{$1}\StringTok{"}
+    \VariableTok{exit\_callbacks+=(}\StringTok{"}\VariableTok{$exit\_callback\_function}\StringTok{"}\VariableTok{)}
+\KeywordTok{\}}
+
+\BuiltInTok{declare}\NormalTok{ {-}a }\VariableTok{step\_names=()}
+\BuiltInTok{declare}\NormalTok{ {-}a }\VariableTok{step\_timestamps=()}
+\BuiltInTok{declare}\NormalTok{ {-}a }\VariableTok{step\_durations=()}
+\BuiltInTok{declare}\NormalTok{ {-}a }\VariableTok{step\_types=()}
+
+\BuiltInTok{readonly} \VariableTok{STEP\_TYPE\_BATCH=}\StringTok{"batch"}
+\BuiltInTok{readonly} \VariableTok{STEP\_TYPE\_INTERACTIVE=}\StringTok{"interactive"}
+
+\FunctionTok{timestamp\_now()} \KeywordTok{\{}
+    \FunctionTok{date}\NormalTok{ +\%s}
+\KeywordTok{\}}
+
+\FunctionTok{finish\_step()} \KeywordTok{\{}
+    \BuiltInTok{local}\NormalTok{ {-}r }\VariableTok{step\_name=}\StringTok{"}\VariableTok{$1}\StringTok{"}
+    \BuiltInTok{local}\NormalTok{ {-}r }\VariableTok{step\_start\_timestamp=}\StringTok{"}\VariableTok{$2}\StringTok{"}
+    \BuiltInTok{local}\NormalTok{ {-}r }\VariableTok{step\_finish\_timestamp=}\StringTok{"}\VariableTok{$3}\StringTok{"}
+
+    \VariableTok{step\_durations+=($((}\StringTok{"}\VariableTok{$step\_finish\_timestamp}\StringTok{"}\NormalTok{ {-} }\StringTok{"}\VariableTok{$\{step\_start\_timestamp\}}\StringTok{"}\VariableTok{)))}
+    \ExtensionTok{echo\_err} \StringTok{"Finished }\VariableTok{$step\_name}\StringTok{ (duration: }\VariableTok{$\{step\_durations[{-}1]\}}\StringTok{s)"}
+\KeywordTok{\}}
+
+\FunctionTok{print\_step\_durations()} \KeywordTok{\{}
+
+    \KeywordTok{if [[} \StringTok{"$\{\#step\_timestamps[]\}"} \OtherTok{{-}gt}\NormalTok{ 1}\KeywordTok{ ]]}\NormalTok{; }\KeywordTok{then}
+        \ExtensionTok{finish\_step} \StringTok{"}\VariableTok{$\{step\_names[{-}1]\}}\StringTok{"} \KeywordTok{\textbackslash{}}
+            \StringTok{"}\VariableTok{$\{step\_timestamps[{-}1]\}}\StringTok{"} \KeywordTok{\textbackslash{}}
+            \StringTok{"}\VariableTok{$(}\ExtensionTok{timestamp\_now}\VariableTok{)}\StringTok{"}
+    \KeywordTok{fi}
+
+    \BuiltInTok{local} \VariableTok{total\_batch\_duration=}\NormalTok{0}
+    \BuiltInTok{local} \VariableTok{total\_interactive\_duration=}\NormalTok{0}
+    \BuiltInTok{local} \VariableTok{total\_duration=}\NormalTok{0}
+    \BuiltInTok{local} \VariableTok{step\_name}
+    \BuiltInTok{local} \VariableTok{step\_type}
+    \BuiltInTok{local} \VariableTok{step\_duration}
+    \BuiltInTok{local} \VariableTok{step\_number}
+
+    \ExtensionTok{echo\_err}
+    \ExtensionTok{echo\_err} \StringTok{"Steps duration summary:"}
+
+    \KeywordTok{for} \ExtensionTok{i}\NormalTok{ in }\StringTok{"$\{!step\_durations[]\}"}\KeywordTok{;} \KeywordTok{do}
+        \VariableTok{step\_name=}\StringTok{"}\VariableTok{$\{step\_names[$i]\}}\StringTok{"}
+        \VariableTok{step\_duration=}\StringTok{"}\VariableTok{$\{step\_durations[$i]\}}\StringTok{"}
+        \VariableTok{step\_type=}\StringTok{"}\VariableTok{$\{step\_types[$i]\}}\StringTok{"}
+        \VariableTok{step\_number=$((}\NormalTok{i + 1}\VariableTok{))}
+
+        \ExtensionTok{echo\_err} \StringTok{"}\VariableTok{$step\_number}\StringTok{ {-} }\VariableTok{$step\_name}\StringTok{ took }\VariableTok{$\{step\_duration\}}\StringTok{ seconds (}\VariableTok{$step\_type}\StringTok{)"}
+
+        \KeywordTok{case} \StringTok{"}\VariableTok{$step\_type}\StringTok{"}\KeywordTok{ in}
+        \StringTok{"}\VariableTok{$STEP\_TYPE\_BATCH}\StringTok{"}\KeywordTok{)}
+            \KeywordTok{((}\NormalTok{total\_batch\_duration += }\StringTok{"}\VariableTok{$step\_duration}\StringTok{"}\KeywordTok{))}
+            \KeywordTok{;;}
+        \StringTok{"}\VariableTok{$STEP\_TYPE\_INTERACTIVE}\StringTok{"}\KeywordTok{)}
+            \KeywordTok{((}\NormalTok{total\_interactive\_duration += }\StringTok{"}\VariableTok{$step\_duration}\StringTok{"}\KeywordTok{))}
+            \KeywordTok{;;}
+        \KeywordTok{esac}
+
+        \KeywordTok{((}\NormalTok{total\_duration += }\StringTok{"}\VariableTok{$step\_duration}\StringTok{"}\KeywordTok{))}
+    \KeywordTok{done}
+
+    \ExtensionTok{echo\_err}
+    \ExtensionTok{echo\_err} \StringTok{"Total batch duration: }\VariableTok{$\{total\_batch\_duration\}}\StringTok{s"}
+    \ExtensionTok{echo\_err} \StringTok{"Total interactive duration: }\VariableTok{$\{total\_interactive\_duration\}}\StringTok{s"}
+    \ExtensionTok{echo\_err} \StringTok{"Total duration: }\VariableTok{$\{total\_duration\}}\StringTok{s"}
+\KeywordTok{\}}
+
+\FunctionTok{start\_step()} \KeywordTok{\{}
+    \VariableTok{step\_timestamps+=(}\StringTok{"}\VariableTok{$(}\ExtensionTok{timestamp\_now}\VariableTok{)}\StringTok{"}\VariableTok{)}
+    \VariableTok{step\_names+=(}\StringTok{"}\VariableTok{$1}\StringTok{"}\VariableTok{)}
+    \VariableTok{step\_types+=(}\StringTok{"}\VariableTok{$2}\StringTok{"}\VariableTok{)}
+
+    \BuiltInTok{local}\NormalTok{ {-}r }\VariableTok{steps\_count=}\StringTok{"$\{\#step\_timestamps[]\}"}
+
+    \KeywordTok{if [[} \VariableTok{$steps\_count} \OtherTok{{-}eq}\NormalTok{ 1}\KeywordTok{ ]]}\NormalTok{; }\KeywordTok{then}
+        \ExtensionTok{add\_exit\_callback} \StringTok{"print\_step\_durations"}
+    \KeywordTok{elif [[} \StringTok{"$\{\#step\_timestamps[]\}"} \OtherTok{{-}gt}\NormalTok{ 1}\KeywordTok{ ]]}\NormalTok{; }\KeywordTok{then}
+        \ExtensionTok{finish\_step} \StringTok{"}\VariableTok{$\{step\_names[{-}2]\}}\StringTok{"} \KeywordTok{\textbackslash{}}
+            \StringTok{"}\VariableTok{$\{step\_timestamps[{-}2]\}}\StringTok{"} \KeywordTok{\textbackslash{}}
+            \StringTok{"}\VariableTok{$\{step\_timestamps[{-}1]\}}\StringTok{"}
+    \KeywordTok{fi}
+
+    \ExtensionTok{echo\_err} \StringTok{"Started }\VariableTok{$\{step\_names[{-}1]\}}\StringTok{"}
+\KeywordTok{\}}
+
+\FunctionTok{start\_step\_batch()} \KeywordTok{\{}
+    \BuiltInTok{local}\NormalTok{ {-}r }\VariableTok{step\_name=}\StringTok{"}\VariableTok{$1}\StringTok{"}
+    \ExtensionTok{start\_step} \StringTok{"}\VariableTok{$step\_name}\StringTok{"} \StringTok{"}\VariableTok{$STEP\_TYPE\_BATCH}\StringTok{"}
+\KeywordTok{\}}
+
+\FunctionTok{start\_step\_interactive()} \KeywordTok{\{}
+    \BuiltInTok{local}\NormalTok{ {-}r }\VariableTok{step\_name=}\StringTok{"}\VariableTok{$1}\StringTok{"}
+    \ExtensionTok{start\_step} \StringTok{"}\VariableTok{$step\_name}\StringTok{"} \StringTok{"}\VariableTok{$STEP\_TYPE\_INTERACTIVE}\StringTok{"}
+\KeywordTok{\}}
+
+\FunctionTok{warning()} \KeywordTok{\{}
+    \BuiltInTok{local}\NormalTok{ {-}r }\VariableTok{message=}\StringTok{"}\VariableTok{$1}\StringTok{"}
+
+    \ExtensionTok{echo\_err}
+    \ExtensionTok{echo\_err} \StringTok{"Warning: }\VariableTok{$message}\StringTok{"}
+
+    \BuiltInTok{local} \VariableTok{pressed\_key}
+    \KeywordTok{while} \FunctionTok{true}\KeywordTok{;} \KeywordTok{do}
+        \ExtensionTok{echo\_err}
+        \ExtensionTok{echo\_err} \StringTok{"Continue? (y/n) "}
+
+        \BuiltInTok{read}\NormalTok{ {-}n 1 {-}s {-}r }\VariableTok{pressed\_key}
+        \KeywordTok{case} \StringTok{"}\VariableTok{$pressed\_key}\StringTok{"}\KeywordTok{ in}
+\NormalTok{        [yY]}\KeywordTok{)}
+            \ExtensionTok{echo\_err} \StringTok{"Continuing..."}
+            \BuiltInTok{return}\NormalTok{ 0}
+            \KeywordTok{;;}
+\NormalTok{        [nN]}\KeywordTok{)}
+            \ExtensionTok{echo\_err} \StringTok{"Aborting..."}
+            \BuiltInTok{exit}\NormalTok{ 1}
+            \KeywordTok{;;}
+\NormalTok{        *}\KeywordTok{)}
+            \ExtensionTok{echo\_err} \StringTok{"Invalid key \textquotesingle{}}\VariableTok{$pressed\_key}\StringTok{\textquotesingle{}"}
+            \KeywordTok{;;}
+        \KeywordTok{esac}
+    \KeywordTok{done}
+\KeywordTok{\}}
+
+\FunctionTok{validation\_error()} \KeywordTok{\{}
+    \BuiltInTok{local}\NormalTok{ {-}r }\VariableTok{value=}\StringTok{"}\VariableTok{$1}\StringTok{"}
+    \BuiltInTok{local}\NormalTok{ {-}r }\VariableTok{validation\_error\_message=}\StringTok{"}\VariableTok{$2}\StringTok{"}
+    \BuiltInTok{local}\NormalTok{ {-}r }\VariableTok{fatal\_error\_message=}\StringTok{"}\VariableTok{$3}\StringTok{"}
+    \ExtensionTok{echo\_err} \StringTok{"Validation error: value \textquotesingle{}}\VariableTok{$value}\StringTok{\textquotesingle{} }\VariableTok{$validation\_error\_message}\StringTok{."}
+    \ExtensionTok{fatal\_error} \StringTok{"}\VariableTok{$fatal\_error\_message}\StringTok{"}
+\KeywordTok{\}}
+
+\FunctionTok{validate\_not\_empty()} \KeywordTok{\{}
+    \BuiltInTok{local}\NormalTok{ {-}r }\VariableTok{value=}\StringTok{"}\VariableTok{$1}\StringTok{"}
+    \BuiltInTok{local}\NormalTok{ {-}r }\VariableTok{error\_message=}\StringTok{"}\VariableTok{$2}\StringTok{"}
+
+    \KeywordTok{if [[} \OtherTok{{-}z} \StringTok{"}\VariableTok{$value}\StringTok{"}\KeywordTok{ ]]}\NormalTok{; }\KeywordTok{then}
+        \ExtensionTok{validation\_error} \StringTok{"}\VariableTok{$value}\StringTok{"} \StringTok{"is empty"} \StringTok{"}\VariableTok{$error\_message}\StringTok{"}
+    \KeywordTok{fi}
+\KeywordTok{\}}
+
+\FunctionTok{validate\_with\_regex()} \KeywordTok{\{}
+    \BuiltInTok{local}\NormalTok{ {-}r }\VariableTok{value=}\StringTok{"}\VariableTok{$1}\StringTok{"}
+    \BuiltInTok{local}\NormalTok{ {-}r }\VariableTok{regex\_pattern=}\StringTok{"}\VariableTok{$2}\StringTok{"}
+    \BuiltInTok{local}\NormalTok{ {-}r }\VariableTok{fatal\_error\_message=}\StringTok{"}\VariableTok{$3}\StringTok{"}
+    \BuiltInTok{local}\NormalTok{ {-}r }\VariableTok{validation\_error\_message=}\StringTok{"}\VariableTok{$\{4:{-}}\StringTok{"does not match regex pattern \textquotesingle{}}\VariableTok{$regex\_pattern}\StringTok{\textquotesingle{}"}\VariableTok{\}}\StringTok{"}
+
+    \KeywordTok{if [[} \OtherTok{!} \StringTok{"}\VariableTok{$value}\StringTok{"}\NormalTok{ =\textasciitilde{} }\VariableTok{$regex\_pattern}\KeywordTok{ ]]}\NormalTok{; }\KeywordTok{then}
+        \ExtensionTok{validation\_error} \StringTok{"}\VariableTok{$value}\StringTok{"} \StringTok{"}\VariableTok{$validation\_error\_message}\StringTok{"} \StringTok{"}\VariableTok{$fatal\_error\_message}\StringTok{"}
+    \KeywordTok{fi}
+\KeywordTok{\}}
+
+\FunctionTok{validate\_uint()} \KeywordTok{\{}
+    \BuiltInTok{local}\NormalTok{ {-}r }\VariableTok{value=}\StringTok{"}\VariableTok{$1}\StringTok{"}
+    \BuiltInTok{local}\NormalTok{ {-}r }\VariableTok{error\_message=}\StringTok{"}\VariableTok{$2}\StringTok{"}
+    \BuiltInTok{local}\NormalTok{ {-}r }\VariableTok{regex\_pattern=}\StringTok{\textquotesingle{}\^{}[0{-}9]+$\textquotesingle{}}
+
+    \ExtensionTok{validate\_with\_regex} \StringTok{"}\VariableTok{$value}\StringTok{"} \StringTok{"}\VariableTok{$regex\_pattern}\StringTok{"} \StringTok{"}\VariableTok{$error\_message}\StringTok{"} \StringTok{"is not a positive integer"}
+\KeywordTok{\}}
+
+\FunctionTok{validate\_nonzero\_uint()} \KeywordTok{\{}
+    \BuiltInTok{local}\NormalTok{ {-}r }\VariableTok{value=}\StringTok{"}\VariableTok{$1}\StringTok{"}
+    \BuiltInTok{local}\NormalTok{ {-}r }\VariableTok{error\_message=}\StringTok{"}\VariableTok{$2}\StringTok{"}
+
+    \ExtensionTok{validate\_uint} \StringTok{"}\VariableTok{$value}\StringTok{"} \StringTok{"}\VariableTok{$error\_message}\StringTok{"}
+
+    \KeywordTok{if [[} \StringTok{"}\VariableTok{$value}\StringTok{"} \OtherTok{{-}le}\NormalTok{ 0}\KeywordTok{ ]]}\NormalTok{; }\KeywordTok{then}
+        \ExtensionTok{validation\_error} \StringTok{"}\VariableTok{$value}\StringTok{"} \StringTok{"is not bigger than zero"} \StringTok{"}\VariableTok{$error\_message}\StringTok{"}
+    \KeywordTok{fi}
+\KeywordTok{\}}
+
+\FunctionTok{validate\_file\_exists()} \KeywordTok{\{}
+    \BuiltInTok{local}\NormalTok{ {-}r }\VariableTok{value=}\StringTok{"}\VariableTok{$1}\StringTok{"}
+    \BuiltInTok{local}\NormalTok{ {-}r }\VariableTok{error\_message=}\StringTok{"}\VariableTok{$\{2:{-}}\NormalTok{File does not exist}\VariableTok{\}}\StringTok{"}
+
+    \KeywordTok{if [[} \OtherTok{!} \OtherTok{{-}f} \StringTok{"}\VariableTok{$value}\StringTok{"}\KeywordTok{ ]]}\NormalTok{; }\KeywordTok{then}
+        \ExtensionTok{validation\_error} \StringTok{"}\VariableTok{$value}\StringTok{"} \StringTok{"is not the path of an existing regular file"} \StringTok{"}\VariableTok{$error\_message}\StringTok{"}
+    \KeywordTok{fi}
+\KeywordTok{\}}
+
+\CommentTok{\# Validates that the given file exists but do not test if it\textquotesingle{}s a regular file}
+\CommentTok{\# like \textasciigrave{}validate\_file\_exists\textasciigrave{}.}
+\FunctionTok{validate\_exists()} \KeywordTok{\{}
+    \BuiltInTok{local}\NormalTok{ {-}r }\VariableTok{value=}\StringTok{"}\VariableTok{$1}\StringTok{"}
+    \BuiltInTok{local}\NormalTok{ {-}r }\VariableTok{error\_message=}\StringTok{"}\VariableTok{$2}\StringTok{"}
+
+    \KeywordTok{if [[} \OtherTok{!} \OtherTok{{-}e} \StringTok{"}\VariableTok{$value}\StringTok{"}\KeywordTok{ ]]}\NormalTok{; }\KeywordTok{then}
+        \ExtensionTok{validation\_error} \StringTok{"}\VariableTok{$value}\StringTok{"} \StringTok{"is not an existing path"} \StringTok{"}\VariableTok{$error\_message}\StringTok{"}
+    \KeywordTok{fi}
+\KeywordTok{\}}
+
+\CommentTok{\# Usage:}
+\CommentTok{\#   ensure\_variable VARIABLE\_NAME COMPUTATION\_FUNCTION VALIDATION\_FUNCTION}
+\CommentTok{\#}
+\CommentTok{\# Description:}
+\CommentTok{\#   Ensures that a readonly global variable named VARIABLE\_NAME is declared,}
+\CommentTok{\#   that it\textquotesingle{}s value is initialized using COMPUTATION\_FUNCTION and validated}
+\CommentTok{\#   using VALIDATION\_FUNCTION.}
+\CommentTok{\#}
+\CommentTok{\#   The value is computed, validated and set to a readonly global variable}
+\CommentTok{\#   during the first call to this function. Nothing more is done on}
+\CommentTok{\#   subsequent calls if the variable is already set.}
+\CommentTok{\#}
+\CommentTok{\#   If this function returns, the variable VARIABLE\_NAME should be safe to}
+\CommentTok{\#   use without any further validation. The variable can be accessed from}
+\CommentTok{\#   it\textquotesingle{}s name, or using an expression like \textasciigrave{}$\{!VARIABLE\_NAME\}\textasciigrave{}.}
+\CommentTok{\#}
+\CommentTok{\# Arguments:}
+\CommentTok{\#   VARIABLE\_NAME}
+\CommentTok{\#       The name of the variable to ensure.}
+\CommentTok{\#}
+\CommentTok{\#   COMPUTATION\_FUNCTION}
+\CommentTok{\#       A function that takes 0 arguments, writes the computed value to}
+\CommentTok{\#       standard output and returns 0 if the computation is successful.}
+\CommentTok{\#}
+\CommentTok{\#   VALIDATION\_FUNCTION}
+\CommentTok{\#       A function that takes the computed value and returns 0 if the value}
+\CommentTok{\#       is valid.}
+\CommentTok{\#}
+\CommentTok{\# Exit status code:}
+\CommentTok{\#   0  when no error is encountered. If any error is encountered during}
+\CommentTok{\#      declaration, computation, validation or assignation, the current shell}
+\CommentTok{\#      will be exited by a call to \textasciigrave{}fatal\_error\textasciigrave{} so the function will never}
+\CommentTok{\#      return.}
+\FunctionTok{ensure\_variable()} \KeywordTok{\{}
+    \BuiltInTok{local}\NormalTok{ {-}r }\VariableTok{variable\_name=}\StringTok{"}\VariableTok{$1}\StringTok{"}
+    \BuiltInTok{local}\NormalTok{ {-}r }\VariableTok{computation\_function=}\StringTok{"}\VariableTok{$2}\StringTok{"}
+    \BuiltInTok{local}\NormalTok{ {-}r }\VariableTok{validation\_function=}\StringTok{"}\VariableTok{$3}\StringTok{"}
+
+    \KeywordTok{if [[}\NormalTok{ {-}v }\StringTok{"}\VariableTok{$variable\_name}\StringTok{"}\KeywordTok{ ]]}\NormalTok{; }\KeywordTok{then}
+        \BuiltInTok{return}\NormalTok{ 0}
+    \KeywordTok{fi}
+
+    \BuiltInTok{local} \VariableTok{computed\_value} \KeywordTok{||}
+        \ExtensionTok{fatal\_error} \StringTok{"cannot declare local variable \textquotesingle{}computed\_value\textquotesingle{}"}
+
+    \VariableTok{computed\_value=}\StringTok{"}\VariableTok{$(}\StringTok{"}\VariableTok{$computation\_function}\StringTok{"}\VariableTok{)}\StringTok{"} \KeywordTok{||}
+        \ExtensionTok{fatal\_error} \StringTok{"cannot compute value of \textquotesingle{}}\VariableTok{$variable\_name}\StringTok{\textquotesingle{} with \textquotesingle{}}\VariableTok{$computation\_function}\StringTok{\textquotesingle{}"}
+
+    \StringTok{"}\VariableTok{$validation\_function}\StringTok{"} \StringTok{"}\VariableTok{$computed\_value}\StringTok{"} \KeywordTok{||}
+        \ExtensionTok{fatal\_error} \StringTok{"cannot validate value of \textquotesingle{}}\VariableTok{$variable\_name}\StringTok{\textquotesingle{} with \textquotesingle{}}\VariableTok{$validation\_function}\StringTok{\textquotesingle{}"}
+
+    \BuiltInTok{declare}\NormalTok{ {-}g {-}r }\StringTok{"}\VariableTok{$variable\_name}\StringTok{"}\VariableTok{=}\StringTok{"}\VariableTok{$computed\_value}\StringTok{"} \KeywordTok{||}
+        \ExtensionTok{fatal\_error} \StringTok{"cannot initialize global readonly variable \textquotesingle{}}\VariableTok{$variable\_name}\StringTok{\textquotesingle{} with value \textquotesingle{}}\VariableTok{$computed\_value}\StringTok{\textquotesingle{}"}
+
+    \BuiltInTok{local}\NormalTok{ {-}r }\VariableTok{log\_variable\_name=}\StringTok{"}\VariableTok{$(}\BuiltInTok{echo} \StringTok{"}\VariableTok{$\{variable\_name\^{}\}}\StringTok{"} \KeywordTok{|} \FunctionTok{tr} \StringTok{\textquotesingle{}\_\textquotesingle{}} \StringTok{\textquotesingle{} \textquotesingle{}}\VariableTok{)}\StringTok{"}
+    \ExtensionTok{echo\_err} \StringTok{"}\VariableTok{$log\_variable\_name}\StringTok{: }\VariableTok{$\{!variable\_name\}}\StringTok{"}
+
+    \BuiltInTok{return}\NormalTok{ 0}
+\KeywordTok{\}}
+
+\CommentTok{\# Ensures $remote\_address is declared, initialized and valid.}
+\FunctionTok{ensure\_remote\_address()} \KeywordTok{\{}
+    \BuiltInTok{declare}\NormalTok{ {-}g }\VariableTok{remote\_address}
+
+    \FunctionTok{get\_remote\_address()} \KeywordTok{\{}
+        \FunctionTok{mount}\NormalTok{ {-}t nfs }\KeywordTok{|} \FunctionTok{cut}\NormalTok{ {-}d}\StringTok{\textquotesingle{}:\textquotesingle{}}\NormalTok{ {-}f1 }\KeywordTok{|} \FunctionTok{head}\NormalTok{ {-}1 }\KeywordTok{||}
+            \ExtensionTok{fatal\_error} \StringTok{"cannot retrieve remote server address."}
+    \KeywordTok{\}}
+
+    \FunctionTok{validate\_remote\_address()} \KeywordTok{\{}
+        \ExtensionTok{validate\_not\_empty} \StringTok{"}\VariableTok{$1}\StringTok{"} \StringTok{"no valid remote server address has not been found."}
+    \KeywordTok{\}}
+
+    \ExtensionTok{ensure\_variable} \StringTok{"remote\_address"} \StringTok{"get\_remote\_address"} \StringTok{"validate\_remote\_address"}
+\KeywordTok{\}}
+
+\CommentTok{\# Ensures $net\_interface is declared, initialized and valid.}
+\FunctionTok{ensure\_net\_interface()} \KeywordTok{\{}
+    \BuiltInTok{declare}\NormalTok{ {-}g }\VariableTok{net\_interface}
+
+    \ExtensionTok{ensure\_remote\_address}
+
+    \FunctionTok{get\_net\_interface()} \KeywordTok{\{}
+        \ExtensionTok{ip}\NormalTok{ route get }\StringTok{"}\VariableTok{$remote\_address}\StringTok{"} \KeywordTok{|} \FunctionTok{head}\NormalTok{ {-}1 }\KeywordTok{|} \FunctionTok{sed}\NormalTok{ {-}n }\StringTok{\textquotesingle{}s/.* dev \textbackslash{}([\^{} ]*\textbackslash{}).*/\textbackslash{}1/p\textquotesingle{}} \KeywordTok{||}
+            \ExtensionTok{fatal\_error} \StringTok{"cannot retrieve network interface with route to \textquotesingle{}}\VariableTok{$remote\_address}\StringTok{\textquotesingle{}."}
+    \KeywordTok{\}}
+
+    \FunctionTok{validate\_net\_interface()} \KeywordTok{\{}
+        \ExtensionTok{validate\_not\_empty} \StringTok{"}\VariableTok{$1}\StringTok{"} \StringTok{"no valid network interface has been found."}
+    \KeywordTok{\}}
+
+    \ExtensionTok{ensure\_variable} \StringTok{"net\_interface"} \StringTok{"get\_net\_interface"} \StringTok{"validate\_net\_interface"}
+\KeywordTok{\}}
+
+\CommentTok{\# Ensures $mac\_address is declared, initialized and valid.}
+\FunctionTok{ensure\_mac\_address()} \KeywordTok{\{}
+    \CommentTok{\# shellcheck disable=SC2034 \# the variable is declared for parent scripts that source this one}
+    \BuiltInTok{declare}\NormalTok{ {-}g }\VariableTok{mac\_address}
+
+    \ExtensionTok{ensure\_net\_interface}
+
+    \FunctionTok{get\_mac\_address()} \KeywordTok{\{}
+        \FunctionTok{tr} \StringTok{"[:upper:]:"} \StringTok{"[:lower:]{-}"} \OperatorTok{\textless{}} \StringTok{"/sys/class/net/}\VariableTok{$net\_interface}\StringTok{/address"} \KeywordTok{||}
+            \ExtensionTok{fatal\_error} \StringTok{"failed to retrieve and convert mac address of network interface \textquotesingle{}}\VariableTok{$net\_interface}\StringTok{\textquotesingle{}"}
+    \KeywordTok{\}}
+
+    \FunctionTok{validate\_mac\_address()} \KeywordTok{\{}
+        \BuiltInTok{local}\NormalTok{ {-}r }\VariableTok{value=}\StringTok{"}\VariableTok{$1}\StringTok{"}
+        \BuiltInTok{local}\NormalTok{ {-}r }\VariableTok{regex\_pattern=}\StringTok{\textquotesingle{}\^{}([0{-}9a{-}f]\{2\}{-})\{5\}[0{-}9a{-}f]\{2\}$\textquotesingle{}}
+
+        \ExtensionTok{validate\_with\_regex} \KeywordTok{\textbackslash{}}
+            \StringTok{"}\VariableTok{$value}\StringTok{"} \StringTok{"}\VariableTok{$regex\_pattern}\StringTok{"} \KeywordTok{\textbackslash{}}
+            \StringTok{"mac address does not match required format."} \KeywordTok{\textbackslash{}}
+            \StringTok{"is not a mac address formatted as lower{-}case hexadecimal bytes separated by hyphens."}
+    \KeywordTok{\}}
+
+    \ExtensionTok{ensure\_variable} \StringTok{"mac\_address"} \StringTok{"get\_mac\_address"} \StringTok{"validate\_mac\_address"}
+\KeywordTok{\}}
+
+\BuiltInTok{readonly} \VariableTok{mounting\_point\_remote=}\StringTok{"/bootiful/shared"}
+\BuiltInTok{readonly} \VariableTok{deployment\_disk=}\StringTok{"/dev/sda"}
+
+\CommentTok{\# Ensures the kernel is informed of the latest partition table changes}
+\FunctionTok{refresh\_partition\_table()} \KeywordTok{\{}
+    \ExtensionTok{echo\_err} \StringTok{"Refreshing partition table on disk \textquotesingle{}}\VariableTok{$deployment\_disk}\StringTok{\textquotesingle{}..."}
+    \ExtensionTok{partprobe} \StringTok{"}\VariableTok{$deployment\_disk}\StringTok{"}
+\KeywordTok{\}}
+
+\CommentTok{\# Checks if something is currently mounted on the given mount point}
+\FunctionTok{is\_mounted()} \KeywordTok{\{}
+    \BuiltInTok{local}\NormalTok{ {-}r }\VariableTok{mount\_point=}\StringTok{"}\VariableTok{$1}\StringTok{"}
+
+    \ExtensionTok{refresh\_partition\_table}
+    \ExtensionTok{findmnt}\NormalTok{ {-}{-}mountpoint }\StringTok{"}\VariableTok{$mount\_point}\StringTok{"}
+\KeywordTok{\}}
+
+\CommentTok{\# Ensures that the given directory exists or create it. If the directory does}
+\CommentTok{\# not exist and cannot be created, \textasciigrave{}fatal\_error\textasciigrave{} is called.}
+\FunctionTok{ensure\_directory()} \KeywordTok{\{}
+    \BuiltInTok{local}\NormalTok{ {-}r }\VariableTok{directory=}\StringTok{"}\VariableTok{$1}\StringTok{"}
+
+    \ExtensionTok{echo\_err} \StringTok{"Ensuring directory \textquotesingle{}}\VariableTok{$directory}\StringTok{\textquotesingle{} exists..."}
+    \KeywordTok{if [[} \OtherTok{{-}d} \StringTok{"}\VariableTok{$directory}\StringTok{"}\KeywordTok{ ]]}\NormalTok{; }\KeywordTok{then}
+        \ExtensionTok{echo\_err} \StringTok{"Directory \textquotesingle{}}\VariableTok{$directory}\StringTok{\textquotesingle{} already exists."}
+        \BuiltInTok{return}\NormalTok{ 0}
+    \KeywordTok{fi}
+
+    \ExtensionTok{echo\_err} \StringTok{"Directory \textquotesingle{}}\VariableTok{$directory}\StringTok{\textquotesingle{} does not exist. Attempting to create it..."}
+    \FunctionTok{mkdir}\NormalTok{ {-}p }\StringTok{"}\VariableTok{$directory}\StringTok{"} \KeywordTok{||}
+        \ExtensionTok{fatal\_error} \StringTok{"Cannot create directory }\VariableTok{$directory}\StringTok{."}
+    \ExtensionTok{echo\_err} \StringTok{"Directory \textquotesingle{}}\VariableTok{$directory}\StringTok{\textquotesingle{} created."}
+\KeywordTok{\}}
+
+\CommentTok{\# Mounts a device to a mount point if it\textquotesingle{}s not already mounted}
+\FunctionTok{ensure\_mounted()} \KeywordTok{\{}
+    \BuiltInTok{local}\NormalTok{ {-}r }\VariableTok{source\_device=}\StringTok{"}\VariableTok{$1}\StringTok{"}
+    \BuiltInTok{local}\NormalTok{ {-}r }\VariableTok{mount\_point=}\StringTok{"}\VariableTok{$2}\StringTok{"}
+    \BuiltInTok{local}\NormalTok{ {-}r }\VariableTok{mount\_fstype=}\StringTok{"}\VariableTok{$3}\StringTok{"}
+    \BuiltInTok{local}\NormalTok{ {-}r }\VariableTok{mount\_options=}\StringTok{"}\VariableTok{$4}\StringTok{"}
+
+    \ExtensionTok{echo\_err} \StringTok{"Ensuring device \textquotesingle{}}\VariableTok{$source\_device}\StringTok{\textquotesingle{} is mounted on \textquotesingle{}}\VariableTok{$mount\_point}\StringTok{\textquotesingle{}..."}
+
+    \KeywordTok{if} \ExtensionTok{is\_mounted} \StringTok{"}\VariableTok{$mount\_point}\StringTok{"}\KeywordTok{;} \KeywordTok{then}
+        \ExtensionTok{echo\_err} \StringTok{"Mount point \textquotesingle{}}\VariableTok{$mount\_point}\StringTok{\textquotesingle{} is already mounted."}
+        \BuiltInTok{return}\NormalTok{ 0}
+    \KeywordTok{fi}
+
+    \ExtensionTok{echo\_err} \StringTok{"Nothing is mounted on mount point \textquotesingle{}}\VariableTok{$mount\_point}\StringTok{\textquotesingle{}."}
+
+    \ExtensionTok{ensure\_directory} \StringTok{"}\VariableTok{$mount\_point}\StringTok{"}
+
+    \ExtensionTok{echo\_err} \StringTok{"Attempting to mount \textquotesingle{}}\VariableTok{$source\_device}\StringTok{\textquotesingle{} on \textquotesingle{}}\VariableTok{$mount\_point}\StringTok{\textquotesingle{} as \textquotesingle{}}\VariableTok{$mount\_fstype}\StringTok{\textquotesingle{} with options \textquotesingle{}}\VariableTok{$mount\_options}\StringTok{\textquotesingle{}."}
+
+    \FunctionTok{mount}\NormalTok{ {-}t }\StringTok{"}\VariableTok{$mount\_fstype}\StringTok{"}\NormalTok{ {-}o }\StringTok{"}\VariableTok{$mount\_options}\StringTok{"} \StringTok{"}\VariableTok{$source\_device}\StringTok{"} \StringTok{"}\VariableTok{$mount\_point}\StringTok{"} \KeywordTok{||}
+        \ExtensionTok{fatal\_error} \StringTok{"Failed to mount device \textquotesingle{}}\VariableTok{$source\_device}\StringTok{\textquotesingle{} on \textquotesingle{}}\VariableTok{$mount\_point}\StringTok{\textquotesingle{}"}\NormalTok{.}
+
+    \ExtensionTok{echo\_err} \StringTok{"Mount successful."}
+\KeywordTok{\}}
+
+\CommentTok{\# Mounts the remote shared data if it\textquotesingle{}s not already mounted}
+\FunctionTok{ensure\_remote\_shared\_mounted()} \KeywordTok{\{}
+    \ExtensionTok{ensure\_remote\_address}
+    \BuiltInTok{local}\NormalTok{ {-}r }\VariableTok{remote\_nfs\_share=}\StringTok{"}\VariableTok{$remote\_address}\StringTok{:/nfsshared"}
+    \ExtensionTok{ensure\_mounted} \StringTok{"}\VariableTok{$remote\_nfs\_share}\StringTok{"} \StringTok{"}\VariableTok{$mounting\_point\_remote}\StringTok{"} \StringTok{"nfs"} \StringTok{"nolock"}
+\KeywordTok{\}}
+
+\CommentTok{\# Ensures $total\_disk\_size is declared, initialized and valid.}
+\FunctionTok{ensure\_total\_disk\_size()} \KeywordTok{\{}
+    \BuiltInTok{declare}\NormalTok{ {-}g }\VariableTok{total\_disk\_size}
+
+    \FunctionTok{get\_total\_disk\_size()} \KeywordTok{\{}
+        \ExtensionTok{parted}\NormalTok{ {-}{-}script }\StringTok{"}\VariableTok{$deployment\_disk}\StringTok{"}\NormalTok{ unit B print }\KeywordTok{|}
+            \FunctionTok{sed}\NormalTok{ {-}En }\StringTok{\textquotesingle{}s\#\^{}Disk\textbackslash{}s*\textquotesingle{}"}\VariableTok{$deployment\_disk}\StringTok{"\textquotesingle{}:\textbackslash{}s*([0{-}9]+)B$\#\textbackslash{}1\#p\textquotesingle{}} \KeywordTok{||}
+            \ExtensionTok{fatal\_error} \StringTok{"cannot retrieve total disk size"}
+    \KeywordTok{\}}
+
+    \FunctionTok{validate\_total\_disk\_size()} \KeywordTok{\{}
+        \ExtensionTok{validate\_nonzero\_uint} \StringTok{"}\VariableTok{$1}\StringTok{"} \StringTok{"retrieved disk size format is invalid."}
+    \KeywordTok{\}}
+
+    \ExtensionTok{ensure\_variable} \StringTok{"total\_disk\_size"} \StringTok{"get\_total\_disk\_size"} \StringTok{"validate\_total\_disk\_size"}
+\KeywordTok{\}}
+
+\CommentTok{\# Ensures $sector\_sizes is declared, initialized and valid}
+\FunctionTok{ensure\_sector\_sizes()} \KeywordTok{\{}
+    \BuiltInTok{declare}\NormalTok{ {-}g }\VariableTok{sector\_sizes}
+
+    \FunctionTok{get\_sector\_sizes()} \KeywordTok{\{}
+        \ExtensionTok{parted}\NormalTok{ {-}{-}script }\StringTok{"}\VariableTok{$deployment\_disk}\StringTok{"}\NormalTok{ print }\KeywordTok{|}
+            \FunctionTok{sed}\NormalTok{ {-}En }\StringTok{\textquotesingle{}s\#\^{}Sector size \textbackslash{}(logical/physical\textbackslash{}):\textbackslash{}s*([0{-}9]+)B/([0{-}9]+)B$\#\textbackslash{}1\textbackslash{}t\textbackslash{}2\#p\textquotesingle{}} \KeywordTok{||}
+            \ExtensionTok{fatal\_error} \StringTok{"cannot retrieve sector size"}
+    \KeywordTok{\}}
+
+    \FunctionTok{validate\_sector\_sizes()} \KeywordTok{\{}
+        \ExtensionTok{validate\_with\_regex} \KeywordTok{\textbackslash{}}
+            \StringTok{"}\VariableTok{$1}\StringTok{"} \KeywordTok{\textbackslash{}}
+            \StringTok{\textquotesingle{}\^{}[0{-}9]+\textbackslash{}s+[0{-}9]+$\textquotesingle{}} \KeywordTok{\textbackslash{}}
+            \StringTok{\textquotesingle{}retrieved sector sizes are invalid\textquotesingle{}} \KeywordTok{\textbackslash{}}
+            \StringTok{\textquotesingle{}does not contain two unsigned integers separated by spaces\textquotesingle{}}
+    \KeywordTok{\}}
+
+    \ExtensionTok{ensure\_variable} \StringTok{"sector\_sizes"} \StringTok{"get\_sector\_sizes"} \StringTok{"validate\_sector\_sizes"}
+\KeywordTok{\}}
+
+\CommentTok{\# Ensures $logical\_sector\_size is declared, initialized and valid}
+\FunctionTok{ensure\_logical\_sector\_size()} \KeywordTok{\{}
+    \CommentTok{\# shellcheck disable=SC2034 \# the variable is declared for parent scripts that source this one}
+    \BuiltInTok{declare}\NormalTok{ {-}g }\VariableTok{logical\_sector\_size}
+
+    \ExtensionTok{ensure\_sector\_sizes}
+
+    \FunctionTok{extract\_logical\_sector\_size()} \KeywordTok{\{}
+        \BuiltInTok{echo} \StringTok{"}\VariableTok{$sector\_sizes}\StringTok{"} \KeywordTok{|} \FunctionTok{cut}\NormalTok{ {-}f 1 }\KeywordTok{||}
+            \ExtensionTok{fatal\_error} \StringTok{"cannot extract logical sector size from sector sizes"}
+    \KeywordTok{\}}
+
+    \FunctionTok{validate\_logical\_sector\_size()} \KeywordTok{\{}
+        \ExtensionTok{validate\_nonzero\_uint} \StringTok{"}\VariableTok{$1}\StringTok{"} \StringTok{"retrieved logical sector size is invalid"}
+    \KeywordTok{\}}
+
+    \ExtensionTok{ensure\_variable} \StringTok{"logical\_sector\_size"} \StringTok{"extract\_logical\_sector\_size"} \StringTok{"validate\_logical\_sector\_size"}
+\KeywordTok{\}}
+
+\CommentTok{\# Ensures $physical\_sector\_size is declared, initialized and valid}
+\FunctionTok{ensure\_physical\_sector\_size()} \KeywordTok{\{}
+    \BuiltInTok{declare}\NormalTok{ {-}g }\VariableTok{physical\_sector\_size}
+
+    \ExtensionTok{ensure\_sector\_sizes}
+
+    \FunctionTok{extract\_physical\_sector\_size()} \KeywordTok{\{}
+        \BuiltInTok{echo} \StringTok{"}\VariableTok{$sector\_sizes}\StringTok{"} \KeywordTok{|} \FunctionTok{cut}\NormalTok{ {-}f 2 }\KeywordTok{||}
+            \ExtensionTok{fatal\_error} \StringTok{"cannot extract physical sector size from sector sizes"}
+    \KeywordTok{\}}
+
+    \FunctionTok{validate\_physical\_sector\_size()} \KeywordTok{\{}
+        \ExtensionTok{validate\_nonzero\_uint} \StringTok{"}\VariableTok{$1}\StringTok{"} \StringTok{"retrieved physical sector size is invalid"}
+    \KeywordTok{\}}
+
+    \ExtensionTok{ensure\_variable} \StringTok{"physical\_sector\_size"} \StringTok{"extract\_physical\_sector\_size"} \StringTok{"validate\_physical\_sector\_size"}
+\KeywordTok{\}}
+
+\CommentTok{\# Ensures $image\_cache\_partition\_size is declared, initialized and valid}
+\FunctionTok{ensure\_image\_cache\_partition\_size()} \KeywordTok{\{}
+    \BuiltInTok{declare}\NormalTok{ {-}g }\VariableTok{image\_cache\_partition\_size}
+
+    \ExtensionTok{ensure\_total\_disk\_size}
+    \ExtensionTok{ensure\_physical\_sector\_size}
+
+    \FunctionTok{calculate\_image\_cache\_partition\_size()} \KeywordTok{\{}
+        \BuiltInTok{echo} \StringTok{"}\VariableTok{$((}\NormalTok{(20 * total\_disk\_size / 100) / physical\_sector\_size * physical\_sector\_size}\VariableTok{))}\StringTok{"} \KeywordTok{||}
+            \ExtensionTok{fatal\_error} \StringTok{"cannot calculate image partition size"}
+    \KeywordTok{\}}
+
+    \FunctionTok{validate\_image\_cache\_partition\_size()} \KeywordTok{\{}
+        \ExtensionTok{validate\_nonzero\_uint} \StringTok{"}\VariableTok{$1}\StringTok{"} \StringTok{"calculated image cache partition size is invalid"}
+    \KeywordTok{\}}
+
+    \ExtensionTok{ensure\_variable} \StringTok{"image\_cache\_partition\_size"} \KeywordTok{\textbackslash{}}
+        \StringTok{"calculate\_image\_cache\_partition\_size"} \KeywordTok{\textbackslash{}}
+        \StringTok{"validate\_image\_cache\_partition\_size"}
+\KeywordTok{\}}
+
+\CommentTok{\# Ensures $image\_cache\_partition\_start is declared, initialized and valid}
+\FunctionTok{ensure\_image\_cache\_partition\_start()} \KeywordTok{\{}
+    \BuiltInTok{declare}\NormalTok{ {-}g }\VariableTok{image\_cache\_partition\_start}
+
+    \ExtensionTok{ensure\_total\_disk\_size}
+    \ExtensionTok{ensure\_physical\_sector\_size}
+    \ExtensionTok{ensure\_image\_cache\_partition\_size}
+
+    \FunctionTok{calculate\_image\_cache\_partition\_start()} \KeywordTok{\{}
+        \BuiltInTok{echo} \StringTok{"}\VariableTok{$((}\NormalTok{(total\_disk\_size {-} image\_cache\_partition\_size) / physical\_sector\_size * physical\_sector\_size {-} 4096}\VariableTok{))}\StringTok{"} \KeywordTok{||}
+            \ExtensionTok{fatal\_error} \StringTok{"cannot calculate image cache partition start"}
+    \KeywordTok{\}}
+
+    \FunctionTok{validate\_image\_cache\_partition\_start()} \KeywordTok{\{}
+        \ExtensionTok{validate\_nonzero\_uint} \StringTok{"}\VariableTok{$1}\StringTok{"} \StringTok{"calculated image cache partition start is invalid"}
+    \KeywordTok{\}}
+
+    \ExtensionTok{ensure\_variable} \StringTok{"image\_cache\_partition\_start"} \KeywordTok{\textbackslash{}}
+        \StringTok{"calculate\_image\_cache\_partition\_start"} \KeywordTok{\textbackslash{}}
+        \StringTok{"validate\_image\_cache\_partition\_start"}
+\KeywordTok{\}}
+
+\CommentTok{\# Ensures $image\_cache\_partition\_end is declared, initialized and valid}
+\FunctionTok{ensure\_image\_cache\_partition\_end()} \KeywordTok{\{}
+    \CommentTok{\# shellcheck disable=SC2034 \# the variable is declared for parent scripts that source this one}
+    \BuiltInTok{declare}\NormalTok{ {-}g }\VariableTok{image\_cache\_partition\_end}
+
+    \ExtensionTok{ensure\_image\_cache\_partition\_size}
+    \ExtensionTok{ensure\_image\_cache\_partition\_start}
+
+    \FunctionTok{calculate\_image\_cache\_partition\_end()} \KeywordTok{\{}
+        \BuiltInTok{echo} \StringTok{"}\VariableTok{$((}\NormalTok{image\_cache\_partition\_start + image\_cache\_partition\_size}\VariableTok{))}\StringTok{"} \KeywordTok{||}
+            \ExtensionTok{fatal\_error} \StringTok{"cannot calculate image cache partition end"}
+    \KeywordTok{\}}
+
+    \FunctionTok{validate\_image\_cache\_partition\_end()} \KeywordTok{\{}
+        \ExtensionTok{validate\_nonzero\_uint} \StringTok{"}\VariableTok{$1}\StringTok{"} \StringTok{"calculated image cache partition start is invalid"}
+    \KeywordTok{\}}
+
+    \ExtensionTok{ensure\_variable} \StringTok{"image\_cache\_partition\_end"} \KeywordTok{\textbackslash{}}
+        \StringTok{"calculate\_image\_cache\_partition\_end"} \KeywordTok{\textbackslash{}}
+        \StringTok{"validate\_image\_cache\_partition\_end"}
+\KeywordTok{\}}
+
+\FunctionTok{parse\_last\_partition\_end()} \KeywordTok{\{}
+    \BuiltInTok{local}\NormalTok{ {-}r }\VariableTok{gawk\_input\_data=}\StringTok{"}\VariableTok{$1}\StringTok{"}
+    \BuiltInTok{local}\NormalTok{ {-}r }\VariableTok{input\_size\_unit=}\StringTok{"}\VariableTok{$2}\StringTok{"}
+    \BuiltInTok{local}\NormalTok{ {-}r }\VariableTok{start\_parse\_token=}\StringTok{"}\VariableTok{$3}\StringTok{"}
+
+    \BuiltInTok{local} \VariableTok{gawk\_program}
+    \BuiltInTok{read}\NormalTok{ {-}r {-}d }\StringTok{\textquotesingle{}\textquotesingle{}} \VariableTok{gawk\_program} \OperatorTok{\textless{}\textless{} \textquotesingle{}EOF\textquotesingle{}}
+\NormalTok{        $0 \textasciitilde{} start\_parse\_regex\_pattern \{}
+\NormalTok{            parsing=1;}
+\NormalTok{            max\_part\_end=0;}
+\NormalTok{            next;}
+\NormalTok{        \}}
+\NormalTok{        parsing \&\& $3 \textasciitilde{} disk\_end\_regex\_pattern \{}
+\NormalTok{            part\_end=substr($3, 1, length($3){-}length(size\_unit)) + 0;}
+\NormalTok{            if(part\_end\textgreater{}max\_part\_end) \{}
+\NormalTok{                max\_part\_end=part\_end;}
+\NormalTok{            \}}
+\NormalTok{        \}}
+\NormalTok{        END \{}
+\NormalTok{            printf "\%d", max\_part\_end;}
+\NormalTok{        \}}
+\OperatorTok{EOF}
+
+    \BuiltInTok{echo} \StringTok{"}\VariableTok{$gawk\_input\_data}\StringTok{"} \KeywordTok{|} \FunctionTok{gawk} \KeywordTok{\textbackslash{}}
+        \ExtensionTok{{-}v}\NormalTok{ start\_parse\_regex\_pattern=}\StringTok{"\^{}}\VariableTok{$start\_parse\_token}\StringTok{"} \KeywordTok{\textbackslash{}}
+        \ExtensionTok{{-}v}\NormalTok{ disk\_end\_regex\_pattern=}\StringTok{"\^{}[0{-}9]+}\VariableTok{$input\_size\_unit}\StringTok{$"} \KeywordTok{\textbackslash{}}
+        \ExtensionTok{{-}v}\NormalTok{ size\_unit=}\StringTok{"}\VariableTok{$input\_size\_unit}\StringTok{"} \KeywordTok{\textbackslash{}}
+        \ExtensionTok{{-}M} \StringTok{"}\VariableTok{$gawk\_program}\StringTok{"} \KeywordTok{\textbackslash{}}
+        \KeywordTok{||} \ExtensionTok{fatal\_error} \StringTok{"cannot extract image size"}
+\KeywordTok{\}}
+
+\CommentTok{\# Print the end offset of the last partition of a parted output}
+\FunctionTok{parse\_parted\_last\_partition\_end()} \KeywordTok{\{}
+    \BuiltInTok{local}\NormalTok{ {-}r }\VariableTok{parted\_output=}\StringTok{"}\VariableTok{$1}\StringTok{"}
+    \BuiltInTok{local}\NormalTok{ {-}r }\VariableTok{parted\_unit=}\StringTok{"}\VariableTok{$2}\StringTok{"}
+
+    \ExtensionTok{parse\_last\_partition\_end} \StringTok{"}\VariableTok{$parted\_output}\StringTok{"} \StringTok{"}\VariableTok{$parted\_unit}\StringTok{"} \StringTok{\textquotesingle{}Number\textquotesingle{}}
+\KeywordTok{\}}
+
+\FunctionTok{parse\_parted\_last\_partition\_end\_sector()} \KeywordTok{\{}
+    \ExtensionTok{parse\_parted\_last\_partition\_end} \StringTok{"}\VariableTok{$1}\StringTok{"} \StringTok{"s"}
+\KeywordTok{\}}
+
+\FunctionTok{parse\_fdisk\_last\_partition\_end\_sector()} \KeywordTok{\{}
+    \BuiltInTok{local}\NormalTok{ {-}r }\VariableTok{fdisk\_output=}\StringTok{"}\VariableTok{$1}\StringTok{"}
+
+    \ExtensionTok{parse\_last\_partition\_end} \StringTok{"}\VariableTok{$fdisk\_output}\StringTok{"} \StringTok{\textquotesingle{}\textquotesingle{}} \StringTok{\textquotesingle{}Device\textquotesingle{}}
+\KeywordTok{\}}
+
+\FunctionTok{create\_hidden\_partition()} \KeywordTok{\{}
+    \BuiltInTok{echo} \StringTok{"Erasing MBR..."}
+    \FunctionTok{dd}\NormalTok{ if=/dev/zero bs=512 count=1 of=}\StringTok{"}\VariableTok{$deployment\_disk}\StringTok{"}
+    \BuiltInTok{echo} \StringTok{"MBR erased."}
+
+    \BuiltInTok{echo} \StringTok{"Creating new partition table with hidden partition..."}
+    \ExtensionTok{ensure\_image\_cache\_partition\_start}
+    \ExtensionTok{ensure\_image\_cache\_partition\_end}
+    \ExtensionTok{parted}\NormalTok{ {-}s {-}a opt }\StringTok{"}\VariableTok{$deployment\_disk}\StringTok{"}\NormalTok{ mklabel msdos mkpart primary ext2 }\StringTok{"}\VariableTok{$\{image\_cache\_partition\_start\}}\StringTok{B"} \StringTok{"}\VariableTok{$\{image\_cache\_partition\_end\}}\StringTok{B"} \KeywordTok{||}
+        \ExtensionTok{fatal\_error} \StringTok{"parted exited with error code }\VariableTok{$?}\StringTok{"}
+    \BuiltInTok{echo} \StringTok{"New partition table with hidden partition created."}
+
+    \ExtensionTok{refresh\_partition\_table}
+
+    \BuiltInTok{echo} \StringTok{"Creating file system in hidden partition..."}
+    \ExtensionTok{mke2fs}\NormalTok{ {-}t ext2 }\StringTok{"}\VariableTok{$\{deployment\_disk\}}\StringTok{1"} \KeywordTok{||}
+        \ExtensionTok{fatal\_error} \StringTok{"mke2fs exited with error code }\VariableTok{$?}\StringTok{"}
+    \BuiltInTok{echo} \StringTok{"File system in hidden partition created."}
+
+    \ExtensionTok{refresh\_partition\_table}
+\KeywordTok{\}}
+\end{Highlighting}
+\end{Shaded}
+
+\hypertarget{deployerbootiful-deploy-script-de-duxe9ploiement-dimages}{%
+\section{\texorpdfstring{\texttt{deployer/bootiful-deploy}: script de
+déploiement
+d'images}{deployer/bootiful-deploy: script de déploiement d'images}}\label{deployerbootiful-deploy-script-de-duxe9ploiement-dimages}}
+
+\begin{Shaded}
+\begin{Highlighting}[]
+\CommentTok{\#!/bin/bash}
+
+\BuiltInTok{shopt}\NormalTok{ {-}s nullglob}
+
+\BuiltInTok{readonly} \VariableTok{SCRIPT\_NAME=}\StringTok{"}\VariableTok{$(}\FunctionTok{basename} \StringTok{"}\VariableTok{$0}\StringTok{"}\VariableTok{)}\StringTok{"}
+\BuiltInTok{readonly} \VariableTok{SCRIPT\_DIR=}\StringTok{"}\VariableTok{$(}\FunctionTok{readlink}\NormalTok{ {-}m }\StringTok{"}\VariableTok{$(}\FunctionTok{dirname} \StringTok{"}\VariableTok{$0}\StringTok{"}\VariableTok{)}\StringTok{"}\VariableTok{)}\StringTok{"}
+
+\FunctionTok{usage()} \KeywordTok{\{}
+    \FunctionTok{cat} \OperatorTok{\textless{}\textless{} EOF}
+\NormalTok{Usage:}
+  \VariableTok{$SCRIPT\_DIR}\NormalTok{ [{-}h | {-}{-}help]}
+
+\NormalTok{Description:}
+\NormalTok{  Deploys an operating system image on the disk.}
+
+\NormalTok{  The image is retrieved from the NFS server that already provides the root file}
+\NormalTok{  system. The NFS shared directory /nfsshared is mounted on /bootiful/shared and}
+\NormalTok{  contains multiple images that can be deployed.}
+
+\NormalTok{  The available images from the server are scanned from /bootiful/shared/images}
+\NormalTok{  and displayed in an interactive menu that allows to choose which particular}
+\NormalTok{  image will be deployed.}
+
+\NormalTok{  All the data written in the standard input and standard error during the}
+\NormalTok{  deployment is also written in a log file in /bootiful/shared/logs.}
+
+\NormalTok{  If there is enough disk space available, the image is cached in a hidden}
+\NormalTok{  partition to avoid downloading it again over the network during a future}
+\NormalTok{  deployment. This hidden partition takes 20\% of the disk.}
+
+\NormalTok{  If the image to deploy overlaps the image cache partition (i.e. the image}
+\NormalTok{  takes more than 80\% of the disk size), a warning message is shown and an}
+\NormalTok{  interactive menu allows to choose whether to abort or continue the deployment}
+\NormalTok{  without using the cache.}
+
+\NormalTok{Options:}
+\NormalTok{  {-}h, {-}{-}help  Shows this help}
+
+\NormalTok{Exit status:}
+\NormalTok{  0  if an image has been deployed successfully}
+\NormalTok{  1  if some error has occured during deployment}
+
+\NormalTok{Example:}
+  \VariableTok{$SCRIPT\_NAME}
+\OperatorTok{EOF}
+\KeywordTok{\}}
+
+\KeywordTok{if [[} \StringTok{"}\VariableTok{$1}\StringTok{"} \OtherTok{==} \StringTok{"{-}h"}\NormalTok{ || }\StringTok{"}\VariableTok{$1}\StringTok{"} \OtherTok{==} \StringTok{"{-}{-}help"}\KeywordTok{ ]]}\NormalTok{; }\KeywordTok{then}
+    \ExtensionTok{usage}
+    \BuiltInTok{exit}\NormalTok{ 0}
+\KeywordTok{fi}
+
+\CommentTok{\# Loads declarations from the \textquotesingle{}bootiful{-}common\textquotesingle{} script, which is a "library"}
+\CommentTok{\# of functions and constants shared by multiple bootiful{-}* scripts.}
+\BuiltInTok{readonly} \VariableTok{bootiful\_common\_script\_file=}\StringTok{"}\VariableTok{$SCRIPT\_DIR}\StringTok{/bootiful{-}common"}
+\KeywordTok{if [[} \OtherTok{!} \OtherTok{{-}f} \StringTok{"}\VariableTok{$bootiful\_common\_script\_file}\StringTok{"}\KeywordTok{ ]]}\NormalTok{; }\KeywordTok{then}
+    \BuiltInTok{echo} \OperatorTok{\textgreater{}\&2} \StringTok{"Fatal error: cannot find required script file \textquotesingle{}}\VariableTok{$bootiful\_common\_script\_file}\StringTok{\textquotesingle{}."}
+    \BuiltInTok{exit}\NormalTok{ 1}
+\KeywordTok{fi}
+\CommentTok{\# shellcheck source=./bootiful{-}common}
+\BuiltInTok{.} \StringTok{"}\VariableTok{$SCRIPT\_DIR}\StringTok{/bootiful{-}common"}
+
+\ExtensionTok{start\_step\_batch} \StringTok{"remote shared data mount initialization"}
+\VariableTok{start\_timestamp=}\StringTok{"}\VariableTok{$\{step\_timestamps[0]\}}\StringTok{"}
+
+\ExtensionTok{ensure\_remote\_shared\_mounted}
+
+\ExtensionTok{start\_step\_batch} \StringTok{"log file initialization"}
+\BuiltInTok{readonly} \VariableTok{log\_dir=}\StringTok{"}\VariableTok{$mounting\_point\_remote}\StringTok{/log"}
+
+\ExtensionTok{ensure\_mac\_address}
+\ExtensionTok{ensure\_directory} \StringTok{"}\VariableTok{$log\_dir}\StringTok{"}
+\BuiltInTok{readonly} \VariableTok{logfile\_date=$(}\FunctionTok{date}\NormalTok{ {-}{-}date }\StringTok{"}\VariableTok{$start\_timestamp}\StringTok{"}\NormalTok{ {-}{-}universal +\%Y{-}\%m{-}\%d\_\%H{-}\%M{-}\%S}\VariableTok{)}
+\BuiltInTok{readonly} \VariableTok{log\_file\_prefix=}\StringTok{"}\VariableTok{$log\_dir}\StringTok{/}\VariableTok{$\{mac\_address\}}\StringTok{\_}\VariableTok{$logfile\_date}\StringTok{"}
+
+\BuiltInTok{readonly} \VariableTok{log\_file=}\StringTok{"}\VariableTok{$log\_file\_prefix}\StringTok{.log"}
+\BuiltInTok{echo} \StringTok{"Starting logging stdout and stderr to }\VariableTok{$log\_file}\StringTok{..."}
+
+\KeywordTok{\{}
+    \ExtensionTok{start\_step\_batch} \StringTok{"hardware log files creation"}
+
+    \FunctionTok{log\_command\_to\_file()} \KeywordTok{\{}
+        \BuiltInTok{local}\NormalTok{ {-}r }\VariableTok{prefix=}\StringTok{"}\VariableTok{$1}\StringTok{"}
+        \BuiltInTok{local}\NormalTok{ {-}r }\VariableTok{extension=}\StringTok{"}\VariableTok{$2}\StringTok{"}
+        \BuiltInTok{local}\NormalTok{ {-}r }\VariableTok{command=}\StringTok{"}\VariableTok{$3}\StringTok{"}
+
+        \BuiltInTok{local}\NormalTok{ {-}r }\VariableTok{hardware\_log\_file=}\StringTok{"}\VariableTok{$prefix}\StringTok{.}\VariableTok{$extension}\StringTok{"}
+
+        \BuiltInTok{echo} \StringTok{"Writing }\VariableTok{$extension}\StringTok{ log file }\VariableTok{$hardware\_log\_file}\StringTok{..."}
+
+        \CommentTok{\# shellcheck disable=SC2086 \# we need to expand args}
+        \FunctionTok{bash}\NormalTok{ {-}c }\StringTok{"}\VariableTok{$command}\StringTok{"} \OperatorTok{\textgreater{}} \StringTok{"}\VariableTok{$hardware\_log\_file}\StringTok{"} \KeywordTok{||}
+            \ExtensionTok{fatal\_error} \StringTok{"Cannot write }\VariableTok{$extension}\StringTok{ log file }\VariableTok{$hardware\_log\_file}\StringTok{."}
+
+        \BuiltInTok{echo} \StringTok{"Wrote }\VariableTok{$extension}\StringTok{ log file }\VariableTok{$hardware\_log\_file}\StringTok{."}
+    \KeywordTok{\}}
+
+    \ExtensionTok{log\_command\_to\_file} \StringTok{"}\VariableTok{$log\_file\_prefix}\StringTok{"}\NormalTok{ cpuinfo }\StringTok{\textquotesingle{}cat /proc/cpuinfo\textquotesingle{}}
+    \ExtensionTok{log\_command\_to\_file} \StringTok{"}\VariableTok{$log\_file\_prefix}\StringTok{"}\NormalTok{ meminfo }\StringTok{\textquotesingle{}cat /proc/meminfo\textquotesingle{}}
+    \ExtensionTok{log\_command\_to\_file} \StringTok{"}\VariableTok{$log\_file\_prefix}\StringTok{"}\NormalTok{ parted }\StringTok{\textquotesingle{}parted {-}{-}script {-}{-}list\textquotesingle{}}
+
+    \ExtensionTok{start\_step\_batch} \StringTok{"remote images search"}
+
+    \VariableTok{remote\_images\_dir=}\StringTok{"}\VariableTok{$mounting\_point\_remote}\StringTok{/images"}
+
+    \BuiltInTok{echo} \StringTok{"Finding remote images..."}
+    \BuiltInTok{declare} \VariableTok{count=}\NormalTok{0}
+    \BuiltInTok{declare}\NormalTok{ {-}A }\VariableTok{images}
+    \BuiltInTok{declare} \VariableTok{found\_image\_name}
+    \KeywordTok{for} \ExtensionTok{image\_folder}\NormalTok{ in }\StringTok{"}\VariableTok{$remote\_images\_dir}\StringTok{"}\NormalTok{/*}\KeywordTok{;} \KeywordTok{do}
+        \VariableTok{found\_image\_name=$(}\FunctionTok{basename} \StringTok{"}\VariableTok{$image\_folder}\StringTok{"}\VariableTok{)}
+        \BuiltInTok{echo} \StringTok{"Image \textquotesingle{}}\VariableTok{$found\_image\_name}\StringTok{\textquotesingle{} found"}
+        \VariableTok{options=(}\StringTok{"}\VariableTok{$\{options[]\}}\StringTok{"} \StringTok{"}\VariableTok{$((}\NormalTok{++count}\VariableTok{))}\StringTok{"} \StringTok{"}\VariableTok{$found\_image\_name}\StringTok{"}\VariableTok{)}
+        \VariableTok{images[$count]=}\StringTok{"}\VariableTok{$found\_image\_name}\StringTok{"}
+    \KeywordTok{done}
+    \BuiltInTok{echo} \StringTok{"}\VariableTok{$count}\StringTok{ remote images found."}
+
+    \KeywordTok{if [[} \VariableTok{$count} \OtherTok{{-}eq}\NormalTok{ 0}\KeywordTok{ ]]}\NormalTok{; }\KeywordTok{then}
+        \ExtensionTok{fatal\_error} \StringTok{"No image found in remote images directory }\VariableTok{$remote\_images\_dir}\StringTok{"}
+    \KeywordTok{fi}
+
+    \ExtensionTok{start\_step\_interactive} \StringTok{"image selection"}
+
+    \BuiltInTok{declare} \VariableTok{tty}
+    \VariableTok{tty=$(}\ExtensionTok{tty}\VariableTok{)}
+    \BuiltInTok{readonly} \VariableTok{tty}
+
+    \BuiltInTok{declare} \VariableTok{choice}
+    \VariableTok{choice=$(}\ExtensionTok{dialog} \KeywordTok{\textbackslash{}}
+        \ExtensionTok{{-}{-}clear} \KeywordTok{\textbackslash{}}
+        \ExtensionTok{{-}{-}title} \StringTok{"Image selection"} \KeywordTok{\textbackslash{}}
+        \ExtensionTok{{-}{-}menu} \StringTok{"Select an image to deploy"} \KeywordTok{\textbackslash{}}
+        \ExtensionTok{0}\NormalTok{ 0 0 }\KeywordTok{\textbackslash{}}
+        \StringTok{"}\VariableTok{$\{options[]\}}\StringTok{"} \KeywordTok{\textbackslash{}}
+        \OperatorTok{2\textgreater{}\&1} \OperatorTok{\textgreater{}} \StringTok{"}\VariableTok{$tty}\StringTok{"}\VariableTok{)}
+    \BuiltInTok{readonly} \VariableTok{choice}
+
+    \ExtensionTok{validate\_not\_empty} \StringTok{"}\VariableTok{$choice}\StringTok{"} \StringTok{"No image has been chosen"}
+
+    \BuiltInTok{readonly} \VariableTok{image\_name=$\{images[$choice]\}}
+
+    \BuiltInTok{echo} \StringTok{"Chosen image is }\VariableTok{$image\_name}\StringTok{"}
+
+    \BuiltInTok{readonly} \VariableTok{remote\_image\_dir=}\StringTok{"}\VariableTok{$remote\_images\_dir}\StringTok{/}\VariableTok{$image\_name}\StringTok{"}
+    \BuiltInTok{readonly} \VariableTok{remote\_image\_gzip\_file=}\StringTok{"}\VariableTok{$remote\_image\_dir}\StringTok{/}\VariableTok{$image\_name}\StringTok{.img.gz"}
+    \BuiltInTok{readonly} \VariableTok{remote\_image\_clonezilla\_id\_file=}\StringTok{"}\VariableTok{$remote\_image\_dir}\StringTok{/Info{-}img{-}id.txt"}
+
+    \BuiltInTok{readonly} \VariableTok{IMAGE\_TYPE\_RAW=}\StringTok{"raw"}
+    \BuiltInTok{readonly} \VariableTok{IMAGE\_TYPE\_CLONEZILLA=}\StringTok{"clonezilla"}
+
+    \KeywordTok{if [[} \OtherTok{{-}f} \StringTok{"}\VariableTok{$remote\_image\_gzip\_file}\StringTok{"}\KeywordTok{ ]]}\NormalTok{; }\KeywordTok{then}
+        \BuiltInTok{readonly} \VariableTok{image\_type=}\StringTok{"}\VariableTok{$IMAGE\_TYPE\_RAW}\StringTok{"}
+        \BuiltInTok{readonly} \VariableTok{remote\_image\_md5\_file=}\StringTok{"}\VariableTok{$remote\_image\_dir}\StringTok{/}\VariableTok{$image\_name}\StringTok{.md5"}
+        \BuiltInTok{readonly} \VariableTok{remote\_image\_size\_file=}\StringTok{"}\VariableTok{$remote\_image\_dir}\StringTok{/}\VariableTok{$image\_name}\StringTok{.partition"}
+        \BuiltInTok{readonly} \VariableTok{parse\_end\_sector\_function=}\NormalTok{parse\_fdisk\_last\_partition\_end\_sector}
+    \KeywordTok{elif [[} \OtherTok{{-}f} \StringTok{"}\VariableTok{$remote\_image\_clonezilla\_id\_file}\StringTok{"}\KeywordTok{ ]]}\NormalTok{; }\KeywordTok{then}
+        \BuiltInTok{readonly} \VariableTok{image\_type=}\StringTok{"}\VariableTok{$IMAGE\_TYPE\_CLONEZILLA}\StringTok{"}
+        \BuiltInTok{readonly} \VariableTok{remote\_image\_size\_file=}\StringTok{"}\VariableTok{$remote\_image\_dir}\StringTok{/sda{-}pt.parted"}
+        \BuiltInTok{readonly} \VariableTok{parse\_end\_sector\_function=}\NormalTok{parse\_parted\_last\_partition\_end\_sector}
+    \KeywordTok{else}
+        \ExtensionTok{fatal\_error} \StringTok{"Cannot find type of image \textquotesingle{}}\VariableTok{$image\_name}\StringTok{\textquotesingle{} in \textquotesingle{}}\VariableTok{$remote\_image\_dir}\StringTok{\textquotesingle{}"}
+    \KeywordTok{fi}
+
+    \ExtensionTok{start\_step\_batch} \StringTok{"image size verification"}
+
+    \ExtensionTok{validate\_file\_exists} \KeywordTok{\textbackslash{}}
+        \StringTok{"}\VariableTok{$remote\_image\_size\_file}\StringTok{"} \KeywordTok{\textbackslash{}}
+        \StringTok{"cannot retrieve size of image because parted/fdisk dump file does not exist."}
+
+    \BuiltInTok{readonly} \VariableTok{remote\_image\_size\_file\_content=}\StringTok{"}\OperatorTok{$(\textless{}} \StringTok{"}\VariableTok{$remote\_image\_size\_file}\StringTok{"}\OperatorTok{)}\StringTok{"} \KeywordTok{||}
+        \ExtensionTok{fatal\_error} \StringTok{"Cannot read parted/fdisk dump file \textquotesingle{}}\VariableTok{$remote\_image\_size\_file}\StringTok{\textquotesingle{}"}
+
+    \BuiltInTok{declare} \VariableTok{image\_end\_sector}
+    \VariableTok{image\_end\_sector=$(}\StringTok{"}\VariableTok{$parse\_end\_sector\_function}\StringTok{"} \StringTok{"}\VariableTok{$remote\_image\_size\_file\_content}\StringTok{"}\VariableTok{)}
+    \BuiltInTok{readonly} \VariableTok{image\_end\_sector}
+    \ExtensionTok{validate\_nonzero\_uint} \StringTok{"}\VariableTok{$image\_end\_sector}\StringTok{"} \StringTok{"Invalid image end sector"}
+
+    \ExtensionTok{ensure\_logical\_sector\_size}
+    \KeywordTok{((}\NormalTok{image\_size = image\_end\_sector * logical\_sector\_size}\KeywordTok{))}
+    \ExtensionTok{validate\_nonzero\_uint} \StringTok{"}\VariableTok{$image\_size}\StringTok{"} \StringTok{"Retrieved image size is invalid"}
+
+    \BuiltInTok{echo} \StringTok{"Image type: }\VariableTok{$image\_type}\StringTok{"}
+    \BuiltInTok{echo} \StringTok{"Image size: }\VariableTok{$image\_size}\StringTok{ B"}
+
+    \ExtensionTok{ensure\_total\_disk\_size}
+    \BuiltInTok{echo} \StringTok{"Available space in disk without image cache partition: }\VariableTok{$total\_disk\_size}\StringTok{ B"}
+    \ExtensionTok{ensure\_image\_cache\_partition\_size}
+    \BuiltInTok{echo} \StringTok{"Available space before image cache partition partition: }\VariableTok{$image\_cache\_partition\_size}\StringTok{ B"}
+
+    \KeywordTok{if [[} \StringTok{"}\VariableTok{$image\_size}\StringTok{"} \OtherTok{{-}gt} \StringTok{"}\VariableTok{$total\_disk\_size}\StringTok{"}\KeywordTok{ ]]}\NormalTok{; }\KeywordTok{then}
+        \ExtensionTok{fatal\_error} \StringTok{"Insufficient disk space for imaging. Image size: }\VariableTok{$image\_size}\StringTok{ B Disk size: }\VariableTok{$total\_disk\_size}\StringTok{ B"}
+    \KeywordTok{fi}
+
+    \VariableTok{mounting\_point\_hidden=}\StringTok{"/mnt"}
+    \VariableTok{DEPLOY\_MODE\_ALREADY\_CACHED=}\StringTok{\textquotesingle{}cached\textquotesingle{}}
+    \VariableTok{DEPLOY\_MODE\_CACHED\_NOW=}\StringTok{\textquotesingle{}cached\_now\textquotesingle{}}
+    \VariableTok{DEPLOY\_MODE\_NOT\_CACHED=}\StringTok{\textquotesingle{}not\_cached\textquotesingle{}}
+
+    \ExtensionTok{ensure\_image\_cache\_partition\_start}
+    \KeywordTok{if [[} \StringTok{"}\VariableTok{$image\_size}\StringTok{"} \OtherTok{{-}gt} \StringTok{"}\VariableTok{$image\_cache\_partition\_start}\StringTok{"}\KeywordTok{ ]]}\NormalTok{; }\KeywordTok{then}
+        \ExtensionTok{start\_step\_interactive} \StringTok{"hidden partition destruction confirmation"}
+
+        \ExtensionTok{warning} \StringTok{"Image overlaps with local image cache."} \KeywordTok{\textbackslash{}}
+            \StringTok{"It can be deployed from network but the image cache will be destroyed."} \KeywordTok{\textbackslash{}}
+            \StringTok{"Continue?"}
+
+        \BuiltInTok{echo} \StringTok{"Sufficient disk space for imaging, but image cache partition will be destroyed if it exists."}
+        \VariableTok{deploy\_mode=}\StringTok{"}\VariableTok{$DEPLOY\_MODE\_NOT\_CACHED}\StringTok{"}
+    \KeywordTok{else}
+        \BuiltInTok{echo} \StringTok{"Sufficient disk space for imaging with cache. Image cache partition will be restored or created."}
+
+        \BuiltInTok{readonly} \VariableTok{hidden\_partition\_dev=}\StringTok{"/dev/loop0"}
+
+        \BuiltInTok{readonly} \VariableTok{HIDDEN\_PARTITION\_STATUS\_UNKNOWN=}\StringTok{\textquotesingle{}unknown\textquotesingle{}}
+        \BuiltInTok{readonly} \VariableTok{HIDDEN\_PARTITION\_STATUS\_CREATED=}\StringTok{\textquotesingle{}created\textquotesingle{}}
+        \BuiltInTok{readonly} \VariableTok{HIDDEN\_PARTITION\_STATUS\_RESTORED=}\StringTok{\textquotesingle{}restored\textquotesingle{}}
+        \BuiltInTok{declare} \VariableTok{hidden\_partition\_status=}\StringTok{"}\VariableTok{$HIDDEN\_PARTITION\_STATUS\_UNKNOWN}\StringTok{"}
+
+        \CommentTok{\# Mounts the hidden partition.}
+        \CommentTok{\# If there is a mount error and the partition was restored, the partition will be}
+        \CommentTok{\# recreated and there will be another tentative to mount it.}
+        \FunctionTok{mount\_hidden\_partition()} \KeywordTok{\{}
+            \ExtensionTok{start\_step\_batch} \StringTok{"image cache partition mount tentative"}
+
+            \BuiltInTok{echo} \StringTok{"Creating loopback node for }\VariableTok{$deployment\_disk}\StringTok{ (offset=}\VariableTok{$image\_cache\_partition\_start}\StringTok{) on }\VariableTok{$hidden\_partition\_dev}\StringTok{"}
+
+            \ExtensionTok{losetup}\NormalTok{ {-}o }\StringTok{"}\VariableTok{$image\_cache\_partition\_start}\StringTok{"} \StringTok{"}\VariableTok{$hidden\_partition\_dev}\StringTok{"} \StringTok{"}\VariableTok{$deployment\_disk}\StringTok{"} \KeywordTok{||}
+                \ExtensionTok{fatal\_error} \StringTok{"Failed to create loopback node for }\VariableTok{$deployment\_disk}\StringTok{ on }\VariableTok{$hidden\_partition\_dev}\StringTok{"}
+            \BuiltInTok{echo} \StringTok{"Created loopback node for }\VariableTok{$deployment\_disk}\StringTok{ on }\VariableTok{$hidden\_partition\_dev}\StringTok{"}
+
+            \BuiltInTok{echo} \StringTok{"Mounting hidden partition from }\VariableTok{$hidden\_partition\_dev}\StringTok{ on }\VariableTok{$mounting\_point\_hidden}\StringTok{..."}
+            \KeywordTok{if}\NormalTok{ ! }\FunctionTok{mount}\NormalTok{ {-}t ext2 }\StringTok{"}\VariableTok{$hidden\_partition\_dev}\StringTok{"} \StringTok{"}\VariableTok{$mounting\_point\_hidden}\StringTok{"}\KeywordTok{;} \KeywordTok{then}
+                \BuiltInTok{local}\NormalTok{ {-}r }\VariableTok{error\_message=}\StringTok{"Cannot mount }\VariableTok{$hidden\_partition\_status}\StringTok{ hidden partition from }\VariableTok{$hidden\_partition\_dev}\StringTok{ on }\VariableTok{$mounting\_point\_hidden}\StringTok{"}
+
+                \KeywordTok{if [[} \StringTok{"}\VariableTok{$hidden\_partition\_status}\StringTok{"} \OtherTok{!=} \StringTok{"}\VariableTok{$HIDDEN\_PARTITION\_STATUS\_CREATED}\StringTok{"}\KeywordTok{ ]]}\NormalTok{; }\KeywordTok{then}
+                    \BuiltInTok{echo} \StringTok{"}\VariableTok{$error\_message}\StringTok{"}
+
+                    \ExtensionTok{losetup}\NormalTok{ {-}d }\StringTok{"}\VariableTok{$hidden\_partition\_dev}\StringTok{"} \KeywordTok{||}
+                        \ExtensionTok{fatal\_error} \StringTok{"Cannot detach loopback device }\VariableTok{$hidden\_partition\_dev}\StringTok{"}
+
+                    \ExtensionTok{start\_step\_batch} \StringTok{"image cache partition creation"}
+                    \ExtensionTok{create\_hidden\_partition}
+                    \ExtensionTok{mount\_hidden\_partition}
+                    \VariableTok{hidden\_partition\_status=}\StringTok{"}\VariableTok{$HIDDEN\_PARTITION\_STATUS\_CREATED}\StringTok{"}
+                \KeywordTok{else}
+                    \ExtensionTok{fatal\_error} \StringTok{"}\VariableTok{$error\_message}\StringTok{"}
+                \KeywordTok{fi}
+            \KeywordTok{fi}
+
+            \KeywordTok{if [[} \StringTok{"}\VariableTok{$hidden\_partition\_status}\StringTok{"} \OtherTok{!=} \StringTok{"}\VariableTok{$HIDDEN\_PARTITION\_STATUS\_CREATED}\StringTok{"}\KeywordTok{ ]]}\NormalTok{; }\KeywordTok{then}
+                \VariableTok{hidden\_partition\_status=}\StringTok{"}\VariableTok{$HIDDEN\_PARTITION\_STATUS\_RESTORED}\StringTok{"}
+            \KeywordTok{fi}
+
+            \BuiltInTok{echo} \StringTok{"Hidden partition mounted on }\VariableTok{$mounting\_point\_hidden}\StringTok{"}
+        \KeywordTok{\}}
+
+        \ExtensionTok{mount\_hidden\_partition}
+
+        \FunctionTok{read\_raw\_image\_id\_file()} \KeywordTok{\{}
+            \BuiltInTok{local}\NormalTok{ {-}r }\VariableTok{image\_id\_file=}\StringTok{"}\VariableTok{$1}\StringTok{"}
+            \FunctionTok{head}\NormalTok{ {-}n 1 }\StringTok{"}\VariableTok{$image\_id\_file}\StringTok{"} \KeywordTok{|} \FunctionTok{cut}\NormalTok{ {-}d }\StringTok{" "}\NormalTok{ {-}f 1}
+        \KeywordTok{\}}
+
+        \FunctionTok{read\_clonezilla\_image\_id\_file()} \KeywordTok{\{}
+            \BuiltInTok{local}\NormalTok{ {-}r }\VariableTok{image\_id\_file=}\StringTok{"}\VariableTok{$1}\StringTok{"}
+            \FunctionTok{awk}\NormalTok{ {-}F }\StringTok{\textquotesingle{}=\textquotesingle{}} \StringTok{\textquotesingle{}/IMG\_ID/ \{print $2\}\textquotesingle{}} \StringTok{"}\VariableTok{$image\_id\_file}\StringTok{"}
+        \KeywordTok{\}}
+
+        \CommentTok{\# Check if the selected image exists in cache by comparing its id file to the one stored in cache.}
+        \CommentTok{\# Return value: 0 if the image is cached, 1 if it\textquotesingle{}s not}
+        \FunctionTok{is\_image\_cached()} \KeywordTok{\{}
+            \KeywordTok{if [[}\NormalTok{ hidden\_partition\_status }\OtherTok{==} \StringTok{"}\VariableTok{$HIDDEN\_PARTITION\_STATUS\_CREATED}\StringTok{"}\KeywordTok{ ]]}\NormalTok{; }\KeywordTok{then}
+                \BuiltInTok{return}\NormalTok{ 1}
+            \KeywordTok{fi}
+
+            \KeywordTok{if [[} \StringTok{"}\VariableTok{$image\_type}\StringTok{"} \OtherTok{==} \StringTok{"}\VariableTok{$IMAGE\_TYPE\_RAW}\StringTok{"}\KeywordTok{ ]]}\NormalTok{; }\KeywordTok{then}
+                \BuiltInTok{local}\NormalTok{ {-}r }\VariableTok{remote\_image\_id\_file=}\StringTok{"}\VariableTok{$remote\_image\_dir}\StringTok{/}\VariableTok{$image\_name}\StringTok{.md5"}
+                \BuiltInTok{local}\NormalTok{ {-}r }\VariableTok{cached\_image\_id\_file=}\StringTok{"}\VariableTok{$mounting\_point\_hidden}\StringTok{/}\VariableTok{$image\_name}\StringTok{.md5"}
+                \BuiltInTok{local}\NormalTok{ {-}r }\VariableTok{read\_image\_id\_file=}\NormalTok{read\_raw\_image\_id\_file}
+            \KeywordTok{elif [[} \StringTok{"}\VariableTok{$image\_type}\StringTok{"} \OtherTok{==} \StringTok{"}\VariableTok{$IMAGE\_TYPE\_CLONEZILLA}\StringTok{"}\KeywordTok{ ]]}\NormalTok{; }\KeywordTok{then}
+                \BuiltInTok{local}\NormalTok{ {-}r }\VariableTok{remote\_image\_id\_file=}\StringTok{"}\VariableTok{$remote\_image\_dir}\StringTok{/Info{-}img{-}id.txt"}
+                \BuiltInTok{local}\NormalTok{ {-}r }\VariableTok{cached\_image\_id\_file=}\StringTok{"}\VariableTok{$mounting\_point\_hidden}\StringTok{/}\VariableTok{$image\_name}\StringTok{/Info{-}img{-}id.txt"}
+                \BuiltInTok{local}\NormalTok{ {-}r }\VariableTok{read\_image\_id\_file=}\NormalTok{read\_clonezilla\_image\_id\_file}
+            \KeywordTok{else}
+                \ExtensionTok{fatal\_error} \StringTok{"Unhandled image type: }\VariableTok{$image\_type}\StringTok{"}
+            \KeywordTok{fi}
+
+            \KeywordTok{if [[} \OtherTok{{-}f} \StringTok{"}\VariableTok{$cached\_image\_id\_file}\StringTok{"}\KeywordTok{ ]]}\NormalTok{; }\KeywordTok{then}
+                \BuiltInTok{local}\NormalTok{ {-}r }\VariableTok{cached\_image\_id=$($read\_image\_id\_file} \StringTok{"}\VariableTok{$cached\_image\_id\_file}\StringTok{"}\VariableTok{)}
+                \KeywordTok{if [[} \OtherTok{{-}z} \StringTok{"}\VariableTok{$cached\_image\_id}\StringTok{"}\KeywordTok{ ]]}\NormalTok{; }\KeywordTok{then}
+                    \BuiltInTok{return}\NormalTok{ 1}
+                \KeywordTok{fi}
+
+                \BuiltInTok{local}\NormalTok{ {-}r }\VariableTok{remote\_image\_id=$($read\_image\_id\_file} \StringTok{"}\VariableTok{$remote\_image\_id\_file}\StringTok{"}\VariableTok{)}
+                \KeywordTok{if [[} \StringTok{"}\VariableTok{$cached\_image\_id}\StringTok{"} \OtherTok{==} \StringTok{"}\VariableTok{$remote\_image\_id}\StringTok{"}\KeywordTok{ ]]}\NormalTok{; }\KeywordTok{then}
+                    \BuiltInTok{return}\NormalTok{ 0}
+                \KeywordTok{fi}
+            \KeywordTok{fi}
+            \BuiltInTok{return}\NormalTok{ 1}
+        \KeywordTok{\}}
+
+        \ExtensionTok{start\_step\_batch} \StringTok{"cached image search"}
+        \BuiltInTok{echo} \StringTok{"Checking if image is cached..."}
+        \KeywordTok{if} \ExtensionTok{is\_image\_cached}\KeywordTok{;} \KeywordTok{then}
+            \BuiltInTok{echo} \StringTok{"Image found in cache."}
+            \VariableTok{deploy\_mode=}\StringTok{"}\VariableTok{$DEPLOY\_MODE\_ALREADY\_CACHED}\StringTok{"}
+        \KeywordTok{else}
+            \BuiltInTok{echo} \StringTok{"Image not found in cache."}
+
+            \ExtensionTok{start\_step\_batch} \StringTok{"image cache space availability check"}
+
+            \VariableTok{cache\_available\_size\_bytes=$(}\FunctionTok{df}\NormalTok{ {-}{-}block{-}size=1 {-}{-}output=avail }\StringTok{"}\VariableTok{$mounting\_point\_hidden}\StringTok{"} \KeywordTok{|} \FunctionTok{tail}\NormalTok{ {-}n 1}\VariableTok{)}
+
+            \KeywordTok{if [[} \OtherTok{{-}z} \StringTok{"}\VariableTok{$cache\_available\_size\_bytes}\StringTok{"}\KeywordTok{ ]]}\NormalTok{; }\KeywordTok{then}
+                \ExtensionTok{fatal\_error} \StringTok{"Cannot retrieve available size in cache."}
+            \KeywordTok{fi}
+
+            \KeywordTok{((}\NormalTok{cache\_available\_size\_bytes = cache\_available\_size\_bytes {-} 4096}\KeywordTok{))}
+
+            \BuiltInTok{echo} \StringTok{"Available size in cache: }\VariableTok{$cache\_available\_size\_bytes}\StringTok{ B"}
+
+            \KeywordTok{if [[} \StringTok{"}\VariableTok{$image\_type}\StringTok{"} \OtherTok{==} \StringTok{"}\VariableTok{$IMAGE\_TYPE\_RAW}\StringTok{"}\KeywordTok{ ]]}\NormalTok{; }\KeywordTok{then}
+                \VariableTok{image\_size\_bytes=$(}\FunctionTok{stat}\NormalTok{ {-}c \%s }\StringTok{"}\VariableTok{$remote\_image\_gzip\_file}\StringTok{"}\VariableTok{)}
+            \KeywordTok{elif [[} \StringTok{"}\VariableTok{$image\_type}\StringTok{"} \OtherTok{==} \StringTok{"}\VariableTok{$IMAGE\_TYPE\_CLONEZILLA}\StringTok{"}\KeywordTok{ ]]}\NormalTok{; }\KeywordTok{then}
+                \VariableTok{image\_size\_bytes=$(}\FunctionTok{du}\NormalTok{ {-}b {-}c }\StringTok{"}\VariableTok{$remote\_image\_dir}\StringTok{"} \KeywordTok{|} \FunctionTok{tail}\NormalTok{ {-}n1 }\KeywordTok{|} \FunctionTok{cut}\NormalTok{ {-}f1}\VariableTok{)}
+            \KeywordTok{else}
+                \ExtensionTok{fatal\_error} \StringTok{"Unhandled image type: }\VariableTok{$image\_type}\StringTok{"}
+            \KeywordTok{fi}
+
+            \BuiltInTok{echo} \StringTok{"Size of image to download: }\VariableTok{$image\_size\_bytes}\StringTok{ B"}
+
+            \CommentTok{\# Check enough space available in hidden partition for caching}
+            \KeywordTok{if [[} \StringTok{"}\VariableTok{$image\_size\_bytes}\StringTok{"} \OtherTok{{-}lt} \StringTok{"}\VariableTok{$cache\_available\_size\_bytes}\StringTok{"}\KeywordTok{ ]]}\NormalTok{; }\KeywordTok{then}
+                \BuiltInTok{echo} \StringTok{"Enough space for caching. Image will be cached and deployed simultaneously."}
+                \VariableTok{deploy\_mode=}\StringTok{"}\VariableTok{$DEPLOY\_MODE\_CACHED\_NOW}\StringTok{"}
+            \KeywordTok{else}
+                \BuiltInTok{echo} \StringTok{"Not enough space for caching. Image will be deployed without caching."}
+                \VariableTok{deploy\_mode=}\StringTok{"}\VariableTok{$DEPLOY\_MODE\_NOT\_CACHED}\StringTok{"}
+            \KeywordTok{fi}
+        \KeywordTok{fi}
+    \KeywordTok{fi}
+
+    \FunctionTok{deploy\_image\_with\_clonezilla()} \KeywordTok{\{}
+        \BuiltInTok{local}\NormalTok{ {-}r }\VariableTok{clonezilla\_images\_dir=}\StringTok{"}\VariableTok{$1}\StringTok{"}
+        \BuiltInTok{echo} \StringTok{"Starting deployment of image }\VariableTok{$image\_name}\StringTok{ from }\VariableTok{$clonezilla\_images\_dir}\StringTok{ with clonezilla..."}
+        \CommentTok{\# yes \textquotesingle{}\textquotesingle{} 2\textgreater{}/dev/null |}
+        \ExtensionTok{ocs{-}sr} \KeywordTok{\textbackslash{}}
+            \ExtensionTok{{-}{-}ignore{-}update{-}efi{-}nvram} \KeywordTok{\textbackslash{}}
+            \ExtensionTok{{-}{-}ocsroot} \StringTok{"}\VariableTok{$clonezilla\_images\_dir}\StringTok{"} \KeywordTok{\textbackslash{}}
+            \ExtensionTok{{-}{-}skip{-}check{-}restorable{-}r} \KeywordTok{\textbackslash{}}
+            \ExtensionTok{{-}{-}nogui} \KeywordTok{\textbackslash{}}
+            \ExtensionTok{{-}{-}batch} \KeywordTok{\textbackslash{}}
+            \ExtensionTok{restoredisk} \StringTok{"}\VariableTok{$image\_name}\StringTok{"}\NormalTok{ sda}
+
+        \BuiltInTok{echo} \StringTok{"Checking for error during clonezilla deployment..."}
+
+        \KeywordTok{if} \FunctionTok{grep} \StringTok{"Failed to restore partition image file"}\NormalTok{ /var/log/clonezilla.log}\KeywordTok{;} \KeywordTok{then}
+            \ExtensionTok{fatal\_error} \StringTok{"Error while deploying image with clonezilla."}
+        \KeywordTok{fi}
+
+        \BuiltInTok{echo} \StringTok{"Image deployed with clonezilla."}
+    \KeywordTok{\}}
+
+    \FunctionTok{print\_progress()} \KeywordTok{\{}
+        \ExtensionTok{pv}\NormalTok{ {-}ptebar {-}{-}size }\StringTok{"}\VariableTok{$image\_size}\StringTok{"} \OperatorTok{2\textgreater{}}\StringTok{"}\VariableTok{$tty}\StringTok{"}
+    \KeywordTok{\}}
+
+    \ExtensionTok{start\_step\_batch} \StringTok{"image deployment"}
+    \KeywordTok{if [[} \StringTok{"}\VariableTok{$deploy\_mode}\StringTok{"} \OtherTok{==} \StringTok{"}\VariableTok{$DEPLOY\_MODE\_CACHED\_NOW}\StringTok{"}\KeywordTok{ ]]}\NormalTok{; }\KeywordTok{then}
+        \BuiltInTok{echo} \StringTok{"Saving image to cache and deploying it..."}
+        \KeywordTok{if [[} \StringTok{"}\VariableTok{$image\_type}\StringTok{"} \OtherTok{==} \StringTok{"}\VariableTok{$IMAGE\_TYPE\_RAW}\StringTok{"}\KeywordTok{ ]]}\NormalTok{; }\KeywordTok{then}
+            \FunctionTok{cp} \StringTok{"}\VariableTok{$remote\_image\_md5\_file}\StringTok{"} \StringTok{"}\VariableTok{$mounting\_point\_hidden}\StringTok{/"} \KeywordTok{||}
+                \ExtensionTok{fatal\_error} \StringTok{"Cannot copy hash of image to }\VariableTok{$mounting\_point\_hidden}\StringTok{"}
+
+            \FunctionTok{tee} \StringTok{"}\VariableTok{$mounting\_point\_hidden}\StringTok{/}\VariableTok{$image\_name}\StringTok{.img.gz"} \OperatorTok{\textless{}} \StringTok{"}\VariableTok{$remote\_image\_gzip\_file}\StringTok{"} \KeywordTok{|}
+                \FunctionTok{gunzip}\NormalTok{ {-}c }\KeywordTok{|}
+                \ExtensionTok{print\_progress} \KeywordTok{|}
+                \FunctionTok{dd}\NormalTok{ bs=128k of=}\StringTok{"}\VariableTok{$deployment\_disk}\StringTok{"} \KeywordTok{||}
+                \ExtensionTok{fatal\_error} \StringTok{"Cannot copy image to cache and disk."}
+        \KeywordTok{elif [[} \StringTok{"}\VariableTok{$image\_type}\StringTok{"} \OtherTok{==} \StringTok{"}\VariableTok{$IMAGE\_TYPE\_CLONEZILLA}\StringTok{"}\KeywordTok{ ]]}\NormalTok{; }\KeywordTok{then}
+            \BuiltInTok{echo} \StringTok{"Starting copy of clonezilla image to cache..."}
+            \FunctionTok{rm}\NormalTok{ {-}rf }\StringTok{"}\VariableTok{$\{mounting\_point\_hidden:?\}}\StringTok{/}\VariableTok{$image\_name}\StringTok{"}
+            \FunctionTok{cp}\NormalTok{ {-}r }\StringTok{"}\VariableTok{$remote\_image\_dir}\StringTok{"} \StringTok{"}\VariableTok{$\{mounting\_point\_hidden:?\}}\StringTok{/"} \KeywordTok{||}
+                \ExtensionTok{fatal\_error} \StringTok{"Error while copying remote image to cache."}
+            \BuiltInTok{echo} \StringTok{"Clonezilla image copied to cache."}
+            \BuiltInTok{echo} \StringTok{"Content of cache:"}
+            \FunctionTok{ls}\NormalTok{ {-}als }\StringTok{"}\VariableTok{$mounting\_point\_hidden}\StringTok{"}
+
+            \ExtensionTok{deploy\_image\_with\_clonezilla} \StringTok{"}\VariableTok{$mounting\_point\_hidden}\StringTok{"}
+        \KeywordTok{else}
+            \ExtensionTok{fatal\_error} \StringTok{"Unhandled image type: }\VariableTok{$image\_type}\StringTok{"}
+        \KeywordTok{fi}
+
+        \BuiltInTok{echo} \StringTok{"Image deployed and cached."}
+    \KeywordTok{elif [[} \StringTok{"}\VariableTok{$deploy\_mode}\StringTok{"} \OtherTok{==} \StringTok{"}\VariableTok{$DEPLOY\_MODE\_ALREADY\_CACHED}\StringTok{"}\KeywordTok{ ]]}\NormalTok{; }\KeywordTok{then}
+        \BuiltInTok{echo} \StringTok{"Deploying image from cache..."}
+
+        \KeywordTok{if [[} \StringTok{"}\VariableTok{$image\_type}\StringTok{"} \OtherTok{==} \StringTok{"}\VariableTok{$IMAGE\_TYPE\_RAW}\StringTok{"}\KeywordTok{ ]]}\NormalTok{; }\KeywordTok{then}
+            \FunctionTok{gunzip}\NormalTok{ {-}c }\StringTok{"}\VariableTok{$mounting\_point\_hidden}\StringTok{/}\VariableTok{$image\_name}\StringTok{.img.gz"} \KeywordTok{|}
+                \ExtensionTok{print\_progress} \KeywordTok{|}
+                \FunctionTok{dd}\NormalTok{ bs=1M of=}\StringTok{"}\VariableTok{$deployment\_disk}\StringTok{"} \KeywordTok{||}
+                \ExtensionTok{fatal\_error} \StringTok{"Cannot copy image from cache to disk."}
+        \KeywordTok{elif [[} \StringTok{"}\VariableTok{$image\_type}\StringTok{"} \OtherTok{==} \StringTok{"}\VariableTok{$IMAGE\_TYPE\_CLONEZILLA}\StringTok{"}\KeywordTok{ ]]}\NormalTok{; }\KeywordTok{then}
+            \ExtensionTok{deploy\_image\_with\_clonezilla} \StringTok{"}\VariableTok{$mounting\_point\_hidden}\StringTok{"}
+        \KeywordTok{else}
+            \ExtensionTok{fatal\_error} \StringTok{"Unhandled image type: }\VariableTok{$image\_type}\StringTok{"}
+        \KeywordTok{fi}
+
+        \BuiltInTok{echo} \StringTok{"Image deployed from cache."}
+    \KeywordTok{elif [[} \StringTok{"}\VariableTok{$deploy\_mode}\StringTok{"} \OtherTok{==} \StringTok{"}\VariableTok{$DEPLOY\_MODE\_NOT\_CACHED}\StringTok{"}\KeywordTok{ ]]}\NormalTok{; }\KeywordTok{then}
+        \BuiltInTok{echo} \StringTok{"Deploying image without caching..."}
+
+        \KeywordTok{if [[} \StringTok{"}\VariableTok{$image\_type}\StringTok{"} \OtherTok{==} \StringTok{"}\VariableTok{$IMAGE\_TYPE\_RAW}\StringTok{"}\KeywordTok{ ]]}\NormalTok{; }\KeywordTok{then}
+            \FunctionTok{gunzip}\NormalTok{ {-}c }\StringTok{"}\VariableTok{$remote\_image\_gzip\_file}\StringTok{"} \KeywordTok{|}
+                \ExtensionTok{print\_progress} \KeywordTok{|}
+                \FunctionTok{dd}\NormalTok{ of=}\StringTok{"}\VariableTok{$deployment\_disk}\StringTok{"}\NormalTok{ bs=128k }\KeywordTok{||}
+                \ExtensionTok{fatal\_error} \StringTok{"Cannot copy image without caching."}
+        \KeywordTok{elif [[} \StringTok{"}\VariableTok{$image\_type}\StringTok{"} \OtherTok{==} \StringTok{"}\VariableTok{$IMAGE\_TYPE\_CLONEZILLA}\StringTok{"}\KeywordTok{ ]]}\NormalTok{; }\KeywordTok{then}
+            \ExtensionTok{deploy\_image\_with\_clonezilla} \StringTok{"}\VariableTok{$remote\_images\_dir}\StringTok{"}
+        \KeywordTok{else}
+            \ExtensionTok{fatal\_error} \StringTok{"Unhandled image type: }\VariableTok{$image\_type}\StringTok{"}
+        \KeywordTok{fi}
+
+        \BuiltInTok{echo} \StringTok{"Image deployed without caching."}
+    \KeywordTok{else}
+        \ExtensionTok{fatal\_error} \StringTok{"Unhandled deploy mode: }\VariableTok{$deploy\_mode}\StringTok{"}
+    \KeywordTok{fi}
+
+    \BuiltInTok{echo} \StringTok{"Deployment of image }\VariableTok{$image\_name}\StringTok{ (}\VariableTok{$image\_size}\StringTok{ B) done."}
+
+    \KeywordTok{if} \ExtensionTok{findmnt}\NormalTok{ {-}{-}mountpoint }\StringTok{"}\VariableTok{$mounting\_point\_hidden}\StringTok{"}\KeywordTok{;} \KeywordTok{then}
+        \ExtensionTok{start\_step\_batch} \StringTok{"image cache partition unmount"}
+        \BuiltInTok{echo} \StringTok{"Unmounting hidden partition from }\VariableTok{$mounting\_point\_hidden}\StringTok{"}
+        \FunctionTok{umount} \StringTok{"}\VariableTok{$mounting\_point\_hidden}\StringTok{"} \KeywordTok{||}
+            \ExtensionTok{fatal\_error} \StringTok{"Cannot unmount hidden partition from }\VariableTok{$mounting\_point\_hidden}\StringTok{"}
+        \BuiltInTok{echo} \StringTok{"Unmounted hidden partition from }\VariableTok{$mounting\_point\_hidden}\StringTok{"}
+
+        \ExtensionTok{start\_step\_batch} \StringTok{"image cache partition check"}
+        \ExtensionTok{fsck}\NormalTok{ {-}y }\StringTok{"}\VariableTok{$hidden\_partition\_dev}\StringTok{"}
+    \KeywordTok{fi}
+
+    \ExtensionTok{start\_step\_batch} \StringTok{"EFI entrypoint file creation"}
+
+    \BuiltInTok{readonly} \VariableTok{remote\_image\_efi\_entrypoint\_file=}\StringTok{"}\VariableTok{$remote\_image\_dir}\StringTok{/efi\_entrypoint"}
+    \BuiltInTok{readonly} \VariableTok{remote\_image\_efi\_nvram\_file=}\StringTok{"}\VariableTok{$remote\_image\_dir}\StringTok{/efi{-}nvram.dat"}
+    \BuiltInTok{readonly} \VariableTok{mounting\_point\_esp=}\StringTok{"/bootiful/esp"}
+    \BuiltInTok{readonly} \VariableTok{esp\_partition=}\StringTok{"}\VariableTok{$\{deployment\_disk\}}\StringTok{1"}
+
+    \FunctionTok{mount\_esp()} \KeywordTok{\{}
+        \BuiltInTok{echo} \StringTok{"Mounting ESP partition..."}
+        \ExtensionTok{ensure\_directory} \StringTok{"}\VariableTok{$mounting\_point\_esp}\StringTok{"}
+        \ExtensionTok{refresh\_partition\_table}
+        \FunctionTok{mount} \StringTok{"}\VariableTok{$esp\_partition}\StringTok{"} \StringTok{"}\VariableTok{$mounting\_point\_esp}\StringTok{"} \KeywordTok{||}
+            \ExtensionTok{fatal\_error} \StringTok{"Cannot mount }\VariableTok{$esp\_partition}\StringTok{ on }\VariableTok{$mounting\_point\_esp}\StringTok{"}
+        \BuiltInTok{echo} \StringTok{"ESP partition mounted."}
+    \KeywordTok{\}}
+
+    \FunctionTok{write\_efi\_entrypoint\_file()} \KeywordTok{\{}
+        \BuiltInTok{local}\NormalTok{ {-}r }\VariableTok{efi\_entrypoint\_file\_content=}\StringTok{"}\VariableTok{$1}\StringTok{"}
+        \BuiltInTok{local}\NormalTok{ {-}r }\VariableTok{target\_efi\_entrypoint\_file=}\StringTok{"}\VariableTok{$mounting\_point\_esp}\StringTok{/efi\_entrypoint"}
+
+        \BuiltInTok{echo} \StringTok{"Writing efi entrypoint file \textquotesingle{}}\VariableTok{$target\_efi\_entrypoint\_file}\StringTok{\textquotesingle{}"}
+
+        \BuiltInTok{echo} \StringTok{"}\VariableTok{$efi\_entrypoint\_file\_content}\StringTok{"} \OperatorTok{\textgreater{}} \StringTok{"}\VariableTok{$target\_efi\_entrypoint\_file}\StringTok{"} \KeywordTok{||}
+            \ExtensionTok{fatal\_error} \StringTok{"Cannot write EFI entrypoint file \textquotesingle{}}\VariableTok{$target\_efi\_entrypoint\_file}\StringTok{\textquotesingle{}."}
+
+        \BuiltInTok{echo} \StringTok{"EFI entrypoint file \textquotesingle{}}\VariableTok{$target\_efi\_entrypoint\_file}\StringTok{\textquotesingle{} written."}
+
+        \FunctionTok{umount} \StringTok{"}\VariableTok{$mounting\_point\_esp}\StringTok{"}
+    \KeywordTok{\}}
+
+    \KeywordTok{if [[} \OtherTok{{-}e} \StringTok{"}\VariableTok{$remote\_image\_efi\_entrypoint\_file}\StringTok{"}\KeywordTok{ ]]}\NormalTok{; }\KeywordTok{then}
+        \BuiltInTok{echo} \StringTok{"EFI entrypoint file detected. Copying it to ESP root..."}
+        \ExtensionTok{mount\_esp}
+        \ExtensionTok{write\_efi\_entrypoint\_file} \StringTok{"}\VariableTok{$(}\FunctionTok{cat} \StringTok{"}\VariableTok{$remote\_image\_efi\_entrypoint\_file}\StringTok{"}\VariableTok{)}\StringTok{"}
+    \KeywordTok{elif [[} \OtherTok{{-}e} \StringTok{"}\VariableTok{$remote\_image\_efi\_nvram\_file}\StringTok{"}\KeywordTok{ ]]}\NormalTok{; }\KeywordTok{then}
+        \BuiltInTok{echo} \StringTok{"Trying to find boot entry from efi nvram file }\VariableTok{$remote\_image\_efi\_nvram\_file}\StringTok{..."}
+
+        \VariableTok{boot\_order\_entries=}\StringTok{"}\VariableTok{$(}\FunctionTok{sed}\NormalTok{ {-}nr }\StringTok{\textquotesingle{}s/\^{}BootOrder: ([0{-}9]+(,[0{-}9]+)*)$/\textbackslash{}1/p\textquotesingle{}} \StringTok{"}\VariableTok{$remote\_image\_efi\_nvram\_file}\StringTok{"} \KeywordTok{|}
+            \FunctionTok{head}\NormalTok{ {-}n 1 }\KeywordTok{|}
+            \FunctionTok{tr} \StringTok{\textquotesingle{},\textquotesingle{}} \StringTok{\textquotesingle{} \textquotesingle{}}\VariableTok{)}\StringTok{"}
+
+        \KeywordTok{if [[} \OtherTok{{-}n} \StringTok{"}\VariableTok{$boot\_order\_entries}\StringTok{"}\KeywordTok{ ]]}\NormalTok{; }\KeywordTok{then}
+            \BuiltInTok{echo} \StringTok{"Boot order entries found: }\VariableTok{$boot\_order\_entries}\StringTok{"}
+            \VariableTok{written\_boot\_order\_entry=}\StringTok{""}
+            \KeywordTok{for} \ExtensionTok{boot\_order\_entry}\NormalTok{ in }\VariableTok{$boot\_order\_entries}\KeywordTok{;} \KeywordTok{do}
+                \BuiltInTok{echo} \StringTok{"Trying to find boot file path for boot order entry }\VariableTok{$boot\_order\_entry}\StringTok{..."}
+                \VariableTok{boot\_file\_path=}\StringTok{"}\VariableTok{$(}\FunctionTok{sed}\NormalTok{ {-}nr }\StringTok{"s|\^{}Boot}\VariableTok{$boot\_order\_entry}\StringTok{.*\textbackslash{}tHD\textbackslash{}(1.*\textbackslash{})/File\textbackslash{}((.*)\textbackslash{}).*$|\textbackslash{}1|p"} \StringTok{"}\VariableTok{$remote\_image\_efi\_nvram\_file}\StringTok{"}\VariableTok{)}\StringTok{"}
+
+                \KeywordTok{if [[} \OtherTok{{-}z} \StringTok{"}\VariableTok{$boot\_file\_path}\StringTok{"}\KeywordTok{ ]]}\NormalTok{; }\KeywordTok{then}
+                    \BuiltInTok{echo} \StringTok{"Boot file path not found for boot entry }\VariableTok{$boot\_order\_entry}\StringTok{"}
+                    \BuiltInTok{continue}
+                \KeywordTok{fi}
+
+                \BuiltInTok{echo} \StringTok{"Boot file path found for boot entry }\VariableTok{$boot\_order\_entry}\StringTok{: }\VariableTok{$boot\_file\_path}\StringTok{"}
+
+                \ExtensionTok{mount\_esp}
+
+                \KeywordTok{if [[} \StringTok{"}\VariableTok{$boot\_file\_path}\StringTok{"}\NormalTok{ =\textasciitilde{} \^{}}\DataTypeTok{\textbackslash{}\textbackslash{}}\KeywordTok{ ]]}\NormalTok{; }\KeywordTok{then}
+                    \BuiltInTok{echo} \StringTok{"Boot file path looks like a windows{-}like path. Converting it to a unix{-}like path..."}
+                    \VariableTok{unix\_boot\_file\_path=}\StringTok{"}\VariableTok{$(}\BuiltInTok{echo} \StringTok{"}\VariableTok{$boot\_file\_path}\StringTok{"} \KeywordTok{|} \FunctionTok{tr} \DataTypeTok{\textbackslash{}\textbackslash{}\textbackslash{}\textbackslash{}}\NormalTok{ /}\VariableTok{)}\StringTok{"}
+                    \BuiltInTok{echo} \StringTok{"Windows{-}like path \textquotesingle{}}\VariableTok{$boot\_file\_path}\StringTok{\textquotesingle{} converted to unix{-}like path \textquotesingle{}}\VariableTok{$unix\_boot\_file\_path}\StringTok{\textquotesingle{}"}
+
+                    \BuiltInTok{echo} \StringTok{"Trying to find the case sensitive path for \textquotesingle{}}\VariableTok{$unix\_boot\_file\_path}\StringTok{\textquotesingle{} in EFI..."}
+                    \VariableTok{boot\_file\_path=}\StringTok{"}\VariableTok{$(}
+                        \FunctionTok{find} \StringTok{"}\VariableTok{$mounting\_point\_esp}\StringTok{"} \KeywordTok{\textbackslash{}}
+                            \ExtensionTok{{-}type}\NormalTok{ f }\KeywordTok{\textbackslash{}}
+                            \ExtensionTok{{-}ipath} \StringTok{"}\VariableTok{$mounting\_point\_esp$unix\_boot\_file\_path}\StringTok{"} \KeywordTok{\textbackslash{}}
+                            \ExtensionTok{{-}printf} \StringTok{\textquotesingle{}/\%P\textbackslash{}n\textquotesingle{}} \KeywordTok{|}
+                            \FunctionTok{head}\NormalTok{ {-}n 1}
+                    \VariableTok{)}\StringTok{"}
+
+                    \KeywordTok{if [[} \OtherTok{{-}z} \StringTok{"}\VariableTok{$boot\_file\_path}\StringTok{"}\KeywordTok{ ]]}\NormalTok{; }\KeywordTok{then}
+                        \ExtensionTok{fatal\_error} \StringTok{"Cannot find a case insensitive match for efi boot file \textquotesingle{}}\VariableTok{$unix\_boot\_file\_path}\StringTok{\textquotesingle{}"}
+                    \KeywordTok{fi}
+
+                    \BuiltInTok{echo} \StringTok{"Case insensitive EFI boot file path found: \textquotesingle{}}\VariableTok{$boot\_file\_path}\StringTok{\textquotesingle{}."}
+                \KeywordTok{fi}
+
+                \ExtensionTok{write\_efi\_entrypoint\_file} \StringTok{"set efi\_entrypoint=}\VariableTok{$boot\_file\_path}\StringTok{"}
+                \VariableTok{written\_boot\_order\_entry=}\StringTok{"}\VariableTok{$boot\_order\_entry}\StringTok{"}
+                \BuiltInTok{break}
+            \KeywordTok{done}
+
+            \KeywordTok{if [[} \OtherTok{{-}z} \StringTok{"}\VariableTok{$written\_boot\_order\_entry}\StringTok{"}\KeywordTok{ ]]}\NormalTok{; }\KeywordTok{then}
+                \ExtensionTok{fatal\_error} \StringTok{"No bootfile found in \textquotesingle{}}\VariableTok{$remote\_image\_efi\_nvram\_file}\StringTok{\textquotesingle{}."}
+            \KeywordTok{fi}
+        \KeywordTok{else}
+            \ExtensionTok{fatal\_error} \StringTok{"Boot order entries not found in \textquotesingle{}}\VariableTok{$remote\_image\_efi\_nvram\_file}\StringTok{\textquotesingle{}."}
+        \KeywordTok{fi}
+    \KeywordTok{else}
+        \BuiltInTok{echo} \StringTok{"No EFI entrypoint file or EFI nvram file found."}
+    \KeywordTok{fi}
+
+    \ExtensionTok{start\_step\_batch} \StringTok{"signature creation"}
+
+    \KeywordTok{((}\NormalTok{signature\_offset = total\_disk\_size {-} 200}\KeywordTok{))}
+    \VariableTok{signature=}\StringTok{"hepia2015"}
+
+    \BuiltInTok{echo} \StringTok{"Writing signature \textquotesingle{}}\VariableTok{$signature}\StringTok{\textquotesingle{} on offset }\VariableTok{$signature\_offset}\StringTok{ B..."}
+    \BuiltInTok{echo}\NormalTok{ {-}ne }\StringTok{"}\VariableTok{$signature}\StringTok{"} \KeywordTok{|} \FunctionTok{dd}\NormalTok{ of=}\StringTok{"}\VariableTok{$deployment\_disk}\StringTok{"}\NormalTok{ seek=}\StringTok{"}\VariableTok{$signature\_offset}\StringTok{"}\NormalTok{ bs=1 iflag=skip\_bytes }\KeywordTok{||}
+        \ExtensionTok{fatal\_error} \StringTok{"Cannot write signature at the end of the disk"}
+    \BuiltInTok{echo} \StringTok{"Signature written."}
+
+    \BuiltInTok{echo} \StringTok{"Image deployment process successful."}
+
+    \ExtensionTok{print\_step\_durations}
+
+\KeywordTok{\}} \OperatorTok{2\textgreater{}\&1} \KeywordTok{|} \FunctionTok{tee} \StringTok{"}\VariableTok{$log\_file}\StringTok{"}
+
+\BuiltInTok{exit} \StringTok{"}\VariableTok{$\{PIPESTATUS[0]\}}\StringTok{"}
+\end{Highlighting}
+\end{Shaded}
+
+\hypertarget{deployerbootiful-save-image-script-utilitaire-de-cruxe9ation-dimage-raw}{%
+\section{\texorpdfstring{\texttt{deployer/bootiful-save-image}: script
+utilitaire de création d'image
+raw}{deployer/bootiful-save-image: script utilitaire de création d'image raw}}\label{deployerbootiful-save-image-script-utilitaire-de-cruxe9ation-dimage-raw}}
+
+\begin{Shaded}
+\begin{Highlighting}[]
+\CommentTok{\#!/bin/bash}
+\BuiltInTok{readonly} \VariableTok{SCRIPT\_NAME=}\StringTok{"}\VariableTok{$(}\FunctionTok{basename} \StringTok{"}\VariableTok{$0}\StringTok{"}\VariableTok{)}\StringTok{"}
+\BuiltInTok{readonly} \VariableTok{SCRIPT\_DIR=}\StringTok{"}\VariableTok{$(}\FunctionTok{readlink}\NormalTok{ {-}m }\StringTok{"}\VariableTok{$(}\FunctionTok{dirname} \StringTok{"}\VariableTok{$0}\StringTok{"}\VariableTok{)}\StringTok{"}\VariableTok{)}\StringTok{"}
+
+\FunctionTok{usage()} \KeywordTok{\{}
+    \FunctionTok{cat} \OperatorTok{\textless{}\textless{} EOF}
+\NormalTok{Usage:}
+  \VariableTok{$SCRIPT\_DIR}\NormalTok{ IMAGE\_NAME}
+  \VariableTok{$SCRIPT\_DIR}\NormalTok{ [{-}h | {-}{-}help]}
+
+\NormalTok{Description:}
+\NormalTok{  Saves a raw dd image of the /dev/sda device to the remote server shared images}
+\NormalTok{  folder.}
+
+\NormalTok{Parameters:}
+\NormalTok{  IMAGE\_NAME  Name of the image to create}
+
+\NormalTok{Options:}
+\NormalTok{  {-}h {-}{-}help  Shows this help}
+
+\NormalTok{Example:}
+\NormalTok{  ./}\VariableTok{$SCRIPT\_NAME}\NormalTok{ debian{-}buster{-}x86\_64{-}efi}
+\OperatorTok{EOF}
+\KeywordTok{\}}
+
+\KeywordTok{if [[} \StringTok{"}\VariableTok{$1}\StringTok{"} \OtherTok{==} \StringTok{"{-}h"}\NormalTok{ || }\StringTok{"}\VariableTok{$1}\StringTok{"} \OtherTok{==} \StringTok{"{-}{-}help"}\KeywordTok{ ]]}\NormalTok{; }\KeywordTok{then}
+    \ExtensionTok{usage}
+    \BuiltInTok{exit}\NormalTok{ 0}
+\KeywordTok{fi}
+
+\BuiltInTok{readonly} \VariableTok{image\_name=}\StringTok{"}\VariableTok{$1}\StringTok{"}
+\KeywordTok{if [[} \OtherTok{{-}z} \StringTok{"}\VariableTok{$image\_name}\StringTok{"}\KeywordTok{ ]]}\NormalTok{; }\KeywordTok{then}
+    \ExtensionTok{usage}
+    \BuiltInTok{exit}\NormalTok{ 1}
+\KeywordTok{fi}
+
+\CommentTok{\# Loads declarations from the \textquotesingle{}bootiful{-}common\textquotesingle{} script, which is a "library"}
+\CommentTok{\# of functions and constants shared by multiple bootiful{-}* scripts.}
+\BuiltInTok{readonly} \VariableTok{bootiful\_common\_script\_file=}\StringTok{"}\VariableTok{$SCRIPT\_DIR}\StringTok{/bootiful{-}common"}
+\KeywordTok{if [[} \OtherTok{!} \OtherTok{{-}f} \StringTok{"}\VariableTok{$bootiful\_common\_script\_file}\StringTok{"}\KeywordTok{ ]]}\NormalTok{; }\KeywordTok{then}
+    \OperatorTok{\textgreater{}\&2} \BuiltInTok{echo} \StringTok{"Fatal error: cannot find required script file \textquotesingle{}}\VariableTok{$bootiful\_common\_script\_file}\StringTok{\textquotesingle{}."}
+    \BuiltInTok{exit}\NormalTok{ 1}
+\KeywordTok{fi}
+\CommentTok{\# shellcheck source=./bootiful{-}common}
+\BuiltInTok{.} \StringTok{"}\VariableTok{$bootiful\_common\_script\_file}\StringTok{"}
+
+\ExtensionTok{ensure\_remote\_shared\_mounted}
+
+\BuiltInTok{echo} \StringTok{"Finding size of the image to create..."}
+\BuiltInTok{readonly} \VariableTok{parted\_unit=}\StringTok{"B"}
+
+\BuiltInTok{declare} \VariableTok{parted\_output}
+\VariableTok{parted\_output=$(}\ExtensionTok{parted}\NormalTok{ {-}{-}script }\StringTok{"}\VariableTok{$deployment\_disk}\StringTok{"}\NormalTok{ unit }\StringTok{"}\VariableTok{$parted\_unit}\StringTok{"}\NormalTok{ print}\VariableTok{)} \KeywordTok{||}
+    \ExtensionTok{fatal\_error} \StringTok{"failed to save parted output"}
+\BuiltInTok{readonly} \VariableTok{parted\_output}
+
+\BuiltInTok{declare} \VariableTok{image\_size}
+\VariableTok{image\_size=$(}\ExtensionTok{parse\_parted\_last\_partition\_end} \StringTok{"}\VariableTok{$parted\_output}\StringTok{"} \StringTok{"}\VariableTok{$parted\_unit}\StringTok{"}\VariableTok{)}
+\BuiltInTok{readonly} \VariableTok{image\_size}
+
+\BuiltInTok{echo} \StringTok{"Image size: }\VariableTok{$image\_size}\StringTok{"}
+
+\BuiltInTok{readonly} \VariableTok{image\_folder=}\StringTok{"}\VariableTok{$mounting\_point\_hidden}\StringTok{/images/}\VariableTok{$image\_name}\StringTok{"}
+
+\KeywordTok{if [[} \OtherTok{{-}d} \StringTok{"}\VariableTok{$image\_folder}\StringTok{"}\KeywordTok{ ]]}\NormalTok{; }\KeywordTok{then}
+    \BuiltInTok{echo} \StringTok{"Image folder \textquotesingle{}}\VariableTok{$image\_folder}\StringTok{\textquotesingle{} already exists."}
+    \BuiltInTok{exit}\NormalTok{ 1}
+\KeywordTok{fi}
+
+\KeywordTok{if}\NormalTok{ ! }\FunctionTok{mkdir} \StringTok{"}\VariableTok{$image\_folder}\StringTok{"}\KeywordTok{;} \KeywordTok{then}
+    \BuiltInTok{echo} \StringTok{"Cannot create image folder \textquotesingle{}}\VariableTok{$image\_folder}\StringTok{\textquotesingle{}"}
+    \BuiltInTok{exit}\NormalTok{ 1}
+\KeywordTok{fi}
+
+\BuiltInTok{readonly} \VariableTok{image\_file=}\StringTok{"}\VariableTok{$image\_folder}\StringTok{/}\VariableTok{$image\_name}\StringTok{.img.gz"}
+\KeywordTok{if}\NormalTok{ ! }\ExtensionTok{pv}\NormalTok{ {-}{-}size }\StringTok{"}\VariableTok{$image\_size}\StringTok{"}\NormalTok{ {-}{-}stop{-}at{-}size /dev/sda }\KeywordTok{|}
+        \ExtensionTok{pigz}\NormalTok{ {-}c }\OperatorTok{\textgreater{}} \StringTok{"}\VariableTok{$image\_file}\StringTok{"}
+\KeywordTok{then}
+    \BuiltInTok{echo} \StringTok{"Cannot create image file \textquotesingle{}}\VariableTok{$image\_file}\StringTok{\textquotesingle{}"}
+    \BuiltInTok{exit}\NormalTok{ 1}
+\KeywordTok{fi}
+
+\CommentTok{\# }\AlertTok{TODO}\CommentTok{: Rename md5 files to uuid because creating md5 hashes takes too much time}
+\BuiltInTok{readonly} \VariableTok{md5\_file=}\StringTok{"}\VariableTok{$image\_folder}\StringTok{/}\VariableTok{$image\_name}\StringTok{.md5"}
+\KeywordTok{if}\NormalTok{ ! }\FunctionTok{cat}\NormalTok{ /proc/sys/kernel/random/uuid }\OperatorTok{\textgreater{}} \StringTok{"}\VariableTok{$md5\_file}\StringTok{"}\KeywordTok{;} \KeywordTok{then}
+    \BuiltInTok{echo} \StringTok{"Cannot create md5 file \textquotesingle{}}\VariableTok{$md5\_file}\StringTok{\textquotesingle{}"}
+    \BuiltInTok{exit}\NormalTok{ 1}
+\KeywordTok{fi}
+
+\BuiltInTok{readonly} \VariableTok{partition\_file=}\StringTok{"}\VariableTok{$image\_folder}\StringTok{/}\VariableTok{$image\_name}\StringTok{.partition"}
+\KeywordTok{if}\NormalTok{ ! }\ExtensionTok{fdisk}\NormalTok{ {-}l /dev/sda }\OperatorTok{\textgreater{}} \StringTok{"}\VariableTok{$partition\_file}\StringTok{"}\KeywordTok{;} \KeywordTok{then}
+    \BuiltInTok{echo} \StringTok{"Cannot create partition file }\VariableTok{$partition\_file}\StringTok{"}
+    \BuiltInTok{exit}\NormalTok{ 1}
+\KeywordTok{fi}
+
+\BuiltInTok{readonly} \VariableTok{size\_file=}\StringTok{"}\VariableTok{$image\_folder}\StringTok{/}\VariableTok{$image\_name}\StringTok{.size"}
+\KeywordTok{if}\NormalTok{ ! }\FunctionTok{du} \StringTok{"}\VariableTok{$image\_file}\StringTok{"} \OperatorTok{\textgreater{}} \StringTok{"}\VariableTok{$size\_file}\StringTok{"}\KeywordTok{;} \KeywordTok{then}
+    \BuiltInTok{echo} \StringTok{"Cannot create size file }\VariableTok{$size\_file}\StringTok{"}
+    \BuiltInTok{exit}\NormalTok{ 1}
+\KeywordTok{fi}
+
+\BuiltInTok{echo} \StringTok{"Image creation successful."}
+\BuiltInTok{exit}\NormalTok{ 0}
+
+\end{Highlighting}
+\end{Shaded}
+
+\hypertarget{deployerbootiful-reset-cache-script-utilitaire-de-ruxe9initialisation-du-cache}{%
+\section{\texorpdfstring{\texttt{deployer/bootiful-reset-cache}: script
+utilitaire de réinitialisation du
+cache}{deployer/bootiful-reset-cache: script utilitaire de réinitialisation du cache}}\label{deployerbootiful-reset-cache-script-utilitaire-de-ruxe9initialisation-du-cache}}
+
+\begin{Shaded}
+\begin{Highlighting}[]
+\CommentTok{\#!/bin/bash}
+
+\BuiltInTok{readonly} \VariableTok{SCRIPT\_NAME=}\StringTok{"}\VariableTok{$(}\FunctionTok{basename} \StringTok{"}\VariableTok{$0}\StringTok{"}\VariableTok{)}\StringTok{"}
+\BuiltInTok{readonly} \VariableTok{SCRIPT\_DIR=}\StringTok{"}\VariableTok{$(}\FunctionTok{readlink}\NormalTok{ {-}m }\StringTok{"}\VariableTok{$(}\FunctionTok{dirname} \StringTok{"}\VariableTok{$0}\StringTok{"}\VariableTok{)}\StringTok{"}\VariableTok{)}\StringTok{"}
+
+\FunctionTok{usage()} \KeywordTok{\{}
+    \FunctionTok{cat} \OperatorTok{\textless{}\textless{} EOF}
+\NormalTok{Usage:}
+  \VariableTok{$SCRIPT\_DIR}\NormalTok{ [{-}h | {-}{-}help]}
+
+\NormalTok{Description:}
+\NormalTok{  Clears the bootiful image cache by re{-}creating the hidden partition}
+
+\NormalTok{Options:}
+\NormalTok{  {-}h {-}{-}help  Shows this help}
+
+\NormalTok{Example:}
+\NormalTok{  ./}\VariableTok{$SCRIPT\_NAME}
+\OperatorTok{EOF}
+\KeywordTok{\}}
+
+\KeywordTok{if [[} \StringTok{"}\VariableTok{$1}\StringTok{"} \OtherTok{==} \StringTok{"{-}h"}\NormalTok{ || }\StringTok{"}\VariableTok{$1}\StringTok{"} \OtherTok{==} \StringTok{"{-}{-}help"}\KeywordTok{ ]]}\NormalTok{; }\KeywordTok{then}
+    \ExtensionTok{usage}
+    \BuiltInTok{exit}\NormalTok{ 0}
+\KeywordTok{fi}
+
+\CommentTok{\# Loads declarations from the \textquotesingle{}bootiful{-}common\textquotesingle{} script, which is a "library"}
+\CommentTok{\# of functions and constants shared by multiple bootiful{-}* scripts.}
+\BuiltInTok{readonly} \VariableTok{bootiful\_common\_script\_file=}\StringTok{"}\VariableTok{$SCRIPT\_DIR}\StringTok{/bootiful{-}common"}
+\KeywordTok{if [[} \OtherTok{!} \OtherTok{{-}f} \StringTok{"}\VariableTok{$bootiful\_common\_script\_file}\StringTok{"}\KeywordTok{ ]]}\NormalTok{; }\KeywordTok{then}
+    \OperatorTok{\textgreater{}\&2} \BuiltInTok{echo} \StringTok{"Fatal error: cannot find required script file \textquotesingle{}}\VariableTok{$bootiful\_common\_script\_file}\StringTok{\textquotesingle{}."}
+    \BuiltInTok{exit}\NormalTok{ 1}
+\KeywordTok{fi}
+\CommentTok{\# shellcheck source=./bootiful{-}common}
+\BuiltInTok{.} \StringTok{"}\VariableTok{$bootiful\_common\_script\_file}\StringTok{"}
+
+\ExtensionTok{validate\_exists} \StringTok{"}\VariableTok{$deployment\_disk}\StringTok{"}
+\ExtensionTok{create\_hidden\_partition}
+\end{Highlighting}
+\end{Shaded}
+
+\hypertarget{dhcpdockerfile-configuration-docker-du-serveur-dhcp}{%
+\section{\texorpdfstring{\texttt{dhcp/Dockerfile}: configuration
+\emph{Docker} du serveur
+\protect\hyperlink{acronym__DHCP}{DHCP}}{dhcp/Dockerfile: configuration Docker du serveur DHCP}}\label{dhcpdockerfile-configuration-docker-du-serveur-dhcp}}
+
+\begin{Shaded}
+\begin{Highlighting}[]
+\KeywordTok{FROM}\NormalTok{ alpine:3.12}
+\KeywordTok{RUN}\NormalTok{ apk add dhcp{-}server{-}vanilla \&\& touch /var/lib/dhcp/dhcpd.leases}
+\KeywordTok{COPY}\NormalTok{ dhcpd.conf /etc/dhcp/dhcpd.conf}
+\KeywordTok{EXPOSE}\NormalTok{ 67}
+\KeywordTok{ENTRYPOINT}\NormalTok{ [}\StringTok{"dhcpd"}\NormalTok{, }\StringTok{"{-}f"}\NormalTok{]}
+\end{Highlighting}
+\end{Shaded}
+
+\hypertarget{dhcpdhcpd.conf-configuration-du-serveur-dhcp}{%
+\section{\texorpdfstring{\texttt{dhcp/dhcpd.conf}: configuration du
+serveur
+\protect\hyperlink{acronym__DHCP}{DHCP}}{dhcp/dhcpd.conf: configuration du serveur DHCP}}\label{dhcpdhcpd.conf-configuration-du-serveur-dhcp}}
+
+\begin{Shaded}
+\begin{Highlighting}[]
+\ExtensionTok{allow}\NormalTok{ bootp}\KeywordTok{;}
+
+\ExtensionTok{subnet}\NormalTok{ 192.168.56.0 netmask 255.255.255.0 \{}
+    \ExtensionTok{range}\NormalTok{ 192.168.56.10 192.168.56.80}\KeywordTok{;}
+    \ExtensionTok{default{-}lease{-}time}\NormalTok{ 600}\KeywordTok{;}
+    \ExtensionTok{max{-}lease{-}time}\NormalTok{ 7200}\KeywordTok{;}
+
+\CommentTok{\#   option domain{-}name{-}servers 10.136.132.100;}
+\CommentTok{\#   option routers  192.168.56.100;}
+
+    \ExtensionTok{class} \StringTok{"pxeclient"}\NormalTok{ \{}
+        \ExtensionTok{match}\NormalTok{ if substring (option vendor{-}class{-}identifier, 0, 9) = }\StringTok{"PXEClient"}\NormalTok{;}
+        \ExtensionTok{next{-}server}\NormalTok{ 192.168.56.100}\KeywordTok{;}
+        \ExtensionTok{option}\NormalTok{ tftp{-}server{-}name }\StringTok{"192.168.56.100"}\KeywordTok{;}
+
+        \KeywordTok{if} \ExtensionTok{substring}\NormalTok{ (option vendor{-}class{-}identifier, 15, 5) = }\StringTok{"00000"} \KeywordTok{\{}
+            \ExtensionTok{option}\NormalTok{ bootfile{-}name   }\StringTok{"/boot/grub/i386{-}pc/core.0"}\KeywordTok{;}
+        \KeywordTok{\}}
+        \ExtensionTok{elsif}\NormalTok{ substring (option vendor{-}class{-}identifier, 15, 5) = }\StringTok{"00006"} \KeywordTok{\{}
+            \ExtensionTok{option}\NormalTok{ bootfile{-}name }\StringTok{"/boot/grub/i386{-}efi/core.efi"}\KeywordTok{;}
+        \KeywordTok{\}}
+        \KeywordTok{else} \KeywordTok{\{}
+         \ExtensionTok{option}\NormalTok{ bootfile{-}name }\StringTok{"/boot/grub/x86\_64{-}efi/core.efi"}\KeywordTok{;} 
+        \KeywordTok{\}}
+\NormalTok{    \}}
+
+    \ExtensionTok{class} \StringTok{"normalclient"}\NormalTok{ \{}
+        \ExtensionTok{match}\NormalTok{ if substring (option vendor{-}class{-}identifier, 0, 9) != }\StringTok{"PXEClient"}\NormalTok{;}
+\NormalTok{    \}}
+\NormalTok{\}}
+
+\end{Highlighting}
+\end{Shaded}
+
+\hypertarget{grubdockerfile-configuration-docker-pour-la-compilation-de-grub}{%
+\section{\texorpdfstring{\texttt{grub/Dockerfile}: configuration
+\emph{Docker} pour la compilation de
+\protect\hyperlink{acronym__GRUB}{GRUB}}{grub/Dockerfile: configuration Docker pour la compilation de GRUB}}\label{grubdockerfile-configuration-docker-pour-la-compilation-de-grub}}
+
+\begin{Shaded}
+\begin{Highlighting}[]
+\KeywordTok{FROM}\NormalTok{ debian:buster AS build{-}stage}
+\KeywordTok{RUN}\NormalTok{ apt{-}get update \&\& apt{-}get install {-}y {-}{-}no{-}install{-}recommends \textbackslash{}}
+\NormalTok{        gcc \textbackslash{}}
+\NormalTok{        make \textbackslash{}}
+\NormalTok{        bison \textbackslash{}}
+\NormalTok{        gettext \textbackslash{}}
+\NormalTok{        binutils \textbackslash{}}
+\NormalTok{        flex \textbackslash{}}
+\NormalTok{        pkg{-}config \textbackslash{}}
+\NormalTok{        libdevmapper{-}dev \textbackslash{}}
+\NormalTok{        libfreetype6{-}dev \textbackslash{}}
+\NormalTok{        unifont \textbackslash{}}
+\NormalTok{        python \textbackslash{}}
+\NormalTok{        automake \textbackslash{}}
+\NormalTok{        autoconf}
+
+\KeywordTok{WORKDIR}\NormalTok{ /bootiful{-}grub}
+\KeywordTok{ADD}\NormalTok{ ./bootiful{-}grub ./}
+
+\KeywordTok{ARG}\NormalTok{ PLATFORM}
+\KeywordTok{ARG}\NormalTok{ TARGET}
+\KeywordTok{RUN}\NormalTok{ ./configure {-}{-}with{-}platform=$\{PLATFORM\} {-}{-}target=$\{TARGET\}}
+\KeywordTok{RUN}\NormalTok{ make}
+\KeywordTok{RUN}\NormalTok{ make install}
+
+\KeywordTok{RUN}\NormalTok{ grub{-}mknetdir {-}{-}net{-}directory=./netdir {-}{-}subdir=./boot/grub}
+
+\KeywordTok{FROM}\NormalTok{ scratch AS export{-}stage}
+\KeywordTok{COPY}\NormalTok{ {-}{-}from=build{-}stage ./bootiful{-}grub/netdir /}
+\end{Highlighting}
+\end{Shaded}
+
+\hypertarget{nfsdockerfile-configuration-docker-du-serveur-nfs}{%
+\section{\texorpdfstring{\texttt{nfs/Dockerfile}: configuration
+\emph{Docker} du serveur
+\protect\hyperlink{acronym__NFS}{NFS}}{nfs/Dockerfile: configuration Docker du serveur NFS}}\label{nfsdockerfile-configuration-docker-du-serveur-nfs}}
+
+\begin{Shaded}
+\begin{Highlighting}[]
+\KeywordTok{FROM}\NormalTok{ erichough/nfs{-}server}
+\KeywordTok{ADD}\NormalTok{ nfsroot.tar.gz /nfsrootsrc/}
+\KeywordTok{COPY}\NormalTok{ exports /etc/exports}
+\KeywordTok{VOLUME}\NormalTok{ /nfsroot}
+\KeywordTok{VOLUME}\NormalTok{ /nfsshared}
+\KeywordTok{ENTRYPOINT}\NormalTok{ cp {-}a nfsrootsrc/rootfs/. /nfsroot/ \&\& entrypoint.sh}
+\end{Highlighting}
+\end{Shaded}
+
+\hypertarget{nfsexports-configuration-des-partages-du-serveur-nfs}{%
+\section{\texorpdfstring{\texttt{nfs/exports}: configuration des
+partages du serveur
+\protect\hyperlink{acronym__NFS}{NFS}}{nfs/exports: configuration des partages du serveur NFS}}\label{nfsexports-configuration-des-partages-du-serveur-nfs}}
+
+\begin{Shaded}
+\begin{Highlighting}[]
+\CommentTok{\# /etc/exports: the access control list for filesystems which may be exported}
+\CommentTok{\#       to NFS clients.  See exports(5).}
+\CommentTok{\#}
+\CommentTok{\# Example for NFSv2 and NFSv3:}
+\CommentTok{\# /srv/homes       hostname1(rw,sync,no\_subtree\_check) hostname2(ro,sync,no\_subtree\_check)}
+\CommentTok{\#}
+\CommentTok{\# Example for NFSv4:}
+\CommentTok{\# /srv/nfs4        gss/krb5i(rw,sync,fsid=0,crossmnt,no\_subtree\_check)}
+\CommentTok{\# /srv/nfs4/homes  gss/krb5i(rw,sync,no\_subtree\_check)}
+\CommentTok{\#}
+\ExtensionTok{/nfsroot}\NormalTok{         *(ro,fsid=0,no\_root\_squash,no\_subtree\_check,async,insecure)}
+\ExtensionTok{/nfsshared}\NormalTok{       *(rw,fsid=1,no\_root\_squash,no\_subtree\_check,async,insecure)}
+\end{Highlighting}
+\end{Shaded}
+
+\hypertarget{tftpdockerfile-configuration-docker-du-serveur-tftp}{%
+\section{\texorpdfstring{\texttt{tftp/Dockerfile}: configuration
+\emph{Docker} du serveur
+\protect\hyperlink{acronym__TFTP}{TFTP}}{tftp/Dockerfile: configuration Docker du serveur TFTP}}\label{tftpdockerfile-configuration-docker-du-serveur-tftp}}
+
+\begin{Shaded}
+\begin{Highlighting}[]
+\KeywordTok{FROM}\NormalTok{ alpine:3.12}
+\KeywordTok{RUN}\NormalTok{ apk add tftp{-}hpa}
+\KeywordTok{VOLUME}\NormalTok{ /tftpboot}
+\KeywordTok{EXPOSE}\NormalTok{ 69/udp}
+\KeywordTok{ENTRYPOINT}\NormalTok{ [}\StringTok{"in.tftpd"}\NormalTok{, }\StringTok{"{-}{-}foreground"}\NormalTok{, }\StringTok{"{-}{-}address"}\NormalTok{, }\StringTok{":69"}\NormalTok{, }\StringTok{"{-}{-}secure"}\NormalTok{, }\StringTok{"{-}{-}verbose"}\NormalTok{, }\StringTok{"/tftpboot"}\NormalTok{]}
+\end{Highlighting}
+\end{Shaded}
+
+\hypertarget{tftptftpd-hpa-configuration-du-serveur-tftp}{%
+\section{\texorpdfstring{\texttt{tftp/tftpd-hpa}: configuration du
+serveur
+\protect\hyperlink{acronym__TFTP}{TFTP}}{tftp/tftpd-hpa: configuration du serveur TFTP}}\label{tftptftpd-hpa-configuration-du-serveur-tftp}}
+
+\begin{Shaded}
+\begin{Highlighting}[]
+\VariableTok{TFTP\_USERNAME=}\StringTok{"tftp"}
+\VariableTok{TFTP\_DIRECTORY=}\StringTok{"/tftpboot"}
+\VariableTok{TFTP\_ADDRESS=}\StringTok{":69"}
+\VariableTok{TFTP\_OPTIONS=}\StringTok{"{-}s {-}c"}
+\VariableTok{RUN\_DAEMON=}\StringTok{"yes"}
+\end{Highlighting}
+\end{Shaded}
+
+\hypertarget{tftptftpbootbootgrubgrub.cfg-configuration-de-grub-servie-par-tftp}{%
+\section{\texorpdfstring{\texttt{tftp/tftpboot/boot/grub/grub.cfg}:
+configuration de \protect\hyperlink{acronym__GRUB}{GRUB} servie par
+\protect\hyperlink{acronym__TFTP}{TFTP}}{tftp/tftpboot/boot/grub/grub.cfg: configuration de GRUB servie par TFTP}}\label{tftptftpbootbootgrubgrub.cfg-configuration-de-grub-servie-par-tftp}}
+
+\begin{Shaded}
+\begin{Highlighting}[]
+\KeywordTok{set} \VariableTok{timeout=}\NormalTok{3}
+
+\ExtensionTok{insmod}\NormalTok{ part\_msdos}
+\ExtensionTok{insmod}\NormalTok{ part\_gpt}
+\ExtensionTok{insmod}\NormalTok{ isign}
+\ExtensionTok{insmod}\NormalTok{ all\_video}
+
+\ExtensionTok{isign}\NormalTok{ {-}c hepia2015 (hd0)}
+\KeywordTok{set} \VariableTok{check1=$?}
+\KeywordTok{if}\BuiltInTok{ [} \VariableTok{$check1} \OtherTok{==}\NormalTok{ 101}\BuiltInTok{ ]}\NormalTok{; }\KeywordTok{then}
+    \ExtensionTok{isign}\NormalTok{ {-}w 000000000 (hd0)}
+
+    \ExtensionTok{menuentry} \StringTok{"Local HDD"}\NormalTok{ \{}
+        \KeywordTok{set} \VariableTok{root=(}\NormalTok{hd0,1}\VariableTok{)}
+
+        \KeywordTok{if}\BuiltInTok{ [} \OtherTok{{-}e}\NormalTok{ /efi\_entrypoint}\BuiltInTok{ ]}\NormalTok{; }\KeywordTok{then}
+            \BuiltInTok{echo} \StringTok{"Reading EFI entry point from (hd0,1)/efi\_entrypoint file..."}
+            \BuiltInTok{source}\NormalTok{ /efi\_entrypoint}
+
+            \BuiltInTok{echo} \StringTok{"Chainloading to }\VariableTok{$efi\_entrypoint}\StringTok{"}
+            \ExtensionTok{chainloader} \VariableTok{$efi\_entrypoint}
+        \KeywordTok{else}
+            \BuiltInTok{echo} \StringTok{"Legacy chainloading to (hd0,1)+1..."}
+            \ExtensionTok{chainloader}\NormalTok{ +1}
+        \KeywordTok{fi}
+\NormalTok{    \}}
+\KeywordTok{fi}
+
+\ExtensionTok{menuentry} \StringTok{"Bootiful deployer"}\NormalTok{ \{}
+    \BuiltInTok{echo} \StringTok{"Loading vmlinuz..."}
+    \ExtensionTok{linux}\NormalTok{ boot/deployer/vmlinuz root=/dev/nfs nfsroot=}\VariableTok{$net\_default\_server}\NormalTok{:/nfsroot ro}
+    \ExtensionTok{initrd}\NormalTok{ boot/deployer/initrd.img}
+\NormalTok{\}}
+
+\end{Highlighting}
+\end{Shaded}
+
+\hypertarget{source_ansible_run}{%
+\section{\texorpdfstring{\texttt{postdeploy/bootiful-postdeploy}: script
+de post-déploiement qui exécute les playbooks \emph{Ansible} présents
+dans un
+dossier}{postdeploy/bootiful-postdeploy: script de post-déploiement qui exécute les playbooks Ansible présents dans un dossier}}\label{source_ansible_run}}
+
+\begin{Shaded}
+\begin{Highlighting}[]
+\CommentTok{\#!/bin/bash}
+
+\KeywordTok{function}\FunctionTok{ log()} \KeywordTok{\{}
+    \BuiltInTok{local}\NormalTok{ {-}r }\VariableTok{log\_message=}\StringTok{"}\VariableTok{$0}\StringTok{"}
+    \OperatorTok{\textgreater{}\&2} \BuiltInTok{echo} \StringTok{"}\VariableTok{$log\_message}\StringTok{"}
+\KeywordTok{\}}
+
+\KeywordTok{function}\FunctionTok{ fatal\_error()} \KeywordTok{\{}
+    \BuiltInTok{local}\NormalTok{ {-}r }\VariableTok{error\_message=}\StringTok{"}\VariableTok{$0}\StringTok{"}
+    \ExtensionTok{log} \StringTok{"Fatal error: }\VariableTok{$error\_message}\StringTok{"}
+
+    \ExtensionTok{log} \StringTok{"Stack trace:"}
+    \BuiltInTok{local} \VariableTok{frame=}\NormalTok{0}
+    \KeywordTok{while} \OperatorTok{\textgreater{}\&2} \BuiltInTok{caller} \VariableTok{$frame}\KeywordTok{;} \KeywordTok{do}
+        \KeywordTok{((}\NormalTok{frame++}\KeywordTok{))}
+    \KeywordTok{done}
+
+    \BuiltInTok{exit}\NormalTok{ 1}
+\KeywordTok{\}}
+
+\ExtensionTok{log} \StringTok{"Starting bootiful post{-}deployment script..."}
+\BuiltInTok{readonly} \VariableTok{playbooks\_dir=}\StringTok{"/etc/bootiful/postdeploy{-}playbooks"}
+\KeywordTok{[[} \OtherTok{{-}d} \StringTok{"}\VariableTok{$playbooks\_dir}\StringTok{"}\KeywordTok{ ]]} \KeywordTok{||} \ExtensionTok{fatal\_error} \StringTok{"playbooks directory \textquotesingle{}}\VariableTok{$playbooks\_dir}\StringTok{\textquotesingle{} not found."}
+
+\BuiltInTok{readonly} \VariableTok{playbook\_files=}\StringTok{"}\VariableTok{$()}\StringTok{"}
+
+\KeywordTok{if [[} \OtherTok{{-}z} \StringTok{"}\VariableTok{$playbook\_files}\StringTok{"}\KeywordTok{ ]]}\NormalTok{; }\KeywordTok{then}
+    \ExtensionTok{log} \StringTok{"no story found in directory \textquotesingle{}}\VariableTok{$playbooks\_dir}\StringTok{\textquotesingle{}. Exiting."}
+    \BuiltInTok{exit}\NormalTok{ 0}
+\KeywordTok{fi}
+
+\FunctionTok{run\_playbook()} \KeywordTok{\{}
+    \BuiltInTok{local}\NormalTok{ {-}r }\VariableTok{playbook\_file=}\StringTok{"}\VariableTok{$0}\StringTok{"}
+    \ExtensionTok{log} \StringTok{"Executing playbook file \textquotesingle{}}\VariableTok{$playbook\_file}\StringTok{\textquotesingle{}..."}
+\NormalTok{    [[ }\ExtensionTok{{-}f} \StringTok{"}\VariableTok{$playbook\_file}\StringTok{"}\NormalTok{ ]] }\KeywordTok{||} \ExtensionTok{fatal\_error} \StringTok{"playbook file }\VariableTok{$playbook\_file}\StringTok{ not found."}
+
+    \ExtensionTok{ansible{-}playbook} \KeywordTok{\textbackslash{}}
+        \ExtensionTok{{-}{-}connection}\NormalTok{=local }\KeywordTok{\textbackslash{}}
+        \ExtensionTok{{-}{-}inventory}\NormalTok{=127.0.0.1, }\KeywordTok{\textbackslash{}}
+        \StringTok{"}\VariableTok{$playbook\_file}\StringTok{"} \KeywordTok{\textbackslash{}}
+        \KeywordTok{||} \ExtensionTok{fatal\_error} \StringTok{"error while executing playbook file "}
+
+    \ExtensionTok{log} \StringTok{"Execution of playbook file \textquotesingle{}}\VariableTok{$playbook\_file}\StringTok{\textquotesingle{} successful."}
+\KeywordTok{\}}
+\BuiltInTok{export}\NormalTok{ {-}f }\VariableTok{run\_playbook}
+
+\CommentTok{\# shellcheck disable=SC2016 \# we do not want to expand $1 in bash command}
+\FunctionTok{find} \StringTok{"}\VariableTok{$playbooks\_dir}\StringTok{"}\NormalTok{ {-}maxdepth 1 {-}type f {-}name }\StringTok{\textquotesingle{}*.yml\textquotesingle{}}\NormalTok{ {-}print0 }\KeywordTok{|}
+    \FunctionTok{sort}\NormalTok{ {-}z }\KeywordTok{|}
+    \FunctionTok{xargs}\NormalTok{ {-}n1 {-}0 bash {-}c }\StringTok{$\textquotesingle{}trap }\DataTypeTok{\textbackslash{}\textquotesingle{}}\StringTok{[[ $? == 0 ]] || exit 255}\DataTypeTok{\textbackslash{}\textquotesingle{}}\StringTok{ EXIT; run\_playbook "$1"\textquotesingle{}}\NormalTok{ {-}{-}}
+\end{Highlighting}
+\end{Shaded}
+
+\hypertarget{source_ansible_init}{%
+\section{\texorpdfstring{\texttt{postdeploy/bootiful-postdeploy.service}:
+configuration de l'unité \emph{Systemd} pour exécuter des scripts de
+post-déploiement sur un
+client}{postdeploy/bootiful-postdeploy.service: configuration de l'unité Systemd pour exécuter des scripts de post-déploiement sur un client}}\label{source_ansible_init}}
+
+\begin{Shaded}
+\begin{Highlighting}[]
+\KeywordTok{[Unit]}
+\DataTypeTok{Description}\OtherTok{=}\StringTok{Runs bootiful post{-}deployment script }\KeywordTok{on}\StringTok{ boot}
+\DataTypeTok{After}\OtherTok{=}\StringTok{network.target}
+
+\KeywordTok{[Service]}
+\DataTypeTok{ExecStart}\OtherTok{=}\StringTok{/usr/local/bin/bootiful{-}postdeploy}
+\DataTypeTok{Type}\OtherTok{=}\StringTok{oneshot}
+
+\KeywordTok{[Install]}
+\DataTypeTok{WantedBy}\OtherTok{=}\StringTok{multi{-}user.target}
+\end{Highlighting}
+\end{Shaded}
 
-\hypertarget{retour-personnel-sur-la-maniuxe8re-dont-le-travail-sest-effectuuxe9}{%
-\subsection{Retour personnel sur la manière dont le travail s'est
-effectué}\label{retour-personnel-sur-la-maniuxe8re-dont-le-travail-sest-effectuuxe9}}
+\hypertarget{refs}{}
+\begin{cslreferences}
+\leavevmode\hypertarget{ref-venkatesh_remote_imaging}{}%
+\textbf{1}. VENKATESH, Abhilash. Remote imaging. GitLab. {[}en~ligne{]}.
+{[}Consulté~le~16~août~2020{]}. Disponible à l'adresse~:
+\url{https://githepia.hesge.ch/abhilash.venkates/remote-imaging}
+\end{cslreferences}
 
 \backmatter
 \end{document}
diff --git a/doc/references.bib b/doc/references.bib
new file mode 100644
index 0000000..87842cf
--- /dev/null
+++ b/doc/references.bib
@@ -0,0 +1,123 @@
+
+@online{venkatesh_remote_imaging,
+	title = {Remote imaging},
+	url = {https://githepia.hesge.ch/abhilash.venkates/remote-imaging},
+	abstract = {On fly remote imaging},
+	titleaddon = {{GitLab}},
+	author = {Venkatesh, Abhilash},
+	urldate = {2020-08-16},
+	langid = {english},
+}
+
+@online{noauthor_linux_nodate,
+	title = {Linux Remote-Boot mini-{HOWTO}: Configuring Remote-Boot Workstations with Linux, {DOS}, Windows 95/98 and Windows {NT}},
+	url = {https://www.tldp.org/HOWTO/Remote-Boot.html#toc3},
+	urldate = {2020-08-16}
+}
+
+@online{noauthor_diskless_nodate,
+	title = {Diskless system - {ArchWiki}},
+	url = {https://wiki.archlinux.org/index.php/Diskless_system},
+	urldate = {2020-08-16}
+}
+
+@article{blanchet_read-only_2016,
+	title = {Read-only {NFS} Root with Debian 8},
+	pages = {20},
+	author = {Blanchet, Sébastien},
+	date = {2016},
+	langid = {english},
+}
+
+@online{noauthor_multistrap1_nodate,
+	title = {multistrap(1) — multistrap — Debian buster — Debian Manpages},
+	url = {https://manpages.debian.org/buster/multistrap/multistrap.1.en.html},
+	urldate = {2020-08-16}
+}
+
+@online{noauthor_execute_nodate,
+	title = {Execute an interactive script at boot with systemd},
+	url = {https://alan-mushi.github.io/2014/10/26/execute-an-interactive-script-at-boot-with-systemd.html},
+	urldate = {2020-08-16}
+}
+
+@online{noauthor_lancer_nodate,
+	title = {Lancer un script sur une console virtuelle - systemd / Wiki / Debian-facile},
+	url = {https://debian-facile.org/doc:programmation:bash:script:systemd:script-sur-un-vt},
+	urldate = {2020-08-16}
+}
+
+@online{noauthor_rethinking_nodate,
+	title = {Rethinking {PID} 1},
+	url = {http://0pointer.de/blog/projects/systemd.html},
+	urldate = {2020-08-16}
+}
+
+@online{ludwar_ansible-pull_2016,
+	title = {Ansible-pull and kickstart, for one-touch server provisioning},
+	url = {https://calgaryrhce.ca/blog/2016/02/03/ansible-pull-and-kickstart-for-one-touch-server-provisioning/},
+	abstract = {Recently I’ve been learning and using Ansible as my configuration management tool. It came recommended by several colleagues, recently had an O’Reilly book published, and went through an aquisition. Safe to say its momentum and adoption is on a high… and so far, I’m loving using it. I find it vastly easier to setup and use than Puppet, Chef, {CFengine}, or {SaltStack}.},
+	titleaddon = {Calgary {RHCE}},
+	author = {Ludwar, Andrew},
+	urldate = {2020-08-16},
+	date = {2016-02-03},
+	langid = {english},
+}
+
+@online{admin_how_2019,
+	title = {How to Run Ansible Playbook Locally {\textbar} {DevOps} Junction},
+	url = {https://www.middlewareinventory.com/blog/run-ansible-playbook-locally/},
+	abstract = {How to Run Ansible Playbook Locally on a Control machine. {HOw} to run Ansible Playbook on Localhost. In this post we are going to discuss about how to run your playbook on the local control machine before you execute it with the remote server or host. How to limit the playbook to run on localhost with example},
+	titleaddon = {Middleware Inventory},
+	author = {{admin}},
+	urldate = {2020-08-16},
+	date = {2019-07-17},
+	langid = {american},
+	note = {Section: Ansible},
+}
+
+@online{noauthor_gpp_nodate,
+	title = {{GPP} 2.26 — Generic Preprocessor},
+	url = {https://files.nothingisreal.com/software/gpp/gpp.html},
+	urldate = {2020-08-16}
+}
+
+@online{bpbatch_homepage,
+	title = {BPBatch home page},
+	url = {http://www.bpbatch.org},
+	urldate = {2020-08-16},
+}
+
+@online{registre_commerce_rembo,
+	title = {Registre du Commerce du Canton de Genève},
+	url = {http://ge.ch/hrcintapp/externalCompanyReport.action?companyOfsUid=CHE-105.105.486&lang=FR},
+	urldate = {2020-08-16},
+}
+
+@online{clonezilla_home,
+	title = {Clonezilla},
+	url = {https://clonezilla.org/},
+	urldate = {2020-08-16}
+}
+
+@online{ibm_rembo,
+	title = {{IBM} met la main sur Rembo Technology},
+	url = {https://www.journaldunet.com/solutions/cloud-computing/1060590-ibm-met-la-main-sur-rembo-technology/},
+	urldate = {2020-08-16},
+	langid = {french},
+	file = {Snapshot:/home/araxor/Zotero/storage/BU5TCN6Y/1060590-ibm-met-la-main-sur-rembo-technology.html:text/html}
+}
+
+@online{fog_wiki_intro,
+	title = {{FOG} Project wiki (introduction)},
+	url = {https://wiki.fogproject.org/wiki/index.php?title=Introduction},
+	urldate = {2020-08-16}
+}
+
+@online{gluck_enonce_2020,
+	title = {Énoncé du projet Bootiful},
+	url = {https://gradechelor2.hesge.ch/studentFiles/1660/ITI_IN_enonce_diplome_Lizzi_Gluck_2020.pdf},
+	author = {Glück, Florent},
+	urldate = {2020-08-16},
+	date = {2020-05-06}
+}
\ No newline at end of file
-- 
GitLab