Testado para trabalhar em 14,04 e 16,04
Um simples one-liner que deve sempre produzir o UUID de uma raiz /
is
export DRIVE=$(mount | grep ' / ' | awk -F" on " '{print $1}');blkid $DRIVE| cut -d '"' -f2
'
O que estamos fazendo aqui é mostrar a saída de mount para coincidir com o símbolo raiz com espaços em ambos os lados /
para evitar correspondência quando /
é usado como um símbolo de extensão de caminho, passando isso por awk
usando " on "como um separador de campo para produzir apenas o nome do dispositivo e atribuir THAT à variável de ambiente $ DRIVE, usando a saída de blkid $DRIVE
canalizada por recorte usando o "
como separador de campo e selecionando apenas o segundo campo que elimina todo o resto, deixando apenas o UUID.
Note que o que pertence após grep no comando acima é na verdade ' espaço / espaço ' e não '/' como aparece.
Isso tem o benefício de não exigir sudo
e retornará o resultado apropriado, independentemente de como o drive está montado.
Seria sensato garantir que você não esteja usando a variável de ambiente $ DRIVE para mais nada antes de tentar essa abordagem. echo $DRIVE
retornará uma linha em branco se você não estiver usando a variável.