Eu não sei de uma maneira de comando único para fazer isso. Os programas GUI estão fazendo um pouco de interrogação do disco para tomar a abordagem "certa" e você precisará fazer um pouco desse trabalho sozinho. Você não precisa de sudo, e acho que a sequência de eventos resultante é relativamente indolor.
A resposta curta
Use udisksctl
do pacote udisks2
:
udisksctl unlock -b /path/to/disk/partition
udisksctl mount -b /path/to/unlocked/device
Sua conta de usuário precisará ser devidamente autorizada para que o acima funcione. No Debian e no Ubuntu, isso significa adicionar sua conta ao grupo plugdev
.
Quando terminar o disco:
udisksctl unmount -b /path/to/unlocked/device
udisksctl lock -b /path/to/disk/partition
udisksctl power-off -b /path/to/disk/or/partition
Como configurar as coisas
Veja como você pode definir as coisas (através da linha de comando) para tornar o processo de usar o disco o mais simples possível. Eu suponho que você quer usar a totalidade da unidade USB como um único sistema de arquivos. Outras configurações exigirão modificações nas instruções. Advertência sobre variações: não encontrei uma maneira de usar o LVM no contêiner criptografado que permitirá que uma conta não privilegiada desconecte tudo. (Eu não vejo uma maneira de desativar um grupo de volume via udisksctl
.)
Para fins de ilustração, diremos que o disco é /dev/sda
. Você precisará de um nome para o sistema de arquivos para facilitar a referência posterior. Vou usar " example
".
Particionar o disco
Execute sudo parted /dev/sda
e execute os seguintes comandos:
mklabel gpt
mkpart example-part 1MiB -1s
quit
O comando mkpart
provavelmente solicitará que você ajuste os parâmetros ligeiramente. Você deve estar bem aceitando os números recomendados.
A partição agora estará disponível via /dev/disk/by-partlabel/example-part
.
Crie e monte a partição LUKS
sudo cryptsetup luksFormat /dev/disk/by-partlabel/example-part
Siga as instruções.
sudo cryptsetup luksOpen /dev/disk/by-partlabel/example-part example-unlocked
O dispositivo criptografado agora está disponível em /dev/mapper/example-unlocked
. Isso não vai ser uma coisa permanente; é apenas para o processo de configuração.
Crie seu sistema de arquivos
Vamos supor que o sistema de arquivos que você está usando seja XFS. Praticamente qualquer outro sistema de arquivos tradicional funcionará da mesma maneira. O importante é adicionar um rótulo que você possa consultar depois:
sudo mkfs -t xfs -L example /dev/mapper/example-unlocked
O dispositivo de bloco do sistema de arquivos agora pode ser acessado via /dev/disk/by-label/example
.
Definir permissões do sistema de arquivos
Por padrão, o sistema de arquivos só será acessível pelo root. Na maioria dos casos, você provavelmente deseja que os arquivos sejam acessíveis pela sua conta de usuário. Supondo que o nome da sua conta seja " user
":
udisksctl mount -b /dev/disk/by-label/example
sudo chown user:user /media/user/example
Fechar tudo para baixo
udisksctl unmount -b /dev/disks/by-label/example
sudo cryptsetup luksClose example-unlocked
Use seu sistema de arquivos
Isso é o que você fará regularmente. Depois de ligar a unidade USB,
udisksctl unlock -b /dev/disks/by-partlabel/example-part
udisksctl mount -b /dev/disks/by-label/example
Se a sua conta de usuário for " user
", o sistema de arquivos será montado em /media/user/example
.
Para desmontar o sistema de arquivos:
udisksctl unmount -b /dev/disks/by-label/example
udisksctl lock -b /dev/disks/by-partlabel/example-part
udisksctl power-off -b /dev/disks/by-partlabel/example-part
Agora você pode desconectar a unidade USB.