montagem automática de qualquer unidade externa em / media com acesso de leitura / gravação a todos

9

Aqui está o meu problema:

Meu computador possui 4 portas USB e está executando o Ubuntu 12.10. Recebo USBs diferentes todos os dias, conecto ao meu computador, leio / escrevo dados para eles e depois os envio embora.

O que eu quero é montar automaticamente qualquer USB que eu conecte no meu computador. O primeiro USB detectado vai para /media/HDD1, o segundo vai para /media/HDD2e assim por diante. Ou seria ótimo se o USB conectado à porta1 fosse /media/HDD1, o USB conectado à porta2 fosse /media/HDD2, e assim por diante.

O caminho /medianão é importante, mas eu gostaria que os diretórios do HDD1-4 estivessem em um único local para que eu possa acessá-los facilmente.

Os USBs normalmente são ext2, mas às vezes também recebo USBs FAT32 e NTFS.

Também quero que o USB seja montado sem fazer login no Ubuntu, pois geralmente acesso a /media/HDD..partir de outro computador com Windows.

Como eu posso fazer isso? Que alteração nas udevregras fstabdevo fazer? Qualquer sugestão é muito apreciada.

kiwi
fonte

Respostas:

7

Bem, aqui podemos usar o mesmo truque fstabusado para a mídia óptica (também conhecida como CD e DVD):

/dev/sr0        /media/cdrom0   udf,iso9660 user,noauto     0       0

A primeira coluna indica o sistema de arquivos, eu sou valores certeza de que seus do USB terá fixos, então vamos supor que tudo que vem depois sdaé um USB, e desde que você só pode ter 4 de USB ao mesmo tempo, a lista vai de sdb, sdc, sdde sde.

$ ls /dev/sd*
/dev/sda   /dev/sdb   /dev/sdb3  /dev/sdb6  /dev/sdc  /dev/sdf
/dev/sda1  /dev/sdb1  /dev/sdb4  /dev/sdb7  /dev/sdd
/dev/sda2  /dev/sdb2  /dev/sdb5  /dev/sdb8  /dev/sde

(No meu caso, uso um leitor de memória, meus drivers USB começam, sdgmas vamos continuar.)

Agora, assumimos que cada USB possui uma e apenas uma partição; portanto, as linhas de que precisamos, para nossa fstab, são:

/dev/sdb1
/dev/sdc1
/dev/sdd1
/dev/sde1

Então você disse que seus pontos de montagem precisam ser corrigidos; portanto, depois de criar seus diretórios, vamos adicioná-los:

/dev/sdb1 /media/HDD1
/dev/sdc1 /media/HDD2
/dev/sdd1 /media/HDD3
/dev/sde1 /media/HDD4

Como você pode ter quase todos os tipos de sistemas de arquivos, vamos usar o autofstab para adivinhar o tipo de arquivo a ser usado:

/dev/sdb1 /media/HDD1 auto
/dev/sdc1 /media/HDD2 auto
/dev/sdd1 /media/HDD3 auto
/dev/sde1 /media/HDD4 auto

Ok, agora vamos resumir-se às opções, que serão as mesmas para os CDs com mais permissões de leitura / gravação:

/dev/sdb1 /media/HDD1 auto rw,users,noauto,allow_other,umask=0
/dev/sdc1 /media/HDD2 auto rw,users,noauto,allow_other,umask=0
/dev/sde1 /media/HDD3 auto rw,users,noauto,allow_other,umask=0
/dev/sde1 /media/HDD4 auto rw,users,noauto,allow_other,umask=0

rwdiz que queremos permissão de leitura e gravação, userspermite que qualquer usuário monte um dispositivo, noautoevita que o driver seja montado automaticamente quando mount -aé chamado, como na inicialização, impedindo erros de inicialização e avisos, allow_otherpermite que outros, exceto o usuário que montou o driver, tem as mesmas permissões e umask=0impede que os padrões umask sejam aplicados.

Agora, os únicos dois campos restantes são basicamente sobre o dumppedido e o fsckpedido, que podem estar em 0ambos, deixando-nos com o resultado final:

/dev/sdb1 /media/HDD1 auto rw,user,noauto,allow_other 0 0
/dev/sdc1 /media/HDD2 auto rw,user,noauto,allow_other 0 0
/dev/sdd1 /media/HDD3 auto rw,user,noauto,allow_other 0 0
/dev/sde1 /media/HDD4 auto rw,user,noauto,allow_other 0 0

Com isso, toda vez que você conectar um dispositivo USB, ele será montado automaticamente no ponto de montagem, sem a intervenção do usuário. Você deve modificar de acordo com suas necessidades.

Braiam
fonte
obrigado Braiam. Não tenho certeza se a alteração do fstab pode montar automaticamente USBs sem a necessidade de reinicialização ou usando o comando "mount". Eu encontrei uma solução simples de usar autofs. Não só automount mas também suporta auto-desmontagem após o tempo pré-definido de nenhuma ação, que é muito útil no meu caso
Kiwi
Não, não faz. Como eu disse no início, eu estava usando as mesmas utilizações truque fstab para CD / DVD que não requerem o uso de rootnem mountnem reinício.
Braiam
3

Aqui está a solução que encontrei:

Primeiramente eu instalo autofs no meu PC linux:

sudo apt-get install autofs

Ele criará o arquivo auto.master em /etc/auto.master

Adicione a seguinte linha no final desse arquivo:

/media/mount /etc/auto.mount --timeout=10 --ghost

/media/mounté um diretório em que desejo montar todas as unidades externas. /etc/auto.mounté o arquivo a ser inserido nas regras de montagem. --timeout=10significa que desmontará automaticamente a unidade após 10 segundos de inatividade. --ghostsignifica que ele ainda deixa uma imagem do conteúdo quando é desmontado. Mude esta linha de acordo com suas necessidades.

Edite o /etc/auto.mountarquivo e adicione as seguintes linhas:

disk1  -fstype=auto,sync  :/dev/sdc1
disk2  -fstype=auto,sync  :/dev/sdd1
disk3  -fstype=auto,sync  :/dev/sde1
disk4  -fstype=auto,sync  :/dev/sdf1
disk5  -fstype=auto,sync  :/dev/sdg1
disk6  -fstype=auto,sync  :/dev/sdh1
disk7  -fstype=auto,sync  :/dev/sdi1
disk8  -fstype=auto,sync  :/dev/sdj1
DVD    -fstype=iso9660,ro :/dev/sr0

Para unidades normais, como USB ou eSATA -fstype=auto,sync. Como tenho 8 portas USB + eSATA, declaro aqui 8 pontos de montagem. Meu PC já tem sdae sdbcomo discos locais, então eu coloquei sdc1-> sdj1para dispositivos externos. Na verdade, são nós de dispositivo /devquando você conecta suas unidades. Uma exceção à regra de montagem é a montagem de DVD, como você vê acima.

Quando insiro alguma unidade, ela será exibida como disco1, disco2, ... no /media/mountdiretório e será desmontada automaticamente após 10 segundos. Não preciso tocar no meu PC e posso acessá-lo de outro lugar (como a máquina virtual)

kiwi
fonte