Conheça este utilitário de linha de comando para controlar discos no Linux

Unidades de armazenamento externas ou internas podem ser acessadas e controladas com o utilitário de linha de comando (CLI) udisksctl.
O programa permite realizar diversas operações avançadas nas unidades conectadas.

Obter informações, verificar o status, monitorar unidades, montar/desmontar dispositivos, travar/destravar unidades criptografadas, desligar completamente ou configurar o SMART etc. — são algumas das tarefas que podem ser executadas com este pequeno utilitário.

Abra um terminal e me acompanhe nas experiências que seguem.

Como obter informações sobre um dispositivo de armazenamento conectado ao meu computador

O utilitário tem autocompletar para facilitar a digitação, portanto use a tecla TAB para tornar mais eficiente o uso dele.

A opção status permite ver as unidades atualmente conectadas ao seu sistema:


udisksctl status

MODEL                     REVISION  SERIAL               DEVICE
--------------------------------------------------------------------------
Hitachi HTS545050A7E380   GG2OA6C0  TE85123RJG3K4W       sda     
SanDisk SSD i100 24GB     11.56.04  123200143249         sdb     
WDC WD5000BPVT-22HXZT1    01.01A01  WD-WXD1A41D1154      sdc     
TOSHIBA MK5059GSXP        GT001L    51NAP03LT            sdd     
SanDisk Cruzer Blade      1.26      4C530699960225111162 sde

Como você pode ver, acima, as informações obtidas e mostradas pelo utilitário são bem detalhadas.

Use a opção info para obter informações específicas sobre um objeto (lembre-se de telcar TAB para completar a digitação):


udisksctl info --drive SanDisk_Cruzer_Blade_4C530699960225111162

A opção dump irá mostrar uma quantidade de dados muito maior, sobre todas as unidades possíveis:


udisksctl dump

Os dados detalhados das unidades podem ocupar diversas páginas de terminal. Use a tecla de espaçamento, para passar as páginas e a tecla Q para sair do modo de visualização do comando.

Sugiro usar o comando grep para obter informações específicas:

udisksctl dump | grep Hitachi
    Drive:                      '/org/freedesktop/UDisks2/drives/Hitachi_HTS545050A7E380_TE85123RJG3K4W'
    Id:                         by-id-ata-Hitachi_HTS545050A7E380_TE85123RJG3K4W
    Symlinks:                   /dev/disk/by-id/ata-Hitachi_HTS545050A7E380_TE85123RJG3K4W
    Drive:                      '/org/freedesktop/UDisks2/drives/Hitachi_HTS545050A7E380_TE85123RJG3K4W'
    Id:                         by-id-ata-Hitachi_HTS545050A7E380_TE85123RJG3K4W-part1
    Symlinks:                   /dev/disk/by-id/ata-Hitachi_HTS545050A7E380_TE85123RJG3K4W-part1
    Drive:                      '/org/freedesktop/UDisks2/drives/Hitachi_HTS545050A7E380_TE85123RJG3K4W'
    Id:                         by-id-ata-Hitachi_HTS545050A7E380_TE85123RJG3K4W-part2
    Symlinks:                   /dev/disk/by-id/ata-Hitachi_HTS545050A7E380_TE85123RJG3K4W-part2
/org/freedesktop/UDisks2/drives/Hitachi_HTS545050A7E380_TE85123RJG3K4W:
    Id:                         Hitachi-HTS545050A7E380-TE85123RJG3K4W
    Model:                      Hitachi HTS545050A7E380

Para monitorar uma unidade use a opção monitor, seguida do nome do dispositivo:


udisksctl monitor SanDisk_Cruzer_Blade_4C530699960225111162 
Monitoring the udisks daemon. Press Ctrl+C to exit.
14:55:24.735: The udisks-daemon is running (name-owner :1.1046).

A unidade, acima, está desmontada e “dormente”. Se houver alguma atividade ligada a ela, o terminal irá mostrar.
Quando quiser terminar o programa tecle Ctrl+C.

Como trabalhar com unidades criptografadas usando o udisksctl

As opções lock e unlock se referem às unidades alvo de criptografia.
No exemplo, abaixo, uso um drive USB criptografado com LUKS.

Para destravar, use unlock e forneça a senha:


udisksctl unlock -b /dev/sde

Passphrase: 
Unlocked /dev/sde as /dev/dm-0.

Para travar novamente, use lock:


udisksctl lock -b /dev/sde

Locked /dev/sde.

O comando pode ser útil dentro de scripts de backup que necessitem de alguma criptografia, para manter os seus dados ainda mais seguros.

Passo a passo para formatar um drive no Linux usando criptografia forte.

Qualquer drive, seja um pendrive, um cartão de memória ou um HD externo pode ser formatado facilmente no Linux, com as ferramentas de gestão de discos.
O programa pode ser disparado a partir do próprio Nautilus, se você usa alguma distro com o GNOME (Debian, Ubuntu etc.)

Se você tem interesse em conhecer melhor o utilitário, leia Como formatar um drive no Linux, onde o assunto é abordado de maneira mais extensa (e genérica).

Neste post, vou mostrar como realizar o procedimento de maneira rápida, usando o sistema de arquivos EXT4 com o LUKS.

Como formatar uma unidade com criptografia LUKS

Localize a unidade a ser criptografada no painel esquerdo do Nautilus.
seleção de volume no Nautilus

Em seguida, clique com o botão direito do mouse sobre a unidade escolhida e selecione formatar.
Formatar no Nautilus para Linux

Dê um nome ao volume a ser inicializado.
Opções de formatação

Se estiver com tempo para esperar, vale a pena selecionar a opção “Apagar”, que irá remover todos os dados do drive selecionado, em segurança. Fica o aviso de que esta opção é de execução demorada — a desculpa perfeita para ir tomar um café, se quiser.
Opções de formatação

A criptografia LUKS só pode ser selecionada para sistemas de arquivos EXT4, do Linux.

Se executar este processo em um drive externo USB, por exemplo, vai precisar instalar suporte a EXT4 e criptografia LUKS, para conseguir ler seu conteúdo no Windows.

Quando terminar de fazer seus ajustes nesta janela, clique em “Próximo”.

Na próxima tela, você terá que definir e confirmar a sua senha.
Se deixou a opção “Apagar” desligada, então o processo será bem rápido.
Senha para formatação com criptografia

Daqui para frente, toda vez que for usar o drive, a senha cadastrada será pedida.
Nautilus volume criptografado

Na imagem, acima, é possível notar que, antes de dar a senha e montar a unidade, nem o nome do volume será exibido no Nautilus.
A criptografia LUKS em unidades EXT4 é uma maneira segura e conveniente (fácil) de armazenar arquivos com informações sensíveis e confidenciais.

Experimente o gerenciador de arquivos (CLI) Ranger no Linux (ou no Mac)

O Ranger é um gestor de arquivos de linha de comando (CLI), escrito em Python.
O programa possui todas as funções presentes nos gestores mais usados, como o Nautilus, no Ubuntu.

Para quem não tem problemas com a CLI, como interface de execução de seus aplicativos, o Ranger ainda oferece a vantagem da velocidade de execução.

O programa permite executar tarefas relacionadas à gestão de arquivos com poucos toques no teclado, usando teclas simples ou composições de atalhos de teclado.

O uso do mouse é opcional.

Para ficar de acordo com a documentação oficial, no restante do texto, vou grafar o nome do utilitário em minúsculas.

Como instalar o ranger

Abra um terminal e execute o gestor de pacotes da sua distro, para fazer a instalação dele. Segue um exemplo, usando o apt (Debian/Ubuntu):


sudo apt install ranger

Junto com o utilitário, é instalado o navegador de Internet w3m — também com interface em modo texto ou CLI.

Outras extensões são instaladas e podem ser usadas à medida em que forem necessárias, como o rifle, para abrir arquivos.
As configurações permitem definir outros programas para executar tarefas específicas a partir do ranger.

Se precisar visualizar alguma imagem ou outro tipo de arquivo de dentro do ranger, ele abrirá o visualizador padrão do sistema.
Se você usa apenas o modo texto, no seu sistema, recomendo instalar o feh, para visualizar suas imagens.

Como usar o ranger

Ao rodar o programa, ele irá mostrar os arquivos dentro do diretório (pasta) atual.
Use as setas do teclado para percorrer os diretórios e pressione Enter, para realizar ações em relação aos arquivos.

Você pode sair do programa, a qualquer momento, pressionando a tecla ‘q’.

Configuração do ranger

O ranger cria um subdiretório com arquivos de configuração básica no home, ou seja, em ‘~/.config/ranger/’
Muitas configurações, contudo, continuarão a ser lidas nos arquivos principais, fora do seu diretório home.
Para ter acesso completo à configuração do aplicativo, copie todos os arquivos pertinentes ao seu diretório particular, com o seguinte procedimento:


ranger --copy-config=all

creating: /hem/justincase/.config/ranger/rifle.conf
creating: /hem/justincase/.config/ranger/commands.py
creating: /hem/justincase/.config/ranger/commands_full.py
creating: /hem/justincase/.config/ranger/rc.conf
creating: /hem/justincase/.config/ranger/scope.sh

> Please note that configuration files may change as ranger evolves.
  It's completely up to you to keep them up to date.

> To stop ranger from loading both the default and your custom rc.conf,
  please set the environment variable RANGER_LOAD_DEFAULT_RC to FALSE.

Os dois avisos, dados ao final da execução do comando, acima, dão conta de:

  1. Os desenvolvedores do programa podem introduzir eventuais modificações na forma como os arquivos de configuração funcionam ou na sua estrutura. Portanto, caberá a você fazer esta atualização.
  2. Para forçar o programa a carregar apenas as configurações personalizadas do usuário, altere o valor da variável de ambiente RANGER_LOAD_DEFAULT_RC para FALSE.
    Este procedimento pode ser feito assim, na linha de comando:

    
    RANGER_LOAD_DEFAULT_RC=FALSE
    
    

    Leia mais sobre variáveis de ambiente aqui: variáveis de ambiente no Linux.

Esquemas de cores do ranger

Ainda no diretório de arquivos de configurações do ranger, é possível alterar o esquema (ou tema) atual de cores do programa, caso você esteja insatisfeito com o que está vendo.

Para isso abra o arquivo ~/.config/ranger/rc.conf e localize a linha

set colorscheme default

Você pode usar uma das 4 opções: default (padrão), jungle, snowou solarized.
Pessoalmente, gosto do tema default. Mas o snow também é legal. (y)

Você pode criar novos esquemas e gravá-los em ~/.config/ranger/colorschemes.

Teclas de navegação dentro do ranger

O programa usa as mesmas teclas do editor Vim.

Basicamente, é isso aqui:

  • → ↓ ↑ ← as setinhas do teclado
  • h — para subir na hierarquia de diretórios
  • gg — para ir ao início da lista
  • G — para ir ao fim da lista

A linha de comando

O ranger tem uma linha de comando, a partir da qual, é possível executar comandos da shell.
Para acessar a CLI interna do ranger tecle ‘!’.

O utilitário possui também comandos internos, como o ‘du’ — que mostra o uso atual do diretório (tal como na shell).
Há outros comandos, que podem ser acessados a partir do pressionamento da tecla ‘d’. Experimente.

Como criar um sistema de arquivos ISO a partir de um diretório no Linux

Em um de meus scripts de backup, inclui uma linha de comando para criar um arquivo (ou sistema de arquivos) .ISO a partir de um diretório compactado em um arquivo .tar.gz
Você pode incluir vários diretórios e arquivos à sua livre escolha. Basta pegar um dos exemplos, abaixo, e editar para atender ás suas necessidades.

Um arquivo .ISO contém um sistema de arquivos completo e pronto para ser gravado em um CD ou DVD. Se preferir, você pode gravar vários destes arquivos em um flash drive (ou pendrive).
É possível usar ferramentas gráficas (GUI) para gravar em mídias óticas, claro. Mas, se deseja incluir o procedimento em um script, para ser executado automaticamente (ideal, em caso de backups), talvez seja melhor saber como se virar na linha de comando (CLI).

São basicamente 2 ferramentas a ser usadas, aqui:

  1. o genisoimage, para criar o sistema de arquivos .ISO e
  2. o growisofs, para gravar o arquivo em mídia.

O uso do mkisofs é superfácil. Basta informar o nome/caminho do diretório que você deseja incluir em uma .ISO:


genisoimage -o temporario.iso temp/

ls -la *.iso

-rw-r--r-- 1 justincase justincase 421M out 30 10:04 temporario.iso

O genisoimage vai criar um arquivo com o nome ‘temporario.iso’ com o conteúdo da pasta temp/.
Você também pode invocar o aplicativo Brasero, a partir da CLI, com o seguinte comando:


brasero --image-file temp/

O Brasero irá gerar um arquivo com nome automático (brasero.iso), caso ele não seja alterado na interface do programa, a partir da pasta temp/.

Como gravar uma imagem ISO em um DVD

Na CLI, você pode usar o utilitário growisofs para queimar um DVD a partir de uma imagem ISO pronta.
É necessário indicar adequadamente o endereço do drive o nome da imagem ISO:


growisofs -dvd-compat -Z /dev/dvdrw=temporario.iso 

WARNING: /dev/dvdrw already carries isofs!
About to execute 'builtin_dd if=temporario.iso of=/dev/dvdrw obs=32k seek=0'
/dev/dvdrw: "Current Write Speed" is 4.1x1352KBps.
   12353536/440578048 ( 2.8%) @2.5x, remaining 2:18 RBU 100.0% UBU   0.3%
   26214400/440578048 ( 6.0%) @3.0x, remaining 1:50 RBU 100.0% UBU  99.4%
   40108032/440578048 ( 9.1%) @3.0x, remaining 1:39 RBU 100.0% UBU  99.4%

...

builtin_dd: 215136*2KB out @ average 3.2x1352KBps
/dev/dvdrw: flushing cache
/dev/dvdrw: reloading tray

A mensagem, acima, “WARNING: /dev/dvdrw already carries isofs!“, é um aviso de que já há conteúdo dentro do DVD-RW.
Fique atento, o comando irá sobrescrever (eliminar) o conteúdo preexistente, sem pedir confirmação.
Com o Brasero, é possível usar uma linha de comando mais enxuta — embora o aplicativo tenha várias outras opções de uso, tal como o growisofs.
Se quiser, basta informar o nome do arquivo .ISO a ser gravado.
Se a mídia não estiver vazia (estou usando um DVD-RW nos meus exemplos), desta vez, você será avisado:


brasero --image=temporario.iso

gravar DVD com BRASERO no Linux

Para usar dentro de um script, cuja execução está projetada para ser automática e sem intervenção humana, esta solução pode ser muito ruim.
Neste caso, tente adicionar a opção ‘–immediately’:


brasero --immediately --image=temporario.iso

Rode a ajuda do Brasero, para descobrir mais opções:


brasero --help-all | more

Como trabalhar com vários arquivos ou partições de swap no Linux

Algumas pessoas precisam dividir seu espaço de troca ou memória virtual em diversos dispositivos físicos ou arquivos.
O recurso do swap, no Linux, é bastante maleável e flexível neste ponto.
É comum adquirir um computador e separar uma partição para o swap baseado na quantidade de memória presente no sistema.

Acrescentar um disco rígido ou um outro pente de memória, podem motivar a alteração na sua configuração de swap.

Por outro lado, fazer upgrade de hardware também é comum para muitos usuários.
Ao acrescentar memória RAM, suas necessidades para swapping mudam.
Instalar um SSD no sistema, ao lado do HDD, torna possíve aproveitar o recurso de hardware novo para obter melhor desempenho em tarefas pesadas.
Por estes e outros motivos você pode se ver forçado ou tentado a querer alterar a configuração do seu sistema de memória virtual.


Por favor, leia o artigo Perguntas e respostas sobre o swap, caso ainda restem dúvidas sobre o assunto.
Naquele artigo, há uma tabela com a relação entre quantidade de memória e tamanho de swap adequado — caso você tenha dúvidas sobre este quesito também.

Como configurar o fstab para as suas partições de swap

Não há segredo para configurar o swap no fstab.
Trata-se de um tipo especial de sistema de arquivos e geralmente segue a mesma configuração em todos os sistemas.
Esta é uma configuração modelo do swap, no fstab:

/dev/hda6   swap     swap   defaults        0   0

É seguro adotar este modelo para todas as partições e arquivos swap presentes no seu sistema. Faça apenas as alterações necessárias para refletir a sua situação.
Para fazer com que o fstab tenha efeito, você precisa reiniciar o sistema ou usar o comando mount:


sudo mount -va

Você também pode usar o comando swapon para ativar imediatamente um arquivo ou partição swap:


sudo swapon /dev/sdb2 /dev/sda2

Indique, para o swapon, todas as partições/arquivos swap presentes, que você queira usar.
No exemplo, acima, relacionei as minhas duas partições em ordem, começando pela mais prioritária.
Mas lembre-se que os ajustes feitos com o mount e swapon se perdem após reiniciar o sistema.
É necessário editar o fstab, para ter uma configuração persistente.
Sempre é possível usar o swapon, também para verificar a sua configuração de espaço de troca atual:


sudo swapon -v

[sudo] senha para justincase: 
NAME      TYPE      SIZE USED PRIO
/dev/sdb2 partition   3G   0B   -1
/dev/sda2 partition 8,8G   0B   -2

Leia mais sobre como criar um arquivo de swap.

Como dar mais prioridade a uma partição ou arquivo de swap

Se uma partição swap estiver em um drive mais rápido que os outros (um SSD, por exemplo), pode ser interessante configurar o sistema para começar a fazer o swapping por este dispositivo, que vai oferecer tempo de resposta muito menor.
Veja como especificar as prioridades de swap, no fstab:

/dev/sdb2   none    swap    sw,pri=2    0   0
/dev/hda2   none    swap    sw,pri=1    0   0

Com esta configuração (acima), o kernel irá priorizar a partição /dev/sdb2 (pri=2) — com o maior valor de prioridade da lista.
Assim que sua capacidade se esgotar, o kernel passará a usar a partição /dev/hda2 (pri=1), com valor de prioridade menor.
O valor da prioridade pode variar entre 0 e 32767.
0 é a menor prioridade possível e 32767 é a máxima.

Dê prioridade máxima ao arquivo ou partição swap que se encontrar no dispositivo de armazenamento mais rápido.
Esta configuração irá minimizar a perda de desempenho causada pelo uso do swap.

Configuração de RAID no swap

É possível fazer uso simultâneo de todas as partições swap disponíveis no seu sistema.
Para obter esta configuração, basta dar o mesmo nível de prioridade a todas elas.
Veja um exemplo:

/dev/hdb3   none   swap   sw,pri=1   0   0
/dev/hdd3   none   swap   sw,pri=1   0   0
/dev/hdc3   none   swap   sw,pri=1   0   0

Para obter um desempenho melhor, o ideal é que cada partição esteja em um drive físico diferente.

Conclusão

Na imagem, abaixo, você pode ver como configurei o meu swap
configuração do swap no linux fstab
Com 8 GiB de memória RAM e um SSD de 24 GiB, julguei interessante distribuir o espaço de troca recomendado, de 11 GiB entre o SSD e o HDD.
Assim, deixei 3 GiB de swap na unidade de estado sólido e o restante no disco rígido — dando maior prioridade à primeira.
Houve ganho de performance no sistema, toda vez em que foi necessário fazer uso da memória virtual.
Infelizmente, a unidade SSD já tem mais de 5 anos e eu espero que esta configuração tenha algum impacto negativo na sua durabilidade.
Tudo tem um preço, não é?

Assinar blog por e-mail

Digite seu endereço de e-mail para assinar este blog e receber notificações de novas publicações por e-mail.

Referências

http://www.tldp.org/HOWTO/Partition/setting_up_swap.html.