Au cous de mes différentes manipulations de lives et d'isos, j'ai souvent besoin d'une clé (plus ou moins) vierge.
Dans certains cas, utiliser les outils de partitionnement fdisk, cfdisk ou sfdisk peut de révéler insatisfaisant.
Une solution consiste à employer la commande dd.
En général, si les données présentes sur le stick ne sont pas sensibles, on peut se contenter d'effacer le MBR (Master Boot Record) contenant la routine, la table de partitions et la signature :
dd if=/dev/zero of=/dev/sdx bs=512 count=1
1+0 enregistrements lus 1+0 enregistrements écrits 512 octets (512 B) copiés, 0,,00159765 s, 320 kB/s
En remplaçant sdx par le device correspondant au stick.
Le résultat peut être vérifié par :
dd if=/dev/sdx count=1 2>/dev/null | hexdump -C
00000000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| * 00000200
et par :
parted /dev/sdx p
Error: /dev/sdx: unrecognised disk label Model: CHIPSBNK v3.3.8.8 (scsi) Disk /dev/sdx: 2081MB Sector size (logical/physical): 512B/512B Partition Table: unknown Disk Flags:
Dans certains cas, suivre la procédure classique est insuffisant.
En particulier, lorsque la clé a servi de distribution live, écrite à partir d'une image iso hybride (pour support DVD-R(W), CD-R(W) et clé USB) on constate par exemple :
file -s /dev/sdx
/dev/sdx: ISO 9660 CD-ROM filesystem data 'sysrcd-4.7.1' (bootable)
Et cette clé peut tout à fait être montée par l'intermédiaire de votre environnement de bureau ou de votre gestionnaire de fichier.
Ainsi, l'arborescence des dossiers et des fichiers est parfaitement lisible.
Un autre obstacle rencontré dans cette situation est l'impossibilité d'installer grub sur la clé :
grub-install --force --no-floppy --boot-directory=/mnt/usb/boot /dev/sdx
/usr/sbin/grub-setup : erreur : il semble que hdn contienne un système de fichiers iso9660 qui ne réserve pas de place pour un démarrage de type DOS. Installer GRUB peut conduire à la DESTRUCTION du système de fichiers si des données valides sont écrasées par l'installation de grub (--skip-fs-probe désactive ce contrôle, à utiliser à vos risques et périls).
C'est alors que raleur nous informe sur le fofo, merci à lui :
Le descripteur de volume d'un système de fichiers ISO 9660 est situé 32 Kio (64 secteurs de 512 octets sur un disque ou une clé USB, ou 16 secteurs de 2048 octets sur un support optique) après le début du périphérique qui le contient. C'est pourquoi ta commande dd, qui n'efface que le premier secteur, ne l'a pas effacé.
Les premiers 32 Kio sont réservés pour contenir un descripteur de système de fichiers alternatif comme HFS (pour Mac) ou une table de partition comme dans le format des images hybrides de l'installateur Debian.
Et donc, pour effacer les informations du système ISO 9660, il suffit de faire :
dd if=/dev/zero of=/dev/sdx bs=2048 count=1 seek=16
1+0 enregistrements lus 1+0 enregistrements écrits 2048 octets (2,0 kB) copiés, 0,340696 s, 6,0 kB/s
Et, cette fois-ci, le résultat est :
file -s /dev/sdx
/dev/sdx: data
Et la clé n'est plus montable.