Contexto
Estou automatizando a criação de imagens do cartão SD a partir de uma dd
imagem de fábrica existente . O cartão SD está sempre conectado através de um leitor de cartão USB externo e, portanto, aparece no sistema como um dispositivo de bloco SCSI /dev/sd*
.
Atualmente, a sintaxe do meu comando é: write-image DEVICE
onde DEVICE
está o dispositivo de bloqueio do cartão SD, por exemplo. /dev/sdd
.
Problema
Eu já estou fazendo uma verificação básica DEVICE
para verificar se está no formato, /dev/sd*
mas isso não é suficiente: eu temo que os usuários (pessoal de produção não acostumado ao Linux) cometam um erro e especifiquem outro dispositivo aparentemente válido, por exemplo. /dev/sda
. Você pode ver a catástrofe iminente, especialmente porque o meu script de imagem precisa de privilégios de root (não para gravar a imagem em si, lembre-se, mas para modificar o cartão SD posteriormente, incluindo o ajuste do tamanho de uma partição dependendo do tamanho real do cartão SD) ...
Questão
Gostaria de verificar se o dispositivo especificado é realmente algum armazenamento em massa USB (ou pelo menos um dispositivo removível), para que eu possa proteger os discos do sistema contra o lixo acidental. Como eu posso fazer isso?
Não encontrei nada relevante na /proc
ou na web, estou bastante perdido agora.