Il existe plusieurs façons pour monter des périphériques de stockage (CDRom, clé USB, etc).

Nous allons voir la méthode, la plus classique pour comprendre comment fonctionne le système.

Prérequis

Si vous n'avez pas de besoins particuliers, ces périphériques sont accessibles aux utilisateurs appartenant au groupe operator.

Pour voir tous les utilisateurs appartenant à un groupe particulier (par exemple operator) :

groupinfo operator
name    operator
passwd  *
gid     5
members root

On constate, qu'un seul utilisateur fait partie de ce groupe.

Pour ajouter un utilisateur à un groupe déjà existant :

usermod -G operator utilisateur

L'étape suivante consiste à vérifier, si le noyau autorise les utilisateurs (autre que le super utilisateur) à monter des périphériques.

sysctl -a | grep usermount
vfs.generic.usermount = 0

Si la commande renvoie ceci, cela veut dire que cette fonctionalité n'est pas activée. Pour la rendre active :

sysctl -w vfs.generic.usermount=1
vfs.generic.usermount: 0 -> 1

Pour conserver cette valeur de manière persistante, il faut rajouter cette ligne dans le fichier /etc/sysctl.conf.

echo "vfs.generic.usermount=1" >> /etc/sysctl.conf

Clé USB

Sous NetBSD, les clés USB sont reconnues par le noyau grâce au driver umass.

dmesg | grep umass
umass0 at uhub1 port 1 configuration 1 interface 0
umass0: Super Talent Flash USB 2.0 Flash Drive, rev 2.00/20.40, addr 4
umass0: using SCSI over Bulk-Only
scsibus0 at umass0: 2 targets, 1 lun per target

Si on obtient aucune réponse quand on branche une clé, ce n'est pas bon signe !

Pour aller plus loin, on peut rechercher les cibles.

dmesg | grep scsibus
scsibus0 at umass0: 2 targets, 1 lun per target
sd0 at scsibus0 target 0 lun 0: <Flash/SM, Super Talent 2.0, 2040> disk removable

On constate, que la clé est accessible via le périphériques sd0.

fdisk sd0
fdisk: Cannot determine the number of heads
Disk: /dev/rsd0d
NetBSD disklabel disk geometry:
cylinders: 247, heads: 64, sectors/track: 32 (2048 sectors/cylinder)
total sectors: 506880

BIOS disk geometry:
cylinders: 247, heads: 64, sectors/track: 32 (2048 sectors/cylinder)
total sectors: 506880

Partition table:
0: Primary DOS with 32 bit FAT (sysid 11)
    start 32, size 506847 (247 MB, Cyls 0-247/31/31), Active
1: <UNUSED>
2: <UNUSED>
3: <UNUSED>
Drive serial number: -1022939624 (0xc3072e18)

Il existe une seule partition 0, pour connaître la géométrie :

disklabel /dev/sd0
# /dev/sd0d:
type: SCSI
disk: Super Talent 2.0
label: fictitious
flags: removable
bytes/sector: 512
sectors/track: 32
tracks/cylinder: 64
sectors/cylinder: 2048
cylinders: 247
total sectors: 506880
rpm: 3600
interleave: 1
trackskew: 0
cylinderskew: 0
headswitch: 0           # microseconds
track-to-track seek: 0  # microseconds
drivedata: 0 

5 partitions:
#        size    offset     fstype [fsize bsize cpg/sgs]
 d:    506880         0     unused      0     0        # (Cyl.      0 -    247*)
 e:    506847        32      MSDOS                     # (Cyl.      0*-    247*)
disklabel: boot block size 0
disklabel: super block size 0

On pourra avoir accès à la clé, grâce au slice, e.

mount -t msdos -o rw /dev/sd0e /mnt

On peut maintenant rajouter une entrée dans le fichier /etc/fstab.

.
.
./dev/sd0e               /home/olivier/usb       msdos   noauto,rw,noexec       0 0

L'utilisateur doit se créer un répertoire ~/usb.

mkdir ~/usb