Eu tenho uma chave USB que será usada para salvar dados nela diariamente através de um script bash. Eu consegui montá-lo para que um usuário específico pudesse escrever pastas nele usando o comando:
mount /dev/sdc1 /media/usb -o rw,uid=sysop,gid=sysop
O script pode executar e criar diretórios conforme desejado e é perfeito. Em algum momento, a chave USB será desconectada e substituída por uma nova (mesmo modelo). A nova chave USB ainda terá o nome /dev/sdc1
ou será diferente?
Se for diferente, como posso incluir a peça de montagem no meu script para que seja feita automaticamente?
linux
mount
udev
block-device
removable-storage
Gudrun
fonte
fonte
Respostas:
Embora o acesso
/dev/sdXy
seja perigoso, uma identificação mais precisa pode ser feitaUUID
.Como você menciona (em algum momento) a alteração do pendrive, para manter a compatibilidade, você pode identificar seu pendrive por uma etiqueta. Para fazer isso, você pode:
/dev/disk/by-label/YourLabelHere
.Observe que você precisa definir o rótulo para um novo pendrive antes de executar o script e também
/dev/disk/by-label
estará disponível apenas se (pelo menos) um pendrive estiver conectado (caso contrário, ele será removido).Detalhes sobre como configurar a etiqueta usb podem ser encontrados aqui: /ubuntu/194510/how-to-edit-label-of-usb-drive
fonte
/dev/disk/by-id/
poderá ser útil (é o que eu uso nos meus sistemas de arquivos).É assim que eu resolvo esse problema, mas geralmente como Sato Katsura disse, você precisa escrever uma regra do udev.
udevadm info --query all /dev/sdc
(ou o que seja).Configurar uma regra do udev, aqui está um exemplo para o meu bolso. Os campos
ID_SERIAL_SHORT
eID_FS_UUID
eu lemos as informações na etapa 2:Defino OWNER aqui, para montá-lo com minha conta de usuário principal. Também com o meu bolso não tenho partições, mas monte os discos simples. Se você tiver partições alteradas:
para a partição número 1, nas linhas de regras do udev.
As regras do udev são encontradas em
/etc/udev/rules.d
, se você tiver um sistema são.Agora você pode
recarregar as regras e
para monitorar o que acontece durante a etapa 5.
Conecte e conecte seu dispositivo USB (é claro, depois de desmontar antes, se você o montou). O monitor deve informá-lo sobre o novo dispositivo quando ele é inicializado.
Verifique se
/dev/
contém os links simbólicos corretos. No meu exemplo, eu entendi isso:Agora você pode definir regras persistentes com os links simbólicos
/dev/pocketbook
e/dev/pocketbook-sd
, ou quaisquer que sejam seus nomes, no campo SYMLINK do arquivo de regras do udev.fonte
Apenas para adicionar à resposta do @ alextartan.
Eu rolei meu próprio sistema de backup, que usa drives USB para destinos. Eu preciso ter certeza do que está indo para onde. Como os UUIDs não são particularmente amigáveis, confio nas etiquetas de disco.
Os UUIDs também são um pouco problemáticos, porque sempre que você reformata uma partição, ele recebe um novo UUID exclusivo; portanto, todos os scripts que usam esse UUID precisam ser modificados. Posso atribuir o mesmo rótulo de antes à partição reformatada (ou mesmo a uma partição em uma unidade nova / de substituição) e deixar meus scripts em paz.
Eu criei minha própria convenção de rotulagem (amigável ao ser humano) e usei o gparted para rotular as várias partições quando as crio.
Quando meus scripts precisam acessar uma partição específica, procuro o nome do dispositivo usando o rótulo.
fonte