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.
obrigado por postar 🙂
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 🙂
Obrigado, eu só queria fazer isso no Raspbian, usei o Arch antes e era mais fácil.
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.
[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