Knoppix Remastering Howto French


From Knoppix Documentation Wiki
Revision as of 08:39, 8 September 2005 by ValLibre (Talk | contribs)

Jump to: navigation, search

Traductions:


Voir aussi :


Ceci est un guide qui va vous montrer comment remasteriser KNOPPIX

(Notes : Les commandes doivent apparaitre sur une ligne, maximisez la fenêtre s'il vous plait. Si vous avez des commentaires/suggestions, merci de les poster ci-dessous.)

Vous voulez peut être commencer à partir d'une Knoppix déjà personnalisée, si tel est le cas vous n'avez probablement pas autant de travail à faire (comme enlever des programmes). Si vous êtes dans ce cas, voir Knoppix Customizations.


Système Requis:

  • CD-ISO
    • Au moins 1 GB de mémoire RAM+Swap libre totale (ex 256M ram, et 750M swap DISPONIBLE) (à moins que vous utilisiez un programme de compression différent - voir cette page pour [compressloop])
    • 3 GB de libre sur une partition Linux filesystem (ext2/3, xfs, etc.) formattée
  • DVD-ISO
    • 5 GB de RAM + swap libre (pour le DVD en entier)
    • 15 GB de libre sur une partition Linux filesystem (ext2/3, xfs, etc.) formattée

Instructions:

  1. Booter à partir du Knoppix CD
  2. Ouvrir un shell root :
    • Menu: Kmenu->Knoppix->Shell Root
    • Note: Toutes les commandes ci-dessous s'éxecutent à partir de ce shell root.
  1. Configurer votre connexion internet (nous en aurons besoin plus tard). Si vous utilisez DHCP, cela devrait déjà être configuré.
    • Note: Executez ifconfig pour vérifier.
  1. Trouver la partition que vous utiliserez pour travailler. Dans cet exemple, elle est appellée hda1 . La partition devrait avoir au minimum 3 GB d'espace libre.
  2. Monter la partition:
    • mount -rw /dev/hda1 /mnt/hda1
    • Note: Soyez sûr d'avoir les droits en lecture/écriture ou vous aurez des erreurs lors du chroot plus tard. Pour vérifier: éxecuter mount
  1. Créer un repertoire racine pour travailler dedans:
    • mkdir /mnt/hda1/knx
    • Si vous mettez tous vos fichiers ici, ils seront plus facile à nettoyer
  1. Si vous n'avez pas 1 GB de RAM (cat /proc/meminfo (physical+swap)) alors vous devrez avoir un fichier de swap:
    • cd /mnt/hda1/knx ; dd if=/dev/zero of=swapfile bs=1M count=750 ; mkswap swapfile ; swapon swapfile
  1. Créer 2 repertoires, un pour votre nouveau Master CD, un pour les sources, sur une partition. Créer également des répertoires additionnels sous celui-ci nommé KNOPPIX:
    • mkdir -p /mnt/hda1/knx/master/KNOPPIX
    • mkdir -p /mnt/hda1/knx/source/KNOPPIX
  1. Maintenant, copiez les fichiers KNOPPIX vers votre répertoire source :

cp -Rp /KNOPPIX/* /mnt/hda1/knx/source/KNOPPIX

    • Note: Cela peut prendre un petit momment
  1. Copier la page HTML principale pour la page de démarrage :
    • cp /cdrom/index.html /mnt/hda1/knx/master/
  1. Copier tout les fichiers nécessaires execpté le fichier KNOPPIX de ~700 Mb .
    • < 3.4: cd /cdrom/KNOPPIX;find . -size -10000k -type f -exec cp -p --parents '{}' /mnt/hda1/knx/master/KNOPPIX/ \;
    • 3.4: cd /cdrom;find . -size -10000k -type f -exec cp -p --parents '{}' /mnt/hda1/knx/master/ \;
  1. Maintenant, vous pouvez "chrooter" dans l'arborescence copiée du fichier KNOPPIX:
    • chroot /mnt/hda1/knx/source/KNOPPIX

Si vous avez un ensemble d'erreurs /dev/null permission denied, vous devriez faire ce qui suit. Ceci peut arriver si vous sauvez vos données configurées pour la Knoppix sur la même partition que celle que vous utilisez, ET si vous démarrrez Knoppix avec knoppix home=scan.

Vérifiez l'état de vos montages si vous rencontrez le probleme: mount /dev/hdaX on /mnt/hdaX type ext3 (rw,nosuid,nodev) (remplacer X par le numéro de votre partition) où "nodev" signifie que vous n'avez pas accès au système de fichier monté et que vous ne pouvez ainsi pas acceder à /dev/null. Alors que cetains scripts ont besoin de rediriger leur sortie vers /dev/null ... Pour résoudre ceci, vous devez monter la partiton cible avant de "chrooter", comme ca :

^d  # control+d sortira de l'environnement chroot
mount /dev/hda1 /mnt/hda1

Vous devriez ensuite voir:

mount /dev/hda1 on /mnt/hda1 type ext3 (rw)

Si les erreurs "/dev/null" persistent, faites alors avant le chroot :

mount --bind /dev /mnt/hda1/knx/source/KNOPPIX/dev

Vous devez démonter /mnt/hda1/knx/source/KNOPPIX/dev avant de construire l'image du CD ou bien votre répertoire /dev sur le CD sera en bordel !

Ensuite vous pouvez continuer et chrooter.

  • Vous êtes maintenant "chrooter". "/" est en fait "/mnt/hda1/knx/source/KNOPPIX"
  • Pour utiliser votre connexion internet you devez monter proc mount -t proc /proc proc
  • Maintenant éditer /etc/resolv.conf et ajouter votre serveur de nom ou "sortir" du chroot et copier le fichier resolve.conf dans le dossier chrooté: cp /etc/dhcpc/resolv.conf vers /mnt/hda1/knx/source/KNOPPIX/etc/dhcpc/resolv.conf
  • Changer aussi smb.conf vers votre groupe MS si vous voulez le support smbd (MSHOME pour XP Familliale édition, et WORKGROUP pour les Windows 9x).
  • Vérifiez votre connection internet chrootée : ping google.com
  • Mettez à jour votre list de paquet avec apt-get update
  • Maintenant vous pouvez changer des trucs.
  • Attention: apt-get upgrade est une MAUVAISE IDEE. Cela va, très probablement, rendre votre KNOPPIX remasterisée inbootable, ou cassée en quelque sorte. Une méthode bien plus sûre est de seulement mettre à jour les paquets nécessaires
    • Avant de pouvoir ajouter des choses, vous aurez probablement besoin d'enlever quelques packages. Pour avoir une liste des packages installé, tapez ce qui suit:

* dpkg-query -l

    • Si vous voulez une liste triée par taille (de cette façon vous vous pourrez vous débarassez des plus encombrants), tapez :

* dpkg-query -W --showformat='${Installed-Size} ${Package}\n' | sort -n

    • Pour enlever un paquet (et toutes ses dépendances), tapez:

* apt-get remove <name-of-package-to-remove>

    • Pour vérifier les paquets orphelins, tapez:

* deborphan

    • Pour vouloir économiser plus de place en se débarrassant de ces irritants orphelins (comme c'est cruel!), tapez (Attention, vous n'aurez pas à confirmer pour enlever ces paquets. Quand vous pressez Entrée après cette commande, ces paquets seront partis):

* deborphan | xargs apt-get -y remove

    • Si vous êtes incertain quand à la commande précèdente et voulez voir ce qu'il va se passer sans faire de changement, ajoutez simplement l'option -s à la commande apt-get comme cela (vous pouvez faire ça avec toutes les commandes apt-get, et c'est une bonne habitude d'utiliser cette option avant des opérations "massive" comme celle la):

* deborphan | xargs apt-get -s -y remove

    • Maintenant les bonnes choses. Si vous voulez ajouter un package, tapez:

* apt-get install <name-of-package-to-install>

    • Quoi, vous ne savez pas quel paquet installer ? Tapez cela. Quand la liste apparait, vous pouvez lire attentivement (13000 lignes !) ou chercher des termes en utilisant /<terme-a-recherher>:

* apt-cache search .* | sort | less

    • Quand vous avez fini d'enlever et d'ajouter des paquets, un bon moyen de nettoyer est de taper:

* COLUMNS=200 dpkg -l |grep ^rc |awk '{print $2} ' | xargs dpkg -P

    • De même,parce que le système des paquets Debian garde en cache ce qui a été téléchargé, vous pouvez éxecuter la commande suivante pour faire le ménage :

* apt-get clean

    • les paramètres utilisateurs sont dans /etc/skel
    • astuce: ne mettez pas de fichiers dans /root ils seront seulement disponible (durant l'éxecution) dans /KNOPPIX/root
  • Unmount /proc - très important! umount /proc
  • Presser CTRL+D pour quitter l'environnement chrooté.

Notes :

Quand vous testez des programmes basés sur X, vous aurez a faire export DISPLAY=localhost:0.0

Quand vous voulez auto-éxecuter quelques programmes, créez un script et placez le dans le repertoire /etc/rc5.d/ (Ceci charge seulement les items avant que X ne se charge)

trucs interessants dans /etc/init.d/knoppix-autoconfig :

   * Le fichier fond d'écran est /cdrom/KNOPPIX/background.gif (dans knoppix 3.4: background.jpg)
   * Comme pour floppyconfig, il existe cdromconfig qui lancera cdrom/KNOPPIX/knoppix.sh

trucs intéressants dans /etc/init.d/xsession :

  • Ca place également le fond d'écran dans /usr/local/lib/knoppix.gif

Maintenant, la création de l'image ISO :

  • nous avons fini de personnaliser et sommes prêt à graver !
  • d'abord faire quelques nettoyages : enlever le fichier .bash_history , les fichiers tmp etc
  • rm -rf /mnt/hda1/knx/source/KNOPPIX/.rr_moved
  • Maintenant, nous allons faire un gros fichier KNOPPIX qui est un système de fichier ISO 9660 cloop (compress loopback) compressé (cloop compressed ISO 9660 filesystem) : mkisofs -R -U -V "KNOPPIX.net filesystem" -publisher "KNOPPIX www.knoppix.net" -hide-rr-moved -cache-inodes -no-bak -pad /mnt/hda1/knx/source/KNOPPIX | nice -5 /usr/bin/create_compressed_fs - 65536 > /mnt/hda1/knx/master/KNOPPIX/KNOPPIX

le "www.knoppix.net" et le "Knoppix.net filesystem" peuvent être changé par le nom que vous voulez donner au fichier. Vous aurez une erreur si vous ne respectez les standards de la norme ISO9660, sans trop grande importance.

Dans Knoppix 3.4 le script create_compressed_fs a été mis à jour, utilisez le pour obtenir les meilleurs résultats. Il possède une nouvelle option -b (best), qui permet une meilleure compression en utilisant différents arrangement de compression et essaye d'optimiser ce processus, mais soyez vigilant, parce que cette option est lente (10x plus lente).

  • Si tout va bien, faisons l'image du CD final :
  • cd /mnt/hda1/knx/master
  • rm -f KNOPPIX/md5sums; find -type f -not -name md5sums -not -name boot.cat -not -name isolinux.bin -exec md5sum '{}' \; >> KNOPPIX/md5sums (ceci va mettre à jour les hashages md5 des fichiers inclus dans l'ISO, utilisé pour les vérifications d'intégrité)
  • Pour Knoppix <= 3.3: mkisofs -pad -l -r -J -v -V "KNOPPIX" -b KNOPPIX/boot.img -c KNOPPIX/boot.cat -hide-rr-moved -o /mnt/hda1/knx/knoppix.iso /mnt/hda1/knx/master (the ISO is stored in /mnt/hda1/knx/knoppix.iso)
  • Pour Knoppix >= 3.4 ou autre distribution basée sur isolinux, faites:

mkisofs -pad -l -r -J -v -V "KNOPPIX" -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/hda1/knx/knoppix.iso /mnt/hda1/knx/master (l'ISO est stockée dans /mnt/hda1/knx/knoppix.iso)

  • Voila !

Astuces

Si vous êtes à la recherche des gros paquets installés, alors la commande

dpkg-awk "Status: .* installed$" -- Package Installed-Size | \
awk '{print $2}' | egrep -v '^$' | xargs -n2 echo | \
perl -pe 's/(\S+)\s(\S+)/$2 $1/' | sort -rg

listera les paquets par taille en ordre décroissant. Cette commande est 10 fois plus rapide

dpkg-query -W --showformat='${Installed-Size} ${Package}\n' | sort -n

et vous n'avez pas besoin de dpkg-awk ou awk ou perl.

Si vous avez des problèmes avec la commande de tri précèdente, essayez d'utiliser KPackage, elle parcoure les arborescences et trie par taille à la recherche de gros paquets.

Regardez du côté du programme "deborphan", il liste les paquets orphelins que vous pouvez enlever, ces paquets étaient utilisés par des paquets qui sont maintenant enlevés.

J'ai eu des bons résultats de remastering à partir du cd en tant que root, travaillant à partir de fluxbox. Choisir "knoppix 2" lors du boot et le système va démarrer sur une invite de commande root où vous pourrez dire "startx /usr/bin/fluxbox". J'aime utiliser le shell unicode xterm.

Lors du travail en chroot pour le remastering, j'aime bien utiliser "apt-get remove --purge nom-du-paquet" pour enlever les paquets parce que avant de faire quoi que ce soit cela va stopper et montrer les détails sur ce que apt va supprimer; il faut confirmer par "oui" ou "non".

Si vous n'utilisez pas l'instruction "apt-get" ci dessus et si vous avez beaucoup de ménage à faire, la façon la plus simple de faire est :

"COLUMNS=200 dpkg -l |grep ^rc |awk '{print $2} ' >topurge". Ceci fera une liste de tout les paquets enlevés à purger et ensuite vous n'avez plus qu'a faire  "dpkg -P `cat topurge `" et voila.
"COLUMNS=200 dpkg -l |grep ^rc |awk '{print $2} ' | xargs dpkg -P" est la même chose en une ligne.

Aussi "deborphan >orphaned" puis "dpkg -P `cat orphaned `". "deborphan | xargs dpkg -P " est une version en une seule ligne de cela.


Ca y est. Ceci est une version mise à jour de mon précèdent howto. Il n'est pas destiné aux débutant sous linux, vous devriez avoir une bonne connaissance de linux pour tout faire fonctionner. Je le metterais à jour via des corrections et des améliorations bientôt.

Merci a aay, charan, Tech2k, and #knoppix pour les quelques corrections, astuces et idées. Libre à vous d'éditer ou de compléter ce how-to Note à propose de la swap:
Vous n'avez pas réellement besoin d'1G de swap puisque il y a deux nouveaux outils de compressions de système de fichiers. Voila deux candidats pour faire des système de fichiers compressés:

  • Réecriture de Valentijn [1]
  • Port de compressloop par Quozl's pour la Knoppix 3.4 [2]
  • Compressloop répartis par Quozl's (utiliser plus d'un processeur pour accelerer les choses) [3] or [4]
  • Patch de Justin [5] (lien cassé) J'ai également écrit un compresseur réparti cloop (ou pour smp) C'est dans le même repertoire.

Astuce, tester le cd-image sans graver le cd

Si vous avez une partition avec au moins 700MB d'espace libre formattée en ext2, ext3 ou Vfat, vous pouvez l'utiliser pour tester en démarrant à partir d'une disquette. Une disquette de démarrage recherchera une partition avec /KNOPPIX dans la racine, et l'image compressée /KNOPPIX/KNOPPIX. Au lieu d'utiliser le sous répertoire /mnt/hda1/knx/master/KNOPPIX/ comme décrit précèdemment, il devrait être appellé /mnt/hda2/KNOPPIX/ . La racine index.html sera située dans /mnt/hda2/index.html et l'image compressée sera dans /mnt/hda2/KNOPPIX/KNOPPIX . Maintenant vous pouvez booter à partir de la disquette et utiliser /mnt/hda2 comme image. Pour plus d'informations voir Hd BasedHowTo.

Si vous n'avez pas de partitions supplémentaires ou si vous ne voulez pas en faire autant, vous pouvez utiliser Qemu (voir [6] ) avec l'image ISO comme ça: qemu -m 128 -cdrom /temp/knoppix-custom.iso -boot d -user-net Vous n'avez même pas à créer une image sur le disque dur avant, seulement installer Qemu et l'essayer. Stupéfiant!

Démarrer les images Knoppix avec GRUB

  • D'abord copier /boot du cd Knoppix cd vers votre partition de boot (ou même votre partition dos). J'ai nommé la mienne boot.knoppix

Copier le répertoire /KNOPPIX vers votre répertoire racine* d'un des diques dur. Vous pouvez le placer ailleurs que dans une partition de boot. (ext2/3, reiserfs, vfat sont supportés)

  • Mettre les éléments suivants dans votre /boot/grub/menu.lst:
title           KNOPPIX
root            (hd0,0)
kernel  /boot.knoppix/vmlinuz 2 fromhd=/dev/hda4 lang=us
initrd  /boot.knoppix/miniroot.gz
  • Remarquer le paramètre "fromhd": c'est l'emplacement du repertoire /KNOPPIX
  • redémarrez et appreciez.

Si mon how-to est trop confus, ou si vous voulez une secondes opinion, regardez le très joli remastering howto de charan : http://gnubox.dyndns.org:8080/~sunil/knoppix.php . Un autre howto est disponible à l'adresse http://www.stirnimann.com/mystuff/doc/knoppix.txt

Il y a un assistant qui connais toutes les démarches d'installation, compression et gravure de CD mentionnées ici. Il propose également un shell ou vous pouvez mettre à jour la KNOPPIX décompressée en utilisant les outils standards Debian d'installation de logiciel. Il s'appelle mmkcdrom et fait partie du packaqe plugscript: [7]

Encore un autre Howto, pour les adeptes du shell sur http://quozl.linux.org.au/knoppix/

Soyez sûr de jeter un oeil à Knoppix Customization Forum pour des idées et de l'aide concernant le remastering.


Une l'arborescence recommandée pour remasteriser une KNOPPIX:

. (invoke ../remaster from here)
|-- master (invoke ../../umountbootimage from here)
|   |-- KNOPPIX
|   |   |-- KNOPPIX (compressed image)
|   |   |-- boot.img (boot floppy image)
|   |   `-- (other files snipped)
|   `-- index.html
`-- source
`-- KNOPPIX (this directory can be chrooted into)
|-- bin
|-- boot
|-- cdrom
|-- dev
|-- etc
|-- floppy
|-- home
|-- initrd
|-- lib
|-- mnt
|-- none
|-- opt
|-- proc
|-- root
|-- sbin
|-- tmp -> /var/tmp
|-- usr
|-- var
`-- vmlinuz -> boot/vmlinuz-2.4.22-xfs

Le script suivant "remaster" fera le processus de remasterisation à votre place. Lancez le en tant que root, ou il se terminera avec des erreurs d'accès sur l'image.

Le script a été essayé sur une Debian sid le 02-04-2002


#!/bin/bash -x
# This script builds a new KNOPPIX ISO image.
# Copyright (C) 2004 by Marc Haber <mh+knoppix-remaster@zugschlus.de>
# License: GPL V2

ROOT="$PWD"
SOURCE="$ROOT/source/KNOPPIX"
MASTER="$ROOT/master"
CLOOPTARGET="$ROOT/master/KNOPPIX/KNOPPIX"
TARGET="$ROOT"
EXCLUDELIST="$ROOT/source/excludelist"

rm -rf $SOURCE/.rr_moved

cd $SOURCE
mkisofs -R -U -V "KNOPPIX.net filesystem" \
-P "KNOPPIX www.knoppix.net" \
-hide-rr-moved -cache-inodes -no-bak -pad \
-exclude-list $EXCLUDELIST \
. | nice -5 /usr/bin/createcompressedfs - 65536 > $CLOOPTARGET

cd $MASTER
rm -f KNOPPIX/md5sums
find -type f -not -name md5sums -not -name boot.cat -exec md5sum {} \; >> KNOPPIX/md5sums
mkisofs -pad -l -r -J -v -V "KNOPPIX" -b KNOPPIX/boot.img \
-c KNOPPIX/boot.cat -hide-rr-moved -o $TARGET/knoppix.iso $MASTER

The following script will loop-mount boot floppy image and initrd image for modification. The umount function will build a new initrd image and put it back on the boot floppy image.

The script has last been tried out on Debian sid on 2004-01-13.

#!/bin/bash -x
# This script will loop-mount boot floppy and initrd image
# Copyright (C) 2004 by Marc Haber <mh+knoppix-remaster@zugschlus.de>
# License: GPL V2
unset CDPATH || true

# if not root, re-invoke self as root
if  "`id -u`" -ne 0 ; then
export LOCUSER="$USER"
export LOCHOME="$HOME"
if [[ "${SHELLOPTS/xtrace/}" != "$SHELLOPTS" ]]; then
sudo bash -x $0 $@
exit $?
else
sudo $0 $@
exit $?
fi
else
LOCUSER="${LOCUSER:-$USER}"
LOCHOME="${LOCHOME:-$HOME}"
fi
set -e

KNOPPIXDIR="KNOPPIX"
BOOTIMGFILE="$KNOPPIXDIR/boot.img"
BOOTIMGFS="vfat"
BOOTIMGDIR="boot.img"
INITRDGZ="$BOOTIMGDIR/miniroot.gz"
INITRDFILE="$KNOPPIXDIR/miniroot"
INITRDFS="ext2"
INITRDDIR="miniroot"

mountbootimage() {
if ! modprobe loop; then
echo >&2 "ERR: cannot load loop module"
exit 1
fi

if !  -e "$BOOTIMGFILE" ; then
echo >&2 "ERR: no $BOOTIMGFILE found"
exit 1
fi

for nofile in $BOOTIMGDIR $INITRDGZ $INITRDFILE $INITRDDIR; do
if  -e "$nofile" ; then
echo >&2 "ERR: $nofile already exists"
exit 1
fi
done

mkdir -p $BOOTIMGDIR
mount -o loop,uid=$LOCUSER -t $BOOTIMGFS $BOOTIMGFILE $BOOTIMGDIR

< $INITRDGZ gunzip > $INITRDFILE
mkdir -p $INITRDDIR
mount -o loop -t $INITRDFS $INITRDFILE $INITRDDIR
}

umountbootimage() {
dd if=/dev/zero of=$INITRDDIR/nullfile || true
sync
rm $INITRDDIR/nullfile
umount $INITRDDIR
rmdir $INITRDDIR
< $INITRDFILE gzip --best > $INITRDGZ
rm -f $INITRDFILE

umount $BOOTIMGDIR
rmdir $BOOTIMGDIR

syslinux KNOPPIX/boot.img
}

case "`basename $0`" in
mountbootimage)
mountbootimage
;;
umountbootimage)
umountbootimage
;;
*)
echo >&2 "ERR: called with unknown name `basename $0`"
exit 1
;;
esac