RapazP Home Page
«Using GNU/Linux isn't a matter of choice. It's a matter of freedom!»
left_arrow Introduction
down_arrow GNU/Linux
left_arrow OpenSource
left_arrow Loisirs
left_arrow About me
Table des matières

1. Objectif

Bien que le liveCD d’Ubuntu contienne un lot de logiciels permettant de faire à peu près tout, certaines applications dont vous avez besoin peuvent être manquantes.

Le but de ce document est donc de créer notre propre image .iso basée sur un liveCD d’Ubuntu. Par la suite, cette image pourra également être utilisée comme base pour l’installation de vos systèmes.

Dans les grandes lignes, nous allons effectuer les opérations suivantes:

  • Supprimer les langages packs ainsi que les applications inutiles

  • Mettre à jour les logiciels fournis sur le liveCD

  • Installer de nouvelles applications / drivers

Note L’image générée sera certainement plus grande que la capacité d’un CD (800Mb) mais rien ne vous empêche de graver un DVD ou de l’installer sur une clef USB (cf. Installation du liveCD d’Ubuntu sur une clef USB)

2. Pré-requis

Pour créer votre propre image .iso, vous devez disposer des éléments suivants:

  • l’image .iso d’un liveCD d’Ubuntu

  • un système d’exploitation GNU/Linux fonctionnel

  • des droits d’administration (root)

Note Pour ma part, j’ai utilisé l’image .iso de la distribution Ubuntu 8.04 LTS (Hardy Heron) Alpha 3.

3. Préparation de l’hôte

En premier lieu, vous devez installer l’outil squashfs:

  • squashfs est un système de fichiers compressé et en lecture seule pour Linux.

$ sudo apt-get install squashfs-tools

En deuxième lieu, il faut définir les variables d’environnements utilisées durant toute la préparation.

$ export ISO=~/linux/ubuntu_iso/             # dossier contenant le fichier iso
$ export ISO_NAME=hardy-desktop-i386.iso     # nom du fichier iso

$ export NEW_ISO=~/Desktop/Custom-Ubuntu.iso # emplacement et nom du nouveau fichier iso

$ export CUSTOM_LIVE=~/custom-livecd         # dossier contenant la future image
$ export UBUNTU_LIVE=/tmp/ubuntu-livecd      # point de montage de l'image iso

Puis, il faut monter l’image .iso du liveCD. J’utilise pour cela le répertoire /tmp/ubuntu-livecd.

$ mkdir $UBUNTU_LIVE
$ sudo mount -o loop $ISO$ISO_NAME $UBUNTU_LIVE

Ensuite, créez le répertoire qui va contenir la future image (~/custom-livecd/iso) et copiez l’intégralité du liveCD original, sauf le fichier casper/filesystem.squashfs, dans celui-ci.

$ mkdir $CUSTOM_LIVE
$ mkdir $CUSTOM_LIVE/iso
$ rsync --exclude=/casper/filesystem.squashfs -a $UBUNTU_LIVE/ $CUSTOM_LIVE/iso

Maintenant nous allons monter le fichier casper/filesystem.squashfs du liveCD dans le dossier \~/custom-livecd/squashfs. Une fois fait, son contenu est copié dans le répertoire \~/custom-livecd/custom afin que nous puissions l'éditer.

$ mkdir $CUSTOM_LIVE/squashfs
$ mkdir $CUSTOM_LIVE/custom
$ sudo modprobe squashfs
$ sudo mount -t squashfs -o loop $UBUNTU_LIVE/casper/filesystem.squashfs $CUSTOM_LIVE/squashfs/
$ sudo cp -a $CUSTOM_LIVE/squashfs/* $CUSTOM_LIVE/custom

Finalement, copiez les fichiers /etc/resolv.conf et /etc/hosts dans le dossier ~/custom-livecd/custom/etc. Cette opération va vous permettre d’accéder à votre réseau lorsque nous utiliserons le répertoire custom en tant que "root" (via la commande chroot).

$ sudo cp /etc/resolv.conf /etc/hosts $CUSTOM_LIVE/custom/etc/

3.1. Suppression des applications Windows

Je pars du principe qu’un liveCD GNU/Linux n’est pas fait pour être utilisé depuis Windows! Tous les éléments destinés à cet OS sont dès lors supprimés.

$ cd $CUSTOM_LIVE/iso
$ sudo rm -rf bin pics disctree programs autorun.inf kubuntu.ico start.bmp start.exe \
  start.ini wubi-cdboot.exe

4. Passage en mode chroot

Avant de pouvoir personnaliser l’image, vous devez restreindre l’exécution des programmes dans le répertoire ~/custom-livecd/. Vous pourrez ainsi travailler sur le liveCD comme s’il s’agissait d’un système local sans risque d’endommager votre installation.

On monte également les répertoires /proc et /sys.

$ sudo chroot $CUSTOM_LIVE/custom
# mount -t proc none /proc/
# mount -t sysfs none /sys/
# export HOME=/root

5. Personnalisation du futur liveCD

Note Ne copiez pas bêtement ce qui suit car il s’agit des opérations que j’effectue pour créer mon image .iso! N’effectuez que les opérations qui vous intéressent!

5.1. Mise à jour des dépôts

Vous pouvez mettre à jour le fichier /etc/apt/sources.list afin d’activer universe et multiverse pour les dépôts hardy-updates, hardy-security et partner.

Note
  • Si vous utilisez Ubuntu 7.10, remplacez hardy par gutsy.

  • Vous pouvez également copier le fichier /etc/apt/sources.list de votre système mais je pars du principe que votre version de Linux n’est pas forcement la même que celle de l’image que vous créez.

# vim /etc/apt/sources.list

5.2. Suppression des éléments inutiles

5.2.1. Langages packs

Pour gagner de l’espace, on supprime les langues qui ne sont pas utilisées ainsi que les jeux de gnome.

# apt-get remove --purge `dpkg-query -W --showformat='${Package}\n' | grep language-pack | \
  egrep -v '\-en' | egrep -v '\-fr'`
# apt-get remove --purge gnome-games*

5.2.2. Autres packages

Vous pouvez affichez la liste des applications installées pour ensuite faire le ménage avec la commande suivante:

# dpkg-query -W --showformat='${Package}\n' | less

5.3. Mise à jour de l’image existante

Maintenant que notre liveCD est purgé de tous les éléments superflus, nous allons le mettre à jour afin de bénéficier des dernières modifications apportées aux différentes applications de base qui composent la distribution.

# apt-get update
# apt-get dist-upgrade

5.4. Installation de nouveaux packages

A présent, nous pouvons installer les applications qui nous manquent.

Pour ma part, j’installe les applications suivantes:

web
thunderbird

outil de messagerie

flashplugin-nonfree

plugin Adobe flash player pour firefox

pidgin

client de messagerie instantanée multi-protocole

amule

application peer-to-peer pour le partage de fichiers

multimédia
gxine

lecteur multimédia

audacious

lecteur de musique

jajuk

organisateur de collection musicale

easytag

éditeur de tags (ou metadata) des fichiers audio

grip

outil pour ripper les CDs musicaux

développement
eclipse

plateforme de développement

sun-java

kit de développement java

asciidoc

format texte destiné à la rédaction de documents

meld

outil de comparaison et de fusion de fichiers

purrr

outil pour le renommage en masse de fichiers

dbvisualizer

outil d’administration de base de données

réseau
kismet

outil de sondage de réseau ou wireless network sniffers

aircrack-ng

groupe d’outils de monitoring pour réseau sans fil

tn5250j

émulateur de terminal 5250 pour iSeries écrit en Java

b43-fwcutter

firmware pour les modems Broadcom 43xx

divers
rar

format de compression de fichiers

ace

format de compression de fichiers

gqview

visionneur d’image

nero

logiciel de gravure

testdisk

utilitaire permettant de récupérer les données d’un disque dur

compizconfig-settings-manager

outil de configuration pour compiz

# apt-get install thunderbird flashplugin-nonfree pidgin amule
# apt-get install gxine gxineplugin audacious easytag grip
# apt-get install sun-java6-jdk sun-java6-source meld purrr
# apt-get install rar unrar unace-nonfree testdisk compizconfig-settings-manager
# apt-get install kismet aircrack-ng b43-fwcutter

5.4.1. eclipse

On pourrait utiliser le package eclipse mais je préfère personnellement travailler avec les dernières versions mise à disposition par la fondation eclipse.

# cd /tmp
# wget http://eclipse.a3-system.be/eclipse/downloads/drops/S-3.4M4-200712131700/eclipse-SDK-3.4M4-linux-gtk.tar.gz
# tar xvfz eclipse-SDK-3.4M4-linux-gtk.tar.gz -C /opt

5.4.2. Jajuk

# cd /tmp
# wget http://heanet.dl.sourceforge.net/sourceforge/jajuk/jajuk_1.4.6-2_i386.deb
# gdebi jajuk_1.4.6-2_i386.deb
Note

Quelques logiciels ne fonctionnent pas correctement avec la version hardy de la machine virtuelle sun-java6.

5.4.3. Nero Linux

# cd /tmp
# wget ftp://ftp6.de.nero.com/PUB/a60a6fdd79ca491aca132f69359d004e/nerolinux-3.0.2.1-x86.deb
# gdebi nerolinux-3.0.2.1-x86.deb

5.5. Nettoyer le nouveau système

L’outil apt utilise un cache lors de l’installation des applications. Il faut donc vider celui-ci pour gagner un peu de place.

# apt-get clean

On supprime également les fichiers temporaires:

# rm -rf /tmp/*

Avant de passer en mode chroot nous avons copié les fichiers nécessaires à l’utilisation du réseau local. Il est temps de les supprimer.

# rm -f /etc/hosts /etc/resolv.conf

L’image est maintenant prête pour la création du fichier .iso. Vous pouvez quittez le mode chroot après avoir démonté les volumes /proc et /sys.

# umount /proc
# umount /sys
# exit

6. Créer la nouvelle image .iso

La première étape consiste à recréer les fichiers manifest:

$ chmod +w $CUSTOM_LIVE/iso/casper/filesystem.manifest
$ sudo chroot $CUSTOM_LIVE/custom dpkg-query -W --showformat='${Package} ${Version}\n' \
  > $CUSTOM_LIVE/iso/casper/filesystem.manifest
$ sudo cp $CUSTOM_LIVE/iso/casper/filesystem.manifest \
  $CUSTOM_LIVE/iso/casper/filesystem.manifest-desktop

Ensuite, il faut recréer le fichier squashfs.

$ sudo mksquashfs $CUSTOM_LIVE/custom $CUSTOM_LIVE/iso/casper/filesystem.squashfs

Vous pouvez également personnaliser le contenu du fichier ~/livecd/cd/README.diskdefines.

Finalement, vous devez mettre à jour le fichier \~/custom-livecd/cd/md5sum.txt qui contient la somme md5 des fichiers contenus dans le dossier \~/custom-livecd/cd.

$ sudo rm $CUSTOM_LIVE/iso/md5sum.txt
$ cd $CUSTOM_LIVE/iso
$ sudo -s
# (find . -type f -print0 | xargs -0 md5sum > md5sum.txt) && exit

La dernière étape consiste à créer le fichier .iso.

$ cd $CUSTOM_LIVE/iso
$ sudo mkisofs -r -V "Ubuntu-Live-Custom" -b isolinux/isolinux.bin -c isolinux/boot.cat \
  -cache-inodes -J -l -no-emul-boot -boot-load-size 4 -boot-info-table \
  -o $NEW_ISO .

Vous pouvez dès lors tester votre image en démarrant votre ordinateur avec ou en utilisant un logiciel de virtualisation tel que qemu, kvm, vmware, etc.

7. Maintenir l’image à jour

Si vous décidez de garder votre image et de la mettre régulièrement à jour, les étapes suivantes vous permettront de rapidement passer en mode chroot, mettre à jour les applications et recréer l’image .iso.

8. Sources