Automatizando a seqüência dos comandos de montagem

9

Quando conecto um dispositivo (tablet, câmera, unidade flash, disco rígido externo) ao meu laptop com o Linux, geralmente eu digito a seguinte sequência de comandos.

$ ls /dev/sd*
Digamos que meu dispositivo seja / dev / sdc
$ sudo mkdir /media/my_flash opcional
$ sudo chmod 777 /media/my_flash opcional $ sudo mount /dev/sdc /media/my_flash

Então vou copiar alguns arquivos e arquivos

$ sudo umount /dev/sdc

Essa sequência garante que os arquivos serão copiados e nada de ruim acontecerá.

Você poderia me dizer como automatizar essa sequência de comandos? Então eu só vou ligar o dispositivo, ele vai reconhecer em qual diretório ele deve ser montado, então eu vou fazer alguma transferência de arquivo e então ele vai me sinalizar (de alguma forma) que eu posso desligar o dispositivo? Existe alguma configuração no Linux OS para isso?

    
por xralf 22.04.2011 / 11:03

3 respostas

6

O componente do sistema que reage à conexão de um dispositivo removível é Udev , conforme mencionado por SHW . Mesmo o tutorial do udev pode ser um pouco assustador; Vou mostrar alguns exemplos.

Há duas etapas envolvidas: associar um arquivo de dispositivo (por exemplo, /dev/sdc ) ao dispositivo de hardware e montar o dispositivo para acessar o sistema de arquivos. O trabalho do Udev é o primeiro passo, embora você possa dizer para executar um comando externo como mount .

Para dispositivos removíveis conhecidos, gosto de usar um nome de dispositivo dedicado em /dev/removable (esse nome de diretório é uma convenção pessoal). As seguintes regras do udev (a serem colocadas em /etc/udev/rules.d/my_removable_disks.rules ) criam links simbólicos com nomes conhecidos para dois discos, ambos identificados por uma propriedade do sistema de arquivos em sua partição 1:

KERNEL=="sd?", PROGRAM=="/sbin/blkid -o value -s UUID %N1", RESULT=="1234-5678", SYMLINK+="removable/foo"
KERNEL=="sd?", PROGRAM=="/sbin/blkid -o value -s LABEL %N1", RESULT=="Joe's disk", SYMLINK+="removable/joe"

Versões mais antigas do udev podem precisar de /udev/lib/vol_id -u %N1 (para o UUID, -l para o rótulo) em vez da chamada blkid . Há mais coisas que você pode combinar, por exemplo ATTRS{vendor}=="Yoyodine", ATTRS{serial}=="XYZZY12345PDQ97" (em vez de PROGRAM==…, RESULT==… ) para corresponder ao fornecedor e ao número de série do dispositivo.

Então você pode usar uma linha como esta em /etc/fstab :

/dev/removable/joe  /media/joe  vfat  noauto,user

Se preferir uma montagem automática, você pode adicionar algo como , RUN="mkdir /media/foo && mount /dev/removable/foo /media/foo" à linha do udev. Não esqueça de umount /media/foo antes de desconectar.

    
por 22.04.2011 / 23:10
8

Você pode fazer isso escrevendo uma regra UDEV, que irá "executar" o script bash com os mesmos comandos bash, você mencionou. Sempre que você conectar os dispositivos mencionados, a UDEV reconhecerá isso e começará a se comportar de acordo com a regra.

Para escrever regras, você pode seguir este link .

    
por 22.04.2011 / 11:40
4

Existem vários daemons de montagem automática atualmente, bem como o comando pmount , que é especificamente destinado a permitir que os usuários montem dispositivos removíveis em /media sem a necessidade de sudo access.

O Gnome e o KDE têm a opção de montar automaticamente volumes removíveis quando estão conectados; Dependendo de qual distribuição você instalou, essa função pode até ser padronizada para 'on'.

No GNOME, as opções que governam este recurso estão disponíveis em System -> Preferences -> Removable Media ; Não tenho experiência recente com o KDE.

    
por 22.04.2011 / 11:41

Tags