Muitas soluções de armazenamento externo, como discos rígidos, thumbdrives USB e gravadores de CD e DVD, usam o Universal Serial Bus ( USB ). O FreeBSD fornece suporte para dispositivos USB 1.x, 2.0 e 3.0.
O suporte a USB 3.0 não é compatível com alguns hardwares, incluindo os chipsets Haswell (Lynx Point). Se o FreeBSD inicializar com uma mensagem falhou com erro 19, desative xHCI/USB3 na BIOS.
O suporte para dispositivos de armazenamento USB é embutido no kernel GENERIC
. Para um kernel personalizado, certifique-se de que as seguintes linhas estejam presentes no arquivo de configuração do kernel:
device scbus # SCSI bus (required for ATA/SCSI) device da # Direct Access (disks) device pass # Passthrough device (direct ATA/SCSI access) device uhci # provides USB 1.x support device ohci # provides USB 1.x support device ehci # provides USB 2.0 support device xhci # provides USB 3.0 support device usb # USB Bus (required) device umass # Disks/Mass storage - Requires scbus and da device cd # needed for CD and DVD burners
O FreeBSD usa o driver umass(4) que usa o subsistema SCSI para acessar o armazenamento de dispositivos USB. Como qualquer dispositivo USB será visto como um dispositivo SCSI pelo sistema, se o dispositivo USB for um gravador de CD ou DVD, não inclua device atapicam
em um arquivo de configuração do kernel personalizado.
O restante desta seção demonstra como verificar se um dispositivo de armazenamento USB é reconhecido pelo FreeBSD e como configurar o dispositivo para que ele possa ser usado.
Para testar a configuração USB, conecte o dispositivo USB. Use dmesg
para confirmar que a unidade aparece no buffer de mensagens do sistema. Deve parecer algo como isto:
umass0: <STECH Simple Drive, class 0/0, rev 2.00/1.04, addr 3> on usbus0 umass0: SCSI over Bulk-Only; quirks = 0x0100 umass0:4:0:-1: Attached to scbus4 da0 at umass-sim0 bus 0 scbus4 target 0 lun 0 da0: <STECH Simple Drive 1.04> Fixed Direct Access SCSI-4 device da0: Serial Number WD-WXE508CAN263 da0: 40.000MB/s transfers da0: 152627MB (312581808 512 byte sectors: 255H 63S/T 19457C) da0: quirks=0x2<NO_6_BYTE>
A marca, o nó de dispositivo (da0
), a velocidade e o tamanho serão diferentes de acordo com o dispositivo.
Como o dispositivo USB é visto como um SCSI, o camcontrol
pode ser usado para listar os dispositivos de armazenamento USB conectados ao sistema:
#
camcontrol devlist
<STECH Simple Drive 1.04> at scbus4 target 0 lun 0 (pass3,da0)
Alternativamente, o usbconfig
pode ser usado para listar o dispositivo. Consulte o usbconfig(8) para obter mais informações sobre este comando.
#
usbconfig
ugen0.3: <Simple Drive STECH> at usbus0, cfg=0 md=HOST spd=HIGH (480Mbps) pwr=ON (2mA)
Se o dispositivo não tiver sido formatado, consulte Seção 17.2, “Adicionando Discos” para obter instruções sobre como formatar e criar partições na unidade USB. Se a unidade vier com um sistema de arquivos, ela pode ser montada pelo root
usando as instruções em Seção 3.7, “Montando e Desmontando Sistemas de Arquivos”.
Permitir que usuários não confiáveis montem mídia arbitrária, ativando vfs.usermount
como descrito abaixo, não deve ser considerado seguro do ponto de vista da segurança. A maioria dos sistemas de arquivos não foi criada para proteger contra dispositivos maliciosos.
Para tornar o dispositivo montável como um usuário normal, uma solução é tornar todos os usuários do dispositivo membros do grupo operator
usando pw(8). Em seguida, certifique-se de que operator
possa ler e gravar o dispositivo adicionando estas linhas ao /etc/devfs.rules
:
[localrules=5] add path 'da*' mode 0660 group operator
Se discos internos SCSI também estiverem instalados no sistema, altere a segunda linha da seguinte maneira:
add path 'da[3
-9]*' mode 0660 group operator
Isso excluirá os três primeiros discos SCSI (da0
para da2
) pertencentes ao grupo operator
. Substitua 3
pelo número de discos SCSI internos. Consulte devfs.rules(5) para obter mais informações sobre esse arquivo.
Em seguida, ative o conjunto de regras no arquivo /etc/rc.conf
:
devfs_system_ruleset="localrules"
Em seguida, instrua o sistema para permitir que usuários comuns montem sistemas de arquivos incluindo a seguinte linha no arquivo /etc/sysctl.conf
:
vfs.usermount=1
Como isso só entra em vigor após a próxima reinicialização, use sysctl
para definir essa variável agora:
#
sysctl vfs.usermount=1
vfs.usermount: 0 -> 1
A etapa final é criar um diretório no qual o sistema de arquivos deve ser montado. Esse diretório precisa pertencer ao usuário que deve montar o sistema de arquivos. Uma maneira de fazer isso é para o root
criar um subdiretório de propriedade daquele usuário como /mnt/
. No exemplo a seguir, substitua username
username
pelo nome de login do usuário e usergroup
pelo grupo principal do usuário:
#
mkdir /mnt/
username
#
chown
username
:usergroup
/mnt/username
Suponha que um thumbdrive USB esteja conectado e um dispositivo /dev/da0s1
apareça. Se o dispositivo estiver formatado com um sistema de arquivos FAT, o usuário poderá montá-lo usando:
%
mount -t msdosfs -o -m=644,-M=755 /dev/da0s1 /mnt/
username
Antes que o dispositivo possa ser desconectado, ele deve ser desmontado primeiro:
%
umount /mnt/
username
Após a remoção do dispositivo, o buffer de mensagens do sistema mostrará mensagens semelhantes às seguintes:
umass0: at uhub3, port 2, addr 3 (disconnected) da0 at umass-sim0 bus 0 scbus4 target 0 lun 0 da0: <STECH Simple Drive 1.04> s/n WD-WXE508CAN263 detached (da0:umass-sim0:0:0:0): Periph destroyed
Dispositivos USB podem ser montados automaticamente removendo o comentário desta linha no arquivo /etc/auto_master
:
/media -media -nosuid
Então adicione estas linhas ao arquivo /etc/devd.conf
:
notify 100 { match "system" "GEOM"; match "subsystem" "DEV"; action "/usr/sbin/automount -c"; };
Recarregue a configuração se autofs(5) e devd(8) já estiverem em execução:
#
service automount restart
#
service devd restart
autofs(5) pode ser configurado para iniciar no boot, adicionando esta linha ao arquivo /etc/rc.conf
:
autofs_enable="YES"
autofs(5) requer que o devd(8) esteja ativado, como é por padrão.
Inicie os serviços imediatamente com:
#
service automount start
#
service automountd start
#
service autounmountd start
#
service devd start
Cada sistema de arquivos que pode ser montado automaticamente aparece como um diretório em /media/
. O diretório é nomeado após o rótulo do sistema de arquivos. Se o rótulo estiver ausente, o diretório será nomeado após o nó do dispositivo.
O sistema de arquivos é montado de forma transparente no primeiro acesso e desmontado após um período de inatividade. Unidades montadas automaticamente também podem ser desmontadas manualmente:
#
automount -fu
Este mecanismo é normalmente usado para cartões de memória e cartões de memória USB. Pode ser usado com qualquer dispositivo de bloco, incluindo unidades ópticas ou iSCSI LUNs.
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>.