samedi 21 mars 2009

Debian Live le retour

Avec la sortie de Debian GNU/Linux 5.0 "Lenny" ce 14 février je me suis attelé à me replonger à nouveau dans Debian Live.


Debian Live est, comme son nom le laisse entendre, un outil très puissant qui permet de créer une version Live (Live-CD ou Live-USB ou Live-Net) entièrement personnalisée. Je l'utilise pour générer des clefs USB bootables.

Lorsque j'arrive devant un ordinateur lambda, je n'ai qu'à brancher la clef USB, forcer la machine à booter sur le port USB, et je me retrouve en quelques secondes dans ma version personnalisée de Debian:
  • choix des paquets installés
  • ajout de mes propres programmes personnalisés
  • configuration du fond d'écran, de l'écran de veille
  • configuration des locales, des langues disponibles
En plus de la partition Debian Live (filesystem aufs monté en lecture seule), j'ai crée une deuxième partition sur la clef USB qui est montée en lecture/écriture et qui est persistante, c'est à dire qu'après un reboot les données restent sur la partition.

Bien entendu Debian Live ne touche pas au disque dur de la machine, donc vous pouvez l'utiliser sur une machine qui n'est pas à vous...

Debian Live génère des images pour CD/DVD (LiveCD), pour clef USB (LiveUSB), mais aussi des systèmes Debian Live qu'il est possible de démarrer par le réseau avec une machine qui supporte PXE. Un serveur DHCP/BOOTP et TFTP est également nécessaire pour démarrer par le réseau.

Voici l'incantation magique:
lh_config --mirror-binary http://debian-mirror:7777/debian/ --mirror-binary-security http://debian-mirror:7777/debian-security/ --mirror-bootstrap http://debian-mirror:7777/debian/ --mirror-chroot http://debian-mirror:7777/debian/ --mirror-chroot-security http://debian-mirror:7777/debian-security/ -b usb-hdd -d lenny --bootappend-live "quickreboot locale=fr_BE.UTF-8 keyb=be2-latin1" --hostname debian-live --packages "akregator alsa-base alsaplayer-text alsa-tools alsa-utils amarok atlantik audacity aumix bzip2 console-setup cupsys cupsys-bsd cupsys-client debian-goodies eject elinks enscript ethtool evolution evolution-exchange finger fortunes fortunes-fr frozen-bubble ghc6 gimp gkrellm gnuchess gwenview htop iceweasel iceweasel-l10n-fr imagemagick k3b k3b-i18n kalarm kasteroids kate kaudiocreator kcalc kcheckgmail kde-i18n-fr kdebase kdeprint keytouch kgoldrunner khangman khexedit kicker-applets kmahjongg kmix kompose kpat kpdf kpersonalizer kpoker kpowersave krdc kreversi kscreensaver kscreensaver-xsavers ksirtet ksnapshot kweather kwifimanager kwin4 laptop-detect less live-helper lftp lmms locate lsdvd lshw lsof lynx mc memtest86+ mpg321 mtools munin-node mutt ncftp network-manager-kde ntpdate octave3.0 openoffice.org openoffice.org-l10n-fr openssh-server partimage parted pinball psmisc qtparted resolvconf screen slay smb4k smbclient smlnj strace sysstat tcpdump tcsh telnet tofrodos traceroute unzip vim wamerican wdutch wfrench wget xorg xbill xboard xdaliclock xgalaga xine-plugin xine-ui x-ttcidfont-conf xscreensaver xserver-xorg xsysinfo xterm zsh" && lh_build

Note: on suppose que l'on dispose d'un miroir local appelé debian-mirror sur le port 7777. Personnellement j'utilise apt-cacher pour mon miroir local.

Ensuite sans surprise il suffit d'écrire le fichier binary.img directement sur la clef USB:
dd if=/home/pbn/debian-live/binary.img of=/dev/sdX

... où vous remplacez /dev/sdX par le périphérique correspondant à la clef USB. Attention, ne vous trompez pas de périphérique, sinon vous risquez d'effacer le contenu de votre disque dur ! Je vous aurai prévenu...