Comment remasteriser sa knoppix 3.4
Cet exemple va nous montrer comment est faite la mirabillix (version francisée de la KNOPPIX avec firefox et thunderbird en lieu et place de mozilla)
Pré-requis
Un CD de knoppix 3.4 ou encore l'image iso du CD sur une parition accessible depuis un système Linux. La knoppix est disponible sur cette
page
1Go de RAM (rien que ca !) c'est nécessaire pour la création de l'image compressée du CD. En fait c'est la somme de la RAM physique et du SWAP.
Une partition de 3Go Libre. Je vous conseille une partition à part cela permet d'éviter les fausse manipulations. Dans cette documentation il s'agira de /dev/hda7. A vous d'adapter selon vos besoins.
Préparation du système
En bootant depuis le CD knoppix (recommendé)
- Démarer correctement depuis votre CD de knoppix avec par exemple l'option lang=fr
- Configurer votre connection internet (depuis le menu KNOPPIX)
- ouvrir un shell root (depuis le menu Knoppix->console administrateur)
- Monter la partition avec
mount -rw /dev/hda7 /mnt/hda7
- Créer sur cette partition un répertoire de travail (/knx par exemple)
- si vous n'avez pas 1Go de RAM (cat /proc/meminfo (physical+swap)) vous allez avoir besoin d'un fichier de wswap
cd /mnt/hda7/knx
dd if=/dev/zero of=swapfile bs=1M count=750
mkswap swapfile
swapon swapfile
- Il faut maintenant 2 répertoires, un pour le master, un pour les sources :
mkdir /mnt/hda7/knx/master
mkdir /mnt/hda7/knx/source
- le repertoire KNOPPIX contenant le système de fichier
mkdir /mnt/hda1/knx/source/KNOPPIX
- Copier les fichier du reprtoire KNOPPIX vers votre repertoire source :
cp -Rp /KNOPPIX/* /mnt/hda7/knx/source/KNOPPIX
(c'est parfois un peu long)
- Créer le repertoire KNOPPIX dans le master
mkdir /mnt/hda7/knx/master/KNOPPIX
- Copier tout le contenu de /cdrom/ vers /mnt/hda7/knx/master sauf le fichier KNOPPIX (~700 Mb).
cd /cdrom;find . -size -10000k -type f -exec ; cp -p --parents {} /mnt/hda7/knx/master \;
En bootant depuis votre système Linux et en ayant l'image ISO
- Créer un reptoire iso dans /mnt.
- Monter l'image ISO telechargée
mount -o loop KNOPPIX-XXX.iso /mnt/iso
- copier tout le contenu de /mnt/iso vers /mnt/hda7/knx/master sauf le fichier KNOPPIX (~700 Mb).
cd /mnt/iso;find . -size -10000k -type f -exec cp -p --parents {} /mnt/hda7/knx/master \;
- extraire le fichier KNOPPIX vers /tmp/tmp.iso par exemple. Il vous faut pour cela récupérer l'executable extract_compressed_fs qui est sur le CD de knoppix par exemple.
extract_compressed_fs /mnt/iso/KNOPPIX/KNOPPIX > /tmp/tmp.iso
- Démonter l'iso.
- Monter le fichier temporaire de l'iso.
mount -o loop /tmp/tmp.iso /mnt/iso
- copier les fichiers de l'image iso vers le repertoire source.
cp -a /mnt/iso/* /mnt/hda7/knx/source
- démonter l'image iso et supprimer le fichier d'image.
umount /mnt/iso
rm /tmp/tmp.iso
Personnalisation de notre système
- on va se chrooter dans les sources de l'image (en fait nous allons passer sur un système linux complet, celui de la knoppix de base en l'occurence. Nous ne verrons plus notre système principal.
chroot /mnt/hda7/knx/source/KNOPPIX
En cas de nombreuse erreurs du style /dev/null permission denied vérifier le status de montage de la partition avec la commande mount qui doit renvoyer mount /dev/hda7 on /mnt/hda7 type ext3 (rw,nosuid,nodev). Dans le pire des cas, utiliser mount --bind /dev /mnt/hda/knx/source/KNOPPIX/dev
- Maintenant que nous sommes dans l'environement chrooté, il faut bien prendre conscience que / est en fait /mnt/hda7/knx/source/KNOPPIX
- Pour utiliser la connection internet (cela va être bien utile pour apt), on va monter /proc.
- Il faut ensuite ajouter nos serveurs de noms dans le fichier /etc/resolv.conf avec des lignes du genre (exemple pour nerim):
- Vérifier ensuite que la connection internet fonctionne avec ping gnu.org
- Il est alors possible d'utiliser toutes les commandes qui agiront sur notre environement chrooté. On peut éventuellement avoir l'affichage avec
export DISPLAY=127.0.0.1:0.0
- Nous allons alors mettre à jour la base de donnée d'apt avec
- Je vous déconseille fortement l'utilisation de apt-get upgrade et encore plus apt-get dist-upgrade. Les modifications sont trop importantes et l'image ne fonctionnera pas. Il faut uniquement jouer paquet par paquet.
- nous pouvons alors désinstaller les packages des langues qui ne nous interressent pas afin de gagner un peu de place.
for i in de da es it tr ru pl ja nl cs ; do
kde="$kde kde-i18n-$i"
done
rmpacks="$kde openoffice-de-en selflinux user-de manpages-de trans-de-en mozilla-mailnews"
apt-get -y --force-yes --purge --ignore-hold remove $rmpacks
- Nous pouvons ensuite installer la totalité des paquets que nous souhaitons.
addpacks="openoffice.org openoffice.org-help-fr openoffice.org-l10n-fr myspell-fr aspell
aspell-bin aspell-en aspell-fr manpages-fr mozilla-firefox
mozilla-firefox-locale-fr mozilla-thunderbird mozilla-thunderbird-locale-fr"
apt-get -y --force-yes --ignore-hold install $addpacks
- Il est possible de continuer avec le paquets et même d'utiliser synaptic (gestionnaire de paquet debian graphique)
Personnalisation avancée
- Nous allons maintenant lancer au moins une fois firefox et thunderbird afin d'avoir les différent profiles de créés. On peut éventuellement à ce moment modifier les signets. Celui de firefox est dans .firefox et thunderbird dans .mozilla-thunderbird. On peut entre autre modifier la taille des polices avec les fichier userChrome.css dans le repertoire chrome du profil.
- Nous souhaitons que lors de notre prochain reboot, ces différentes options soient sauvegardée. tout d'abord on va copier les préférences avec
cp .firefox /etc/skel
cp .mozilla-thunderbird /etc/skel
Il va donc falloir modifier le fichier /etc/X11/Xsession.d/45Xsession. Il suffit en gros d'adapter les lignes déja présentes pour mozilla
if [ ! -e $HOME/.firefox -a "$FREESPACE" -gt 1500 ] && [ -d /etc/skel/.firefox
-o -d /usr/share/knoppix/profile/.firefox ]; then
rsync -Ha --ignore-existing /etc/skel/.firefox $HOME/ 2>/dev/null
[ "$USER" = "knoppix" ] && rsync -Ha --ignore-existing /usr/share/knoppix/profi
le/.firefox $HOME/ 2>/dev/null
fi
if [ ! -e $HOME/.mozilla-thunderbird -a "$FREESPACE" -gt 1500 ] && [ -d /etc/sk
el/.mozilla-thunderbird -o -d /usr/share/knoppix/profile/.mozilla-thunderbird ]
; then
rsync -Ha --ignore-existing /etc/skel/.mozilla-thunderbird $HOME/ 2>/dev/null
[ "$USER" = "knoppix" ] && rsync -Ha --ignore-existing /usr/share/knoppix/profi
le/.mozilla-thunderbird $HOME/ 2>/dev/null
fi
- Nous souhaitons aussi avoir le menu knoppix en francais. Les fichiers sont dans usr/share/applnk/Knoppix. Ce sont des fichiers textes placés dans les différents repertoires donc facilement modifiables.
- La modification des fond d'écran. Il s'agit du fichier /usr/local/lib/knoppix.jpg. IL faudra aussi modifier (mais pas dans le chroot) le fichier /mnt/hda7/knx/master/background.jpg
- La modification du splash de KDE : /usr/share/apps/ksplash/Themes/Default/ on trouve dans ce répertoire les différents images qui compose le splash on peut aussi en trouver sur LDE-Look
- Le fichier /etc/init.d/knoppix-autoconfig contient par exemple le windows manager par defaut, les paramètre de langue ... bref tout ce que l'on trouve au boot. Plus géréralement on a une série de fichier /etc/init.d/knoppix-* qui sont des inits spécifiques à la knoppix.
- La configuration du kicker de KDE dans /etc/skel/.kde/share/config/kickerrc
Grand nettoyage avant de créer l'image
- Supression des packages orphelins.
deborphan | xargs apt-get -y remove
- Purger les fichiers de configuration des paquets désinstallés.
COLUMNS=200 dpkg -l |grep ^rc |awk '{print $2} ' | xargs dpkg -P
- supprimer les fichiers deb conservés éventuellement par apt.
COLUMNS=200 dpkg -l |grep ^rc |awk '{print $2} ' | xargs dpkg -P
- recréer la base de locate.
- IMPORTANT démonter /proc.
- sortir de l'environement chrooté CTRL-D
- supprimer les fichiers temporaires.
rm /mnt/hda7/knx/source/KNOPPIX/tmp/*
rm /mnt/hda7/knx/source/KNOPPIX/root.bash_history
rm -rf /mnt/hda7/knx/source/KNOPPIX/.rr_moved/
Passer le boot en francais et changer l'image de boot
- modifier le fichier /mnt/hda7/knx/master/boot/isolinux/isolinux.cfg. Tout d'abord remplacer tous les paramètres lang=us par lang=fr. Ensuite Le début du fichier doit ressember à ceci :
DEFAULT linux24
APPEND ramdisk_size=100000 init=/etc/init lang=fr apm=power-off vga=791 initrd=
minirt24.gz nomce quiet BOOT_IMAGE=knoppix
TIMEOUT 300
KBDMAP french.kbd
PROMPT 1
DISPLAY boot.msg
. IL va falloi récupérer le fichier map francais et le copier dans /mnt/hda7/knx/master/boot/isolinux/. On pourra alors supprimer le fichier german.kbd
- On peut également modifier le fichier boot.msg. Pour les touches d'aide f2 et f3, il s'agit des fichier f2 et f3
- Le fichier logo.16 et l'image affichée lors du boot. Pour modifier ce fichier, copier le dans /tmp par exemple. puis :
lss16toppm <logo.16 >logo16.ppm
On va pouvoir alors modifier le fichier logo16.ppm avec gimp par exemple. Attention ce fichier ne doit avoir que 16 couleurs. On enregistre le fichier en BMP. En effet gimp n'enregistre pas correctemnt en ppm (en fait il sauve le fichier en pnm). ensuite on va convertir le fichier logo16.bmp.
bmptoppm <logo16.bmp >logo16.ppm
ppmtolss16 <logo16.ppm >logo.16
Il est ensuite possible de copier le fichier logo.16 a son emplacment d'origine (/mnt/hda7/knx/master/boot/isolinux)
Création de l'image
- On va créer l'image avec la commande suivante (et oui ce n'est pas simple !, et le processus est très long surtout en version 3.4).
mkisofs -R -U -V "KNOPPIX.net filesystem" -P "KNOPPIX www.knoppix.net" -hide-rr-moved
-cache-inodes -no-bak -pad /mnt/hda7/knx/source/KNOPPIX | nice -5 /usr/bin/create_compressed_fs
- 65536 > /mnt/hda7/knx/master/KNOPPIX/KNOPPIX
- on va recréer le fichier MD5 pour que la vérification soit correcte.
cd /mnt/hda1/knx/master
rm -f KNOPPIX/md5sums;
find -type f -not -name md5sums -not -name boot.cat -exec md5sum {} \;
>> KNOPPIX/md5sums
- Finalement on va créer l'image ISO finale !
mkisofs -pad -l -r -J -v -V "Mirabillix" -no-emul-boot -boot-load-size 4 -boot-info-table -b
boot/isolinux/isolinux.bin -c boot/isolinux/boot.cat
-hide-rr-moved -o /mnt/hda7/knx/mirabilix.iso /mnt/hda7/knx/master
That's all folks