Ma memory key usb pour de petites sauvegardes et/ou des transferts de fichiers

Par R. Suinot: rsuinux@gmx.fr

Contenu


Type de support

Je me suis procuré un 'disk on key' (DOK pour les intimes), de chez winward, 64Mo (62 formaté). c'est petit, de la taille d'un briquet, et fourni avec le câble usb de connexion.
Au premier branchement, le gestionnaire usb me donne ceci comme info:

vendor:0xc76 product:0x5


Préparations

Avant toute chose, il faut préparer le noyau à supporter ce type de matériel (disque sur usb). Pour cela, il faut mettre dans le noyau, la gestion des périphériques SCSI. Voici les options à choisir lors de la compilation de votre noyau:

Ensuite, pour le support de l'USB et du Disk on Key il faut choisir les options suivantes : Si vous avez ces modules, il n'y a (aura) aucun problème (ce fut mon cas). N'oubliez pas de les activer avec modconf (sous root).


Première utilisation

J'achète, je débale, je photographie

vue de dessus vue de profile taille de la clef

je survole la doc (... spécifications techniques... etc etc... "compatible linux kernel >2.4.0" youppi!), je branche...
bip...bip... C'est bon signe!
# less /var/log/syslog
.../je coupe/...
Nov 13 15:15:37 localhost kernel: hub.c: USB new device connect on bus1/1, assigned device number 10
Nov 13 15:15:37 localhost kernel: usb.c: USB device 10 (vend/prod 0xc76/0x5) is not claimed by any active driver.
Nov 13 15:15:37 localhost kernel:   Length              = 18
Nov 13 15:15:37 localhost kernel:   DescriptorType      = 01
Nov 13 15:15:37 localhost kernel:   USB version         = 1.10
Nov 13 15:15:37 localhost kernel:   Vendor:Product      = 0c76:0005
Nov 13 15:15:37 localhost kernel:   MaxPacketSize0      = 8
Nov 13 15:15:37 localhost kernel:   NumConfigurations   = 1
Nov 13 15:15:37 localhost kernel:   Device version      = 1.00
Nov 13 15:15:37 localhost kernel:   Device Class:SubClass:Protocol = 00:00:00
Nov 13 15:15:37 localhost kernel:     Per-interface classes
Nov 13 15:15:37 localhost kernel: Configuration:
.../je recoupe/...
Nov 13 15:15:39 localhost kernel: usb-storage: USB Mass Storage device detected
Nov 13 15:15:39 localhost kernel: usb-storage: Endpoints: In: 0xc49d5560 Out: 0xc49d5574 Int: 0xc49d5588 (Period 255)
Nov 13 15:15:39 localhost kernel: usb-storage: New GUID 0c7600050000000000000000
Nov 13 15:15:39 localhost kernel: usb-storage: GetMaxLUN command result is 1, data is 0
Nov 13 15:15:39 localhost kernel: usb-storage: Transport: Bulk
Nov 13 15:15:39 localhost kernel: usb-storage: Protocol: Transparent SCSI
Nov 13 15:15:39 localhost kernel: usb-storage: *** thread sleeping.
Nov 13 15:15:39 localhost kernel: scsi0 : SCSI emulation for USB Mass Storage devices
.../je rerecoupe/...
Nov 13 15:15:39 localhost kernel:  sda1
Nov 13 15:15:39 localhost kernel: WARNING: USB Mass Storage data integrity not assured
Nov 13 15:15:39 localhost kernel: USB Mass Storage device found at 10
Nov 13 15:15:39 localhost kernel: usb.c: usb-storage driver claimed interface c6a13420
Nov 13 15:15:39 localhost kernel: USB Mass Storage support registered.
Nov 13 15:15:39 localhost usbmgr[337]: "scsi_mod" was loaded
Nov 13 15:15:39 localhost usbmgr[337]: "sd_mod" was loaded
Nov 13 15:15:39 localhost usbmgr[337]: "usb-storage" was loaded
Excellent, cela fonctionne, et en plus, il me donne le périohérique à utiliser. Je tente donc:
# mount /dev/sda1 /disk/
# ls -la /disk
total 5
drwxr-xr-x    2 root     root          512 1970-01-01 01:00 .
drwxr-xr-x   20 root     root         4096 2002-07-26 02:26 ..
C'est génial! Une copie de fichier?
# cp /home/admin/reference_debian.txt /disk/
# ls -l /disk/
total 260
-rwxr-xr-x    1 root     root       265475 2002-11-13 15:21 referenc.txt
Argh!!! Pas de nom long!!!!!!!
Pas de panique, je vais lancer fdisk, après démontage de la DOK. Et là, oh surprise: FAT16
Donc, il faut reformater ça:
fdisk -> new id -> FAT32
puis pour formater, il me faut le paquet dosfstools (que j'installe) et hop, je formatte:
# mkdosfs -F 32 -n usb -v /dev/sda1
mkdosfs 2.8 (28 Feb 2001)
/dev/sda1 has 3 heads and 42 sectors per track,
logical sector size is 512,
using 0xf8 media descriptor, with 127904 sectors;
file system has 2 32-bit FATs and 1 sector per cluster.
FAT size is 984 sectors, and provides 125904 clusters.
Volume ID is 3dd25a85, volume label usb        .
Je remonte le disk et teste:
# mount /dev/sda1 /disk/
# df
Système de fichiers           Tail. Util.Disp. Uti% Monté sur
/dev/hda5             9.4G  2.0G  7.0G  23% /
/dev/hda1              16M  2.7M   12M  19% /boot
/dev/hda3             1.6G  955M  534M  65% /home
/dev/sda1              62M   512   62M   1% /disk
# cp /home/admin/reference_debian.txt /disk/
# ls -l /disk
total 260
-rwxr-xr-x    1 root     root       265475 2002-11-13 15:21 reference_debian.txt
Ouf, cela fonctionne! Mais toujours sous linux! Car après un test sous Win2000, je m'apercois que les noms longs n'apparaissent toujours pas. Il faut que je creuse un peu plus...


Configuration pour le montage (fstab)

La première fois, j'ai utilisé la détection automatique pour le type de système de fichier sur la clef, lors de son montage. Mais, en fait, il faut forcer le type de système comme vfat, pour disposer des noms longs. Là-dessus, se greffe le problème des autorisations et des permissions sur les fichiers. J'ai donc inclus l'options 'user' dans /etc/fstab. En fin de compte, voila la ligne contenu dans mon fichier fstab:

# Memory key usb
/dev/sda1       /disk           vfat    defaults,user,noauto,noexec            0       0


Conclusion

Mis à part le problème des nom longs avec les machines Win??, j'en suis content. Je vais pouvoir faire des copies de fichiers autrement que par disquette!


Complément

J'ai eu récemment, à utiliser ma clef sur une autre machine, contenant un lecteur de cd, un graveur ide, et un syquest SCSI. Après chargement du module usb-storage manquant, ainsi que le montage du pseudo-système de fichier usb, il a fallut retrouver le bon périphérique pour la memory key. Voici donc qui est quoi:

/graveur (ide) --> /dev/scd0
/cdrom (ide) --> /dev/scd1
/syquest (scsi) --> /dev/sda1
  /disk-usb (usb)     -->     /dev/sdb1  




S'il vous arrivait de vous servir de cette doc, envoyez moi un petit mot, merci!