mirroir readonly du Gitit wiki.evolix.org (attention, ne rien commiter/merger sur ce dépôt) https://wiki.evolix.org
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

204 lines
5.8 KiB

4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
  1. ---
  2. title: Howto Custom Live CD
  3. ...
  4. * Documentation : <https://debian-live.alioth.debian.org/live-manual/unstable/manual/html/live-manual.en.html>
  5. Ce Howto permet de créer un live CD personnalisé de Debian. Cela peut être utile dans le cas où vous devez utiliser une version plus récente d’un paquet lors de l’installation (à cause de périphérique non détectés par exemple).
  6. Voir même pour les plus aguerri de créer votre propre distribution.
  7. ## Préparation
  8. Nous aurons besoin des outils suivants pour la suite.
  9. ~~~{.bash}
  10. sudo apt install live-build live-manual live-tools
  11. ~~~
  12. On créé le répertoire dans lequel on va travailler.
  13. ~~~{.bash}
  14. mkdir ~/livecd && cd ~/livecd
  15. ~~~
  16. ## Personnalisation du live CD
  17. La commande suivante permettra de créer notamment le répertoire _config/_ qui contiendra toute la configuration d'un système de base pour le live CD :
  18. ~~~{.bash}
  19. lb config
  20. ~~~
  21. Nous proposons par exemple quelques options dont la définition des dépôts, de la version du système et de l'architecture processeur supporté, etc.
  22. ~~~{.bash}
  23. lb config noauto \
  24. --mode "debian" \
  25. --system "live" \
  26. --architectures "amd64" \
  27. --distribution "stretch" \
  28. --bootappend-live "boot=live components quiet noswap" \
  29. --archive-areas "main contrib non-free" \
  30. --security "true" \
  31. --updates "true" \
  32. --backports "false" \
  33. --binary-images "iso-hybrid" \
  34. --apt-indices "true" \
  35. --apt-recommends "false" \
  36. --apt-secure "true" \
  37. --apt-source-archives "true" \
  38. --linux-package "linux-image" \
  39. --bootloader "syslinux" \
  40. --debian-installer "live" \
  41. --debian-installer-gui "false" \
  42. --iso-application "handylinux" \
  43. --parent-mirror-bootstrap "http://mirror.evolix.org/debian/" \
  44. --parent-mirror-chroot "http://mirror.evolix.org/debian/" \
  45. --parent-mirror-binary "http://mirror.evolix.org/debian/" \
  46. --memtest "none" \
  47. --clean \
  48. --debug \
  49. --verbose \
  50. --source "false" \
  51. "${@}"
  52. ~~~
  53. Ces paramètres seront retranscrit dans les fichiers _config/binary_, _config/common_ et _config/build_.
  54. *Nous conseillons de créer un fichier exécutable pour simplifier les prochaines modifications.*
  55. ## Ajout de paquets supplémentaires
  56. Si les paquets à intégrer au live CD ne sont pas présents par défaut alors il suffit de les renseigner dans le fichier _config/package-lists/live.list.chroot_.
  57. ~~~
  58. live-boot
  59. live-config
  60. live-config-systemd
  61. debootstrap
  62. vim
  63. tmux
  64. mutt
  65. postfix
  66. mailutils
  67. ~~~
  68. ## Ajout de fichiers et dossiers personnalisés
  69. Le dossier _config/includes.chroot_ reprend l'architecture d'un système Linux. C'est à dire que l'on à pas besoin d'utiliser deboostrap ou chroot, toutes créations présent dans ce dossier seront automatiquement importé dans un dossier séparé lors de sa construction.
  70. Par exemple si l'on veut importer la clé publique d'un utilisateur quelconque, on devra exécuter ces deux commandes :
  71. ~~~{.bash}
  72. mkdir config/includes.chroot/root/.ssh
  73. echo "ssh-rsa AAAAEAAAAD[...]ZDEF utilisateur@domaine.com" > config/includes.chroot/root/.ssh/authorized_keys
  74. ~~~
  75. ## Personnalisation approfondis
  76. Dans le cas d'un besoin spécifique, il est possible d'utiliser un script personnalisé qui seront à inclure dans le dossier _config/hooks_. Par exemple, nous avons besoin de préconfigurer un agent mail pour une futur envoi de mail au démarrage du système. Voici à quoi cela peut ressembler :
  77. ~~~{.bash}
  78. #!/bin/sh
  79. set -e
  80. sed -i 's/^relayhost.*/relayhost = pele.evolix.net/' /etc/postfix/main.cf
  81. sed -i 's/^mydestination.*/mydestination = evolix.net, localhost, localhost.localdomain, localhost/' /etc/postfix/main.cf
  82. systemctl restart postfix
  83. ~~~
  84. _l'option `set -e` permet de stopper la construction de l'ISO si le constructeur rencontre une erreur. Dans un le cas d'un fichier absent par exemple._
  85. ## Modifier le menu du boot
  86. Pour cela, il faut créer le dossier suivant si ce n'est pas déjà fait.
  87. ~~~
  88. mkdir config/includes.binary/isolinux/
  89. ~~~
  90. Au minimum, nous modifions le menu présent dans le fichier _config/includes.binary/isolinux/live.cfg_ pour faire booter directement notre Debian live.
  91. ~~~
  92. default live
  93. label live
  94. menu label ^Debian Live CD (Jessie x86)
  95. linux /live/vmlinuz
  96. initrd /live/initrd.img
  97. append boot=live config quiet splash
  98. ~~~
  99. Pour modifier l'image d'arrière plan, il suffit de remplacer le fichier splash.png.
  100. Pour réduire le temps de boot, on peut définir un faible timeout en modifiant le fichier _config/includes.binary/isolinux/isolinux.cfg_
  101. ~~~
  102. include menu.cfg
  103. default vesamenu.c32
  104. prompt 0
  105. timeout 10
  106. ~~~
  107. ## Création du live CD
  108. Il suffit simplement d’exécuter la commande ci-dessous.
  109. ~~~
  110. lb build
  111. ~~~
  112. au bout de 15 minutes, une image ISO du live CD sera créée et se nommera live-image-amd64.hybrid.iso.
  113. Si l'on souhaite y apporter des modifications alors on devra exécuter ces deux commandes pour repartir sur une bonne base.
  114. ~~~
  115. lb clean
  116. lb build
  117. ~~~
  118. Pour partager le dossier de construction via git, le dossier en lui même est relativement lourd. Il est possible de lancer ces deux commandes qui vont permettre de réduire son poids:
  119. ~~~
  120. lb clean --all
  121. rm -r config/hooks/cache/*
  122. rm -r config/hooks/chroot/*
  123. ~~~
  124. ## Gravure
  125. Une fois l’image prête, pour la graver :
  126. ~~~
  127. wodim -dev /dev/cdrom binary.iso
  128. ~~~
  129. ## Astuces
  130. ### Accélérer la construction via le cache
  131. Nous recommandons d'installer et configurer un cache local avec le paquet `apt-cacher-ng`.
  132. ~~~
  133. apt install apt-cacher-ng
  134. /etc/init.d/apt-cacher-ng start
  135. export http_proxy=http://localhost:3142/
  136. lb config --apt-http-proxy http://127.0.0.1:3142/
  137. ~~~
  138. La dernière commande va mettre à jour le fichier config/common.
  139. ### Supprimer totalement le cache
  140. Si l'on fait de grande modification, comme la volonté de changer de version, alors il faut supprimer les fichiers ci-dessous :
  141. ~~~
  142. rm -f config/binary config/bootstrap config/build config/chroot config/common config/source
  143. rm -Rf config/includes config/includes.bootstrap config/includes.source
  144. ~~~