Руководство FreeBSD
Пред. | Глава 17. Устройства хранения | След.

# 17.5. USB устройства хранения

Предоставил Marc Fonvieille.

Множество современных устройств хранения используют Universal Serial Bus (USB): жесткие диски, брелоки USB, CD-R приводы, и т.д. FreeBSD предоставляет поддержку этих устройств.

## 17.5.1. Настройка

Драйвер umass(4) предоставляет поддержку устройств хранения USB. Если вы используете `GENERIC` ядро, изменять что-либо в настройках не потребуется. Если вы используете настроенное ядро, убедитесь, что в файле настройки присутствуют следующие строки:

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

Для доступа к устройствам хранения USB драйвер umass(4) использует подсистему SCSI, ваши устройства USB будут видны системе как SCSI устройства. В зависимости от чипсета USB на материнской плате, для включения поддержки USB 1.X вам потребуется только один из параметров `device uhci` или `device ohci`. Однако, наличие обоих этих параметров не помешает. Поддержка контроллеров USB 2.0 предоставляется драйвером ehci(4) (строка `device ehci`). Не забудьте скомпилировать и установить новое ядро после добавления каких-либо строк.

> Замечание: Если ваше USB устройство это пишущий привод CD-R или DVD, необходимо добавить в ядро SCSI CD-ROM драйвер, cd(4), следующей строкой:

>     device cd

> Поскольку устройство записи видно как SCSI диск, драйвер atapicam(4) не должен использоваться в файле настройки.

## 17.5.2. Тестирование конфигурации

Конфигурация готова к тестированию, подключите устройство USB, и в буфере системных сообщений (dmesg(8)), диск должен отобразиться примерно так:

    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)

Конечно, производитель, имя устройства (`da0`) и другие детали могут отличаться в зависимости от конфигурации.

Поскольку устройство USB видится как SCSI, команда `camcontrol` может быть использована для вывода списка устройств хранения USB, подключенных к системе:

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

Если на диске есть файловая система, у вас должна быть возможность смонтировать ее. Разд. 17.3 поможет вам создать и отформатировать разделы на диске USB если потребуется.

> Внимание: Ниже описанный механизм (`vfs.usermount`), допускающий монтирование случайных носителей пользователями, не являющимися доверенными, считается небезопасным. Большинство файловых систем во FreeBSD никак не ограждено от возможности несанкционированного монтирования устройств.

Чтобы это устройство мог смонтировать обычный пользователь, необходимо выполнить определенные действия. Для начала, необходимо дать обычным пользователям доступ к устройствам, создаваемым при подключении USB устройства. Решение состоит во включении всех пользователей данных устройств в группу `operator`. Это делается утилитой pw(8). Затем, когда устройства созданы, у группы `operator` должен быть доступ на чтение и запись для этих устройств. Это выполняется путем добавления следующих строк в `/etc/devfs.rules`:

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

> Замечание: Если к системе подключены SCSI диски, это должно быть сделано немного иначе. Так, если в системе уже есть диски с `da0` по `da2`, вторая строка должна выглядеть так:

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

> Это исключит уже существующие диски из группы `operator`.

Вам также потребуется включить набор правил devfs.rules(5) в файл `/etc/rc.conf`:

    devfs_system_ruleset="localrules"

Затем, ядро необходимо настроить так, чтобы оно позволяло обычным пользователям монтировать файловые системы. Простейший способ сделать это - добавить в файл `/etc/sysctl.conf` следующую строку:

    vfs.usermount=1

Этот параметр установится только после последующей перезагрузки. Для установки этой переменной можно также использовать sysctl(8).

Последний шаг - создание каталога, куда будет монтироваться файловая система. Каталог должен принадлежать пользователю, монтирующему файловую систему. Один из способов сделать это под пользователем `root` - создать каталог `/mnt/`username`` (замените `username` именем пользователя, а `usergroup` -- именем главной группы пользователя):

    # mkdir /mnt/username
    # chown username:usergroup /mnt/username

Предположим, что USB брелок подключен, и появилось устройство `/dev/da0s1`. Поскольку эти устройства обычно поставляются форматированными с файловой системой FAT, их можно смонтировать так:

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

Если вы отключите устройство (диск должен быть сначала размонтирован), вы должны увидеть в буфере системных сообщений что-то подобное:

    umass0: at uhub0 port 1 (addr 2) 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

## 17.5.3. Дополнительная информация

Помимо разделов Добавление дисков и Монтирование и размонтирование файловых систем, также может быть полезно чтение различных страниц справочника: umass(4), camcontrol(8), и usbconfig(8) для FreeBSD═ 8.X или usbdevs(8) для более ранних версий FreeBSD.

Пред. | Начало | След.
RAID | Уровень выше | Запись и использование оптических носителей (CD)

Этот, и другие документы, могут быть скачаны с ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.

По вопросам, связанным с FreeBSD, прочитайте документацию прежде чем писать в <questions@FreeBSD.org>.
По вопросам, связанным с этой документацией, пишите <doc@FreeBSD.org>.
По вопросам, связанным с русским переводом документации, пишите в рассылку <frdp@FreeBSD.org.ua>.
Информация по подписке на эту рассылку находится на сайте проекта перевода.