Como listar TODOS os dispositivos HDD conectados de maneira amigável ao script?

Como listar TODOS os dispositivos HDD conectados de maneira amigável ao script?

Como listar TODOS os dispositivos HDD conectados de maneira amigável ao script? Todos - significa montado e não montado. Compatível com script - significa algo que posso usar para (u) montagem em meu script de shell com o mínimo de grep'ing ou sed'ing.

Minha tarefa é escrever algum script que, na inicialização, descubra onde está o HDD (se estiver conectado) e monte-o. No meu script, preciso obter uma lista de dispositivos disponíveis em/dev. Qual ferramenta devo usar no meu script?

Aqui estão as opções que considerei:

  • fdisk -l fornece muito mais informações do que preciso - é um pouco difícil analisar sua saída no shell
  • parted -l não lista partições não montadas e também fornece muitas informações extras
  • cat /proc/partitions melhor resultado, mas não lista partições não montadas

Qual ferramenta se adapta melhor à minha tarefa?

Para esclarecer um pouco de onde venho, aqui está minha situação:

Em alguns usuários de PC conectará algum HDD via USB ou SATA. Então o usuário reinicia o PC. Não sei nada sobre o dispositivo HDD, só posso assumir que ele possui uma partição com sistema de arquivos ext4. O dispositivo pode aparecer como /dev/sda ou /dev/sdb. Tenho acesso su ao dispositivo e posso adicionar meu script a /etc/rc.local ou em qualquer outro lugar, mas só tenho esse acesso antes de entregar o PC ao usuário.

Responder1

Talvez blkido que dê linhas da forma:

/dev/sdXX: UUID="<UUID>" TYPE="<fstype>"

Além disso, você pode usar esses UUIDs em fstab: UUID="<UUID>"pode substituir o caminho do dispositivo /dev/sdXX.

Responder2

Em distros que possuem udisks

 udisks --enumerate-device-files | grep -v ^/dev/disk

informação relacionada