Montar dispositivos USB automaticamente em um Raspberry PI

Este artigo foi publicado por Ei no nosso fórum

No Raspberry, se você não usa uma interface gráfica, fica chato montar nossa memória USB repetidamente. Além disso, no processo de automação dessa ação (que é o que mostro abaixo), você pode aprender um pouco sobre como o Linux lida com dispositivos.

Instale o autofs e o udev

A primeira coisa que vamos fazer é instalar autofs y udev

sudo apt-get install autofs udev

udev é uma ferramenta do kernel do Linux responsável por gerenciar o diretório / dev, onde todos os dispositivos estão localizados. E o autofs permite que, uma vez configurado, tudo seja montado e desmontado automaticamente assim que o usb for conectado ou desconectado.

A primeira coisa que faremos é conectar nossa memória USB (vou usar uma marca Kingston) em nosso computador / Raspberry Pi. Então executamos:

sudo fdisk-l

terá uma saída semelhante a esta:

Disco / dev / mmcblk0: 15.7 GB ... Dispositivo Boot Iniciar Fim Blocos Id Sistema / dev / mmcblk0p1 2048 1607421 802687 e W95 FAT16 (LBA) / dev / mmcblk0p2 1613824 30613503 14499840 85 Linux estendido / dev / mmcblk0p3 30613504 30679039 32768 83 … .. Disco / dev / sda: 30.9 GB ... Dispositivo Boot Iniciar Fim Blocos Id Sistema / dev / sda1 2048 60436479 30217216 c W95 FAT32 (LBA)

Minha memória USB externa tem 30.9 GB (ou seja, é / dev / sda1), enquanto a memória SD onde instalei o Linux tem 15.7 GB.

Regras personalizadas no udev

Sabendo que sda1 é nosso dispositivo, usaremos o udev para extrair informações da memória, por isso executamos o seguinte comando:

udevadm info -a -p $ (udevadm info -q path -n / dev / sda1)

haverá blocos separados pela frase "olhando para o dispositivo pai '/ dispositivos / ... .."

para tornar a pesquisa um pouco mais fácil, podemos usar grep, então eu faço o seguinte:

udevadm info -a -p $ (udevadm info -q caminho -n / dev / sda1) | fabricante grep

no meu caso, como minha memória é uma Kingston, o resultado é:

    ATTRS {manufacturer} == "Kingston" # 1 ATTRS {manufacturer} == "Linux 3.12.28+ dwc_otg_hcd"

ou também podemos pesquisar:

udevadm info -a -p $ (udevadm info -q caminho -n / dev / sda1) | modelo grep udevadm info -a -p $ (udevadm info -q path -n / dev / sdd1) | fornecedor grep

interessa-me:

ATTRS {fabricante} == "Kingston"

Como foi a primeira coincidência. Na saída do comando udevadm Procuro o bloco onde aparece pela primeira vez "ATTRS {fabricante}"

Pego alguns dados que considero únicos do dispositivo de um bloco, no meu caso:

   ATTRS {product} == "xxx" ATTRS {serial} == "xxxx" DRIVERS == "usb"

você só precisa criar as regras. Fazemos um arquivo terminado em .rules no udev:

sudo nano /etc/udev/rules.d/personal.rules

dentro do arquivo que colocamos

ATTRS {product} == "xxx", ATTRS {serial} == "xxx", DRIVERS == "usb", SYMLINK + = "miusb"

Agora, quando eu conectar meu usb, haverá um arquivo / dev / miusb. Essa foi a parte mais difícil.

configurando autofs

Nós executamos:

sudo nano / etc / default / autofs

onde diz "TIMEOUT =" eles colocam "TIMEOUT = 1"

Vamos para /etc/auto.master

nano /etc/auto.master

e dentro do arquivo colocamos a última linha:

/ media /etc/auto.misc

agora vamos para /etc/auto.misc

nano /etc/auto.master

e na última linha escrevemos:

mymemory -fstype = vfat, users, rw, umask = 000: / dev / miusb

finalmente, fazemos com que ele carregue o módulo autofs no início:

sudo nano / etc / modules

e na última linha escrevemos:

autofs4

e pronto, reiniciamos o Raspberry. Lembre-se de que a pasta não existe em / media, mas quando fazemos um

cd / media / memória

já estamos dentro. E se pararmos de usá-lo, a pasta desaparece e podemos remover o dispositivo sem desmontá-lo manualmente.


Deixe um comentário

Seu endereço de email não será publicado. Campos obrigatórios são marcados com *

*

*

  1. Responsável pelos dados: Miguel Ángel Gatón
  2. Finalidade dos dados: Controle de SPAM, gerenciamento de comentários.
  3. Legitimação: Seu consentimento
  4. Comunicação de dados: Os dados não serão comunicados a terceiros, exceto por obrigação legal.
  5. Armazenamento de dados: banco de dados hospedado pela Occentus Networks (UE)
  6. Direitos: A qualquer momento você pode limitar, recuperar e excluir suas informações.

  1.   Ei dito

    obrigado por postar 🙂

  2.   Paul dito

    Acho que há um erro, na etapa de edição de auto.misc, auto.master está escrito no código, caso alguém desavisado faça isso e não perceba 🙂

  3.   Fernando diaz dito

    Obrigado, eu só queria fazer isso no Raspbian, usei o Arch antes e era mais fácil.

  4.   Azureus dito

    Muito bom, isso eu consegui ocupar quando coloquei meu Pi como cliente torrent com diretórios compartilhados pelo samba.
    O manual do fstab diz que algo um pouco mais robusto é verificar o rótulo da unidade com # blkid, no meu caso eu tenho uma partição do Windows montada automaticamente em cada inicialização da seguinte maneira:

    / Dev / sda2
    UUID = 24A0729FA07276E0 / home / azureus / Windows NTFS auto, padrões 0 2

    no raspberry tenho um LVM montado, não me lembro bem da configuração.
    De acordo com o manual, você pode usar # fdisk -l para obter o número e a letra da unidade e # blkid para saber qual rótulo corresponde a qual unidade.

    Saudações.

    1.    Azureus dito

      [Atualizar]
      Esse rótulo surge do fato de que existem pessoas (como eu) que tem preguiça de desconectar um volume toda vez que o computador é desligado, o problema é quando você tem vários volumes, pois nem sempre está montado na mesma ordem após várias reinicializações . A propósito, isso tem uma desvantagem, quando o dispositivo correspondente ao rótulo atribuído para montagem automática é removido, ele gera um erro e não permite que o / home seja carregado no caso de a partição ser montada em casa. Isso pode ser resolvido comentando o dispositivo que está causando conflitos no fstab ou conectando o dispositivo novamente