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.
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.
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.
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.
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
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
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.
All FreeBSD documents are available for download at https://download.freebsd.org/ftp/doc/
Questions that are not answered by the
documentation may be
sent to <freebsd-questions@FreeBSD.org>.
Send questions about this document to <freebsd-doc@FreeBSD.org>.