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: 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:
2:
3:
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