Automatizando a sequência de comandos de montagem


9

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

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

Então eu vou copiar alguns arquivos e

$ sudo umount /dev/sdc

Essa sequência me garante que os arquivos são copiados e nada de ruim vai acontecer.

Você poderia me dizer como automatizar essa sequência de comandos? Então, apenas conectarei o dispositivo, ele reconhecerá em qual diretório ele deve ser montado, depois efetuarei uma transferência de arquivos e, em seguida, sinalizará (de alguma forma) que posso desconectar o dispositivo? Existem algumas configurações no sistema operacional Linux para isso?

Respostas:


6

O componente do sistema que reage à conexão de um dispositivo removível é o Udev , conforme mencionado pelo SHW . Até 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 pedir 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 inseridas /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 /udev/lib/vol_id -u %N1(para o UUID, -lpara o rótulo) em vez da blkidchamada. Você pode encontrar mais itens, por exemplo ATTRS{vendor}=="Yoyodine", ATTRS{serial}=="XYZZY12345PDQ97"(em vez de PROGRAM==…, RESULT==…) para corresponder ao fornecedor e ao número de série de um dispositivo.

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

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

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


Obrigado pela ótima solução. Eu tenho o LVM em algumas unidades externas, portanto, uma sequência mais longa de elogios (incluindo a ativação do VG etc.), agora posso até adicionar scripts de backup a isso :).
Grzegorz Wierzowiecki 20/08/2012

Caro leitor - se você quiser saber sobre os ATTRS disponíveis, tente isso com o seu dispositivo:udevadm info --name=/dev/DEVICE --attribute-walk
Grzegorz Wierzowiecki

8

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

Para escrever regras, você pode seguir este link.


Ooh legal. Ainda não o conhecia - Marcando o link como favorito e adicionando-o ao meu repertório.
Shadur

Poderia ser mais específico? Quais parágrafos do link são relevantes para mim?
Xralf # 22411

Parece o que estou procurando. Só não tenho tempo para ler todos esses dias. Vou estudá-lo e colar a resposta certa no seu comentário no momento em que o entender. Graças
xralf

4

Atualmente, existem vários daemons de montagem automática, bem como o pmountcomando especificamente destinado a permitir que os usuários montem dispositivos removíveis /mediasem precisar de sudoacesso.

O Gnome e o KDE têm a opção de montar automaticamente volumes removíveis quando estão conectados; dependendo da distribuição que você instalou, essa função pode até estar ativada.

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


Eu gostaria de fazê-lo independentemente no ambiente de gerenciamento de janelas (como KDE, GNOME etc.) (como se o X não tivesse sido iniciado).
xralf

Então você terá que ler o link que o SHW postou e ler praticamente tudo.
precisa saber é o seguinte
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.