Page suivante - Page précédente - Table des matières

7. Préparer l'écriture à un autre endroit

Vous devez vous assurer d'avoir quelque part une partition de secours. Espérons-le, votre système a plusieurs partitions : peut-être une racine, une /usr, et une /home. Avec tout ce choix, aucun problème : créez simplement un nouveau répertoire dans l'une d'entre elles.

Si vous n'avez qu'une partition racine dans laquelle vous fourrez tout, ça risque d'être un poil plus délicat. Peut-être avez-vous une partition MS-DOS ou Windows que vous pourriez utiliser ? Ou vous avez le gestionnaire ramdisk dans votre noyau, peut-être en module ? Pour utiliser le ramdisk (en supposant que votre noyau soit plus récent que 1.3.48), tapez les commandes suivantes :

# dd if=/dev/zero of=/dev/ram0 bs=1k count=2048
# mke2fs -v -m 0 /dev/ram0 2048
# mount -t ext2 /dev/ram0 /mnt

Cela a pour effet de créer un volume ramdisk de 2 Mo, et de le monter en /mnt.

Un petit mot d'avertissement : si vous utilisez kerneld (ou son remplaçant kmod avec les noyaux 2.2.x et les derniers 2.1.x) pour charger et décharger automatiquement les modules du noyau, alors ne démontez pas le ramdisk tant que vous n'avez pas copié tous les fichiers qu'il contient sur un support non volatile. Une fois que vous l'aurez démonté, kerneld suppose qu'il peut décharger le module (après la période d'attente habituelle), et, dès qu'il l'a fait, la mémoire est réutilisée par d'autres éléments du noyau, causant la perte irrémédiable des heures de travail que vous aurez passées à récupérer soigneusement vos données.

Si vous avez un lecteur Zip, Jaz, ou LS-120, ou quelque chose d'équivalent, il s'agit probablement d'une bonne place pour une partition de secours. Sinon, il faudra faire avec les disquettes.

Une autre chose dont vous devriez avoir besoin est un programme capable de lire les données nécessaires en plein milieu du périphérique contenant la partition. À la rigueur, dd pourrait le faire, mais pour lire à partir de, disons, 600 Mo dans une partition de 800 Mo, dd tient à lire les 600 premiers mégaoctets, quitte à les ignorer, et il va y passer un temps non négligeable, même sur des disques rapides. Pour éviter cela, j'ai écrit un programme qui peut se positionner en plein milieu de la partition. Il s'appelle fsgrab ; vous pouvez trouver le paquetage des sources sur ma page, ou sur Metalab (et ses miroirs). Si vous souhaitez utiliser cette méthode, la suite de ce mini-HOWTO suppose que vous avez fsgrab.

Si aucun des fichiers que vous voulez récupérer n'occupe plus de 12 blocs (où un bloc occupe habituellement un kilooctet), alors vous n'aurez pas besoin de fsgrab.

Si vous avez besoin de fsgrab mais n'en voulez pas, il est fort simple de traduire une ligne de commande avec fsgrab en une avec dd. Si on a

fsgrab -c count -s skip device

alors la commande dd correpondante (et généralement beaucoup plus lente) est

dd bs=1k if=device count=count skip=skip

Je dois vous avertir que, bien que fsgrab ait parfaitement fonctionné pour moi, je ne puis prendre aucune responsabilité sur son comportement. C'était vraiment une bidouille rapide et sale pour arriver à mes fins. Pour plus de détails sur l'absence de garantie, consultez la section No Warranty dans le fichier COPYING inclus dans la distribution (li s'agit de la GPL, la licence publique générale GNU).


Page suivante - Page précédente - Table des matières