Cette article est la reprise de ce topic Lire une clé USB en FAT32. J'ai décider de le mettre sur le wiki afin que tout le monde puisse le consulter rapidement et surtout le modifier afin de l'améliorer ;).Dans cet article je vais détailler la méthode permettant de lire une clé usb formaté en fat32. Avec cette méthode, vous pourrez aussi lire une clé USB, en ext3, ext2... (mais pas ntfs) ou un disque IDE en FAT32.Pour le ntfs, n'ayant pas de disque en ntfs je n'ai pas activé le support dans mon noyau, a vous de le faire ci besoin ;) . Je tient à préciser que pour le monde ce n'est pas encore tellement conseillé...Quand rien n'est précisé il faut être root ! (su -)1/ Le noyauPour commencer vérifions l'existence des kernel_sources et du lien symbolique :b2 snowbear # cd /usr/src/
b2 src # ls -la
total 12
drwxr-xr-x 3 root root 4096 oct 15 14:48 .
drwxr-xr-x 16 root root 4096 oct 15 05:29 ..
lrwxrwxrwx 1 root root 22 oct 15 14:48 linux -> linux-2.6.13-gentoo-r3
drwxr-xr-x 19 root root 4096 oct 15 21:18 linux-2.6.13-gentoo-r3
En bleu : le lieu qu'il faut créer s'il n'existe pas.En rouge : vos sources.Pour la création du lien :ln -s linux
2/ Configuration du noyau
Lançons l'outil de configuration du noyau :
b2 ~ # cd /usr/src/linux
b2 linux # makemenuconig
Là une magnifique interface utilisateur apparait ^^ :

3/ Support de l'USB
Avant d'activer le support des disques usb nous devons activer celui de l'usb tout court.
Pour celà nous devons aller dans : "Device Drivers ---> USB support --->"
Support for Host-side USB
USB verbose debug messages
USB device filesystem
Enforce USB bandwidth allocation (EXPERIMENTAL)
Les options par défaut ou presque, et maintenant celles spécifiques à votre controleur usb, mais pour les connaitre, dans un autre terminal vous devrez peut être faire appel à la commande lspci : b2 snowbear # lspci -v|grep USB
0000:00:02.0 USB Controller: nVidia Corporation nForce2 USB Controller (rev a4) (prog-if 10 < OHCI>)
0000:00:02.1 USB Controller: nVidia Corporation nForce2 USB Controller (rev a4) (prog-if 10 < OHCI>)
0000:00:02.2 USB Controller: nVidia Corporation nForce2 USB Controller (rev a4) (prog-if 20 < EHCI>)
En rouge est repéré ce qui nous intéresse ;)Donc revenons à notre noyau, toujours dans la même catégorie, activez les support dont vous avez besoin (EHCI, UHCI, OHCI) :EHCI HCD (USB 2.0) support
Full speed ISO transactions (EXPERIMENTAL)
Root Hub Transaction Translators (EXPERIMENTAL)
OHCI HCD support
UHCI HCD (most Intel and VIA) support
Autre option importante :USB Mass Storage support
4/ Support de disques USBPour celà nous devons activer le support du format SCSIDans : Device Drivers ---> SCSI device support --->legacy /proc/scsi/ support
SCSI disk support
SCSI generic support
5/ Système de fichier FAT32
Passons maintenant au support du format de fichier FAT32.Dans File systems ---> DOS/FAT/NT Filesystems --->MSDOS fs support
VFAT (Windows-95) fs support
(850) Default codepage for FAT
(iso8859-15) Default iocharset for FAT
Comme vous pouvez le voir ici nous faisons appel à 2 locales (france).6/ Sauvegarde et compilation du nouveau noyau
Maintenant quittons l'interface en sauvergardant
Pour compiler notre nouveau noyau :b2 linux # make && make modules_install && mount /boot (si ce n'est pas déjà le cas) && make install
Maintenant vous devez redémarrer sur votre nouveau noyau afin de prendre en compte les modifications.7/ Vérification de la prise en chargeUne fois redémarré toujours en root branchez votre clé sur un port usb.faites un lsusb pour voir si votre clé est là :b2 snowbear # lsusb
Bus 003 Device 001: ID 0000:0000
Bus 002 Device 002: ID 0766:5213 Jess-Link Products Co., Ltd
Bus 002 Device 001: ID 0000:0000
Bus 001 Device 003: ID 0d7d:1300 Phison Electronics Corp. Flash Disk
Bus 001 Device 001: ID 0000:0000
en rouge c'est ma clé usb ;)Comme vous pouvez le voir elle est détecté, essayons maintenant de la monter, pour ce faire utilisons la commande mount :la commande mount en 1 explication : mount -t /dev/{périphérique}{point de montage} -o {option}
Le point de montage doit exister !
b2 snowbear # mount -t vfat /dev/sda1 /mnt/usb/
S'il n'y a pas d'erreur c'est que tout c'est bien passer.
Celà fonctionne donc avant de laisser les utilisateurs normaux monter une clé nous avons 2/3 choses à faire ;)
8/ Utilisateur X
- le fichier fstab
Tout d'abord nous devons ajouter une ligne dans notre fichier fstab. Celà permet d'une part si la ligne est bien faite de permettre aux utilisateur de monter un périphérique et d'autre part l'opération pour monter un disque sera plus simple que tout à l'heure.
b2 snowbear # cat /etc/fstab
/dev/hda1 /boot ext2 noauto,noatime 1 2
/dev/hda3 / ext3 noatime 0 1
/dev/hdb1 /home ext3 noatime 0 1
/dev/hda2 none swap sw 0 0
/dev/cdrom /mnt/cdrom iso9660 noauto,ro 0 0
/dev/sda1 /mnt/usb auto noauto,user 0 0
none /proc proc defaults 0 0
none /dev/shm tmpfs nodev,nosuid,noexec 0 0
C'est la ligne en rouge que vous devez ajouter, avec nano par exemple :
nano -w /etc/fstab
Le -w permet de ne pas revenir à la ligne.
- Les droits (utile si user dans fstab ? )
Une fois celà fait nous devons ajouter les droits sur ce périphérique. Pour ce faire nous devons savoir à quel groupe appartient notre périphérique, ici sda1 :
b2 snowbear # ls -l /dev/sda1
brw-rw---- 1 root disk 8, 1 oct 16 10:53 /dev/sda1
Donc maintenant nous savons que nous devrons ajouter notre utilisateur au groupe disk, vérifions qu'il n'y soit pas déjà :
b2 snowbear # cat /etc/group|grep disk
disk:x:6:root
Il n'y ai pas, nous devons donc l'ajouter :
gpasswd -a {utilisateur}disk
Nous devons encore redémarrer pour activer les changements sur les droits utilisateurs (point a vérifier également).
- Test ultime
Testons avec un utilisateur x :
Ici j'ai juste précisé le périphérique car cette ligne existe déjà dans mon fichier fstab. Si pas d'erreur c'est bon vous avez réussi.