$ sudo apt-get install squashfs-tools
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
|
|
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) |
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)
|
|
Pour ma part, j’ai utilisé l’image .iso de la distribution Ubuntu 8.04 LTS (Hardy Heron) Alpha 3. |
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/
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
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
|
|
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! |
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.
|
|
|
# vim /etc/apt/sources.list
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*
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
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
A présent, nous pouvons installer les applications qui nous manquent.
Pour ma part, j’installe les applications suivantes:
outil de messagerie
plugin Adobe flash player pour firefox
client de messagerie instantanée multi-protocole
application peer-to-peer pour le partage de fichiers
lecteur multimédia
lecteur de musique
organisateur de collection musicale
éditeur de tags (ou metadata) des fichiers audio
outil pour ripper les CDs musicaux
plateforme de développement
kit de développement java
format texte destiné à la rédaction de documents
outil de comparaison et de fusion de fichiers
outil pour le renommage en masse de fichiers
outil d’administration de base de données
outil de sondage de réseau ou wireless network sniffers
groupe d’outils de monitoring pour réseau sans fil
émulateur de terminal 5250 pour iSeries écrit en Java
firmware pour les modems Broadcom 43xx
format de compression de fichiers
format de compression de fichiers
visionneur d’image
logiciel de gravure
utilitaire permettant de récupérer les données d’un disque dur
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
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
# 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
|
|
Quelques logiciels ne fonctionnent pas correctement avec la version hardy de la machine virtuelle sun-java6. |
# 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
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
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.
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.