19.5. USB-opslagapparaten
Terug | Hoofdstuk 19. Opslag | Volgende

## 19.5. USB-opslagapparaten

Bijgedragen door Marc Fonvieille.

Veel externe opslagoplossingen gebruiken tegenwoordig de Universele Seriële Bus (USB): harde schijven, USB-duimdrives, CD-R-branders, etc. FreeBSD biedt voor al dit soort apparaten ondersteuning.

### 19.5.1. Instellen

Het stuurprogramma umass(4) biedt de ondersteuning voor USB-opslagapparaten. Indien de kernel `GENERIC` wordt gebruikt, hoeft er niets aan de instellingen gewijzigd te worden. Als er een eigen kernel wordt gebruikt, dienen de volgende regels in het kernelinstellingenbestand aanwezig zijn:

    device scbus
    device da
    device pass
    device uhci
    device ohci
    device ehci
    device usb
    device umass

Het stuurprogramma umass(4) gebruikt het subsysteem SCSI om toegang te krijgen tot de USB-opslagapparaten. Het USB-apparaat wordt door het systeem als een SCSI-apparaat gezien. Afhankelijk van de chipset op het moederbord is slechts òf `device uhci` òf `device ohci` nodig voor ondersteuning van USB 1.X. Het kan echter geen kwaad om ze beiden in het kernelinstellingenbestand te hebben. Ondersteuning voor USB 2.0 wordt geleverd door het stuurprogramma ehci(4) (de regel met `device ehci`). Indien er regels zijn toegevoegd dient de kernel opnieuw gecompileerd en geïnstalleerd te worden.

### Opmerking:

Indien het USB-apparaat een CD-R- of DVD-brander is, dient het SCSI CD-ROM-stuurprogramma cd(4) met de volgende regel aan de kernel toegevoegd te worden:

    device cd

Aangezien de brander als een SCSI-schijf gezien wordt, dient het stuurprogramma atapicam(4) niet in de kernelinstellingen gebruikt te worden.

### 19.5.2. Instellingen testen

De instellingen zijn klaar om getest te worden: het USB-apparaat dient aangesloten te worden en in de buffer voor systeemmeldingen (dmesg(8)) dient het stuurprogramma ongeveer als volgt te verschijnen:

    umass0: USB Solid state disk, rev 1.10/1.00, addr 2
    GEOM: create disk da0 dp=0xc2d74850
    da0 at umass-sim0 bus 0 target 0 lun 0
    da0: <Generic Traveling Disk 1.11> Removable Direct Access SCSI-2 device
    da0: 1.000MB/s transfers
    da0: 126MB (258048 512 byte sectors: 64H 32S/T 126C)

Uiteraard kunnen het merk, de apparaatnode (`da0`) en andere details verschillen naar gelang de instelling.

Aangezien het USB-apparaat als een SCSI-apparaat gezien wordt, kan het commando `camcontrol` gebruikt worden om de USB-opslagapparaten weer te geven die aan het systeem gekoppeld zijn:

    # camcontrol devlist
    <Generic Traveling Disk 1.11>      at scbus0 target 0 lun 0 (da0,pass0)

Indien er een bestandssysteem op de schijf aanwezig is, kan dat aangekoppeld worden. Paragraaf 19.3, “Schijven toevoegen” biedt indien nodig hulp bij het formatteren en aanmaken van partities op de USB-drive.

### Waarschuwing:

Door het toestaan dat gewone gebruikers verschillende media kunnen koppelen door bijvoorbeeld het aanzetten van `vfs.usermount` zoals hieronder beschreven, zou niet als veilig beschoud moeten worden uit een beveiligings oogpunt. Veel bestandssystemen in FreeBSD zijn niet geschreven om beveiliging te bieden tegen kwaadaardige apparaten.

Om het apparaat koppelbaar te maken voor de gewone gebruiker moeten er een aantal stappen ondernomen worden. Als eerste moeten de apparaten die gecreeerd worden wanneer het USB opslag- medium wordt toegevoegd toegankelijk zijn voor de gebruiker. Een oplossing is om alle gebruikers die deze rechten nodig hebben toe te voegen aan de `operator` groep. Dit kan gedaan worden met pw(8). Daarna moet het voor de `operator` groep mogelijk zijn te lezen en te schrijven naar de gecreeerde apparaten. Dit kan bewerkstelligd worden door de volgende regels toe te voegen aan `/etc/devfs.rules`:

    [localrules=5]
    add path 'da*' mode 0660 group operator

### Opmerking:

Als er SCSI schijven in het systeem aanwezig zijn moet dit anders aangepakt worden. Stel dat het systeem reeds over de volgende schijven beschikt `da0` tot en met `da2`, verander de regel dan in het volgende:

    add path 'da[3-9]*' mode 0660 group operator

Dit sluit de reeds bestaande schijven buiten van toegang door de operator groep.

Erna moet ook de nieuwe ruleset voor devfs.rules(5) ingeschakeld worden door middel van `/etc/rc.conf`:

    devfs_system_ruleset="localrules"

Hierna moet de kernel worden geconfigureerd zodat gewone gebruikers rechten krijgen om bestandssystemen te koppelen. De makkelijkste manier is door de volgende regel toe te voegen aan `/etc/sysctl.conf`:

    vfs.usermount=1

Let op, deze wijziging wordt pas actief na de volgende start van het systeem. Als alternatief kan ook sysctl(8) gebruikt worden om deze variabele te zetten.

De laatste stap is het creëeren van de map waar het bestandssysteem gekoppeld wordt. Deze map moet eigendom zijn van de gebruiker die het bestandssysteem gaat koppelen. Een manier om dat te bewerkstelligen is door met de gebruiker `root` een submap aan te maken die eigendom is van de gebruiker als `/mntgebruikersnaam` (verander `gebruikersnaam` door de loginnaam van de daadwerkelijke gebruiker en `gebruikersgroep` door de primaire groep van de gebruiker):

    # mkdir /mnt/gebruikersnaam
    # chown gebruikersnaam:gebruikersgroep /mnt/gebruikersnaam

Stel dat er vervolgens een USB-stick ingeplugged wordt en er een `/dev/da0s1` aangemaakt wordt. Omdat deze apparaten meestal voorgeformatteerd met een FAT-bestandssysteem komen, kan deze als volgende gekoppeld worden:

    % mount -t msdosfs -o -m=644,-M=755 /dev/da0s1 /mnt/gebruikersnaam

Indien het apparaat losgekoppeld wordt (nadat de schijf afgekoppeld is), dient in de buffer voor systeemmeldingen iets als het volgende te zien te zijn:

    umass0: at uhub0 port 1 (addr2) disconnected
    (da0:umass-sim0:0:0:0): lost device
    (da0:umass-sim0:0:0:0): removing device entry
    GEOM: destroy disk da0 dp=0xc2d74850
    umass0: detached

### 19.5.3. Referenties

Naast de onderdelen Schijven toevoegen en Bestandssystemen aan- en afkoppelen, kunnen de volgende hulppagina's ook nuttig zijn: umass(4), camcontrol(8) en usbconfig(8) voor FreeBSD 8.X of usbdevs(8) voor eerdere versies van FreeBSD.

Terug | Omhoog | Volgende
19.4. RAID | Begin | 19.6. Optische media (CD's) aanmaken en gebruiken