Operações de disco

Para exibir informações sobre os dispositivos de armazenamento disponíveis em um dado sistema:

# df -hT | grep -v tmpfs
# lsblk -f

Em mais detalhes:

# lsblk -o NAME,RM,TYPE,KNAME,FSTYPE,FSVER,SIZE,RO,LABEL,MOUNTPOINT,UUID

Como apagar, sobreescrever e encriptar discos e/ou partições

Sobreescrever todo o espaço de uma partição (shred/wipe disk)

# dd bs=8192 status=progress oflag=sync if=/dev/urandom of=/dev/sdX

Onde:

  • bs = block size :: tamanho do bloco de dados (padrão em MB)
  • status=progress :: mostra o andamento da execução
  • if :: dispositivo de entrada (input)
  • of :: dispositivo de saída (output)
  • oflag=sync :: instrução de saída -> sincronizar os dados e gravar as alterações ao terminar

Escrever uma imagem ISO para o disco acima - if é o caminho da imagem, of é o dispositivo destino (algo como /dev/sdb e não /dev/sdb2)

# dd bs=8192 status=progress oflag=sync if=/path/to/iso of=/dev/sdX

Criar um volume LUKS onde $1 pode ser qualquer dispositivo de disco válido, RAW ou LVM. Adicionar –type se for um dispositivo bootável

# cryptsetup -v --debug luksFormat $1 --hash sha512 --cipher twofish-xts-plain64 -s 512 --iter-time 5000 --use-urandom

Onde:

  • -v – debug :: verbose & modo debug
  • –hash
  • –cipher (use aes instead of twofish em raspberries)
  • -s
  • –iter-time
  • –use-urandom :: fonte de entropia de dados

Criar um arquivo randomico com 2048 pra servir de chave do dispositivo acima

# dd bs=512 count=4 iflag=fullblock if=/dev/urandom of=/path/to/key
# chmod 000 /path/to/key
# cryptsetup -v luksAddKey $1

LVM

Criar um volume físico LVM (physical volume, PV) em cima de uma partição encriptada LUKS (ie /dev/mapper/cryptvolume):

# pvcreate /dev/$1

Criar um grupo virtual (virtual group, VG) chamado lv com o volume físico acima:

# vgcreate lv /dev/$1

Criar um volume lógico (logical volume, LV) em lv, com tamanho de 10 GB chamado lv-root:

# lvcreate lv --name root --size 10G

Criar um volume lógico para servir de swap, com 2 GB

# lvcreate lv --name swap --size 2G

Criar um volume lógico que ocupará o restante do espaço disponível na partição

# lvcreate lv --name home --extents 100%FREE

Habilitar/desablitar o grupo virtual, para que seja possível (des)montar o dipositivo LVM

# vgchange -a [y|n] lv

Habilitar/desabilitar o volume lógico, para que seja possível (des)montar o dispositivo LVM

# lvchange -a [y|n] lv-$NAME

Reconstruir volumes lógicos a partir da metadata disponível

# lvchange --refresh /dev/lv/$DEVICE

Alterar o tamanho de um volume lógico

# lvresize -L 16G --resizefs lv/root

QCOW2

Criar um disco em formato QCOW2, prealocado com 20GB

# qemu-img create -f qcow2 -o preallocation=full,size=20G /path/to/disk.qcow2

Tendo o modulo de kernel nbd, montar o disco acima como dispositivo nbd

# qemu-nbd --connect=/dev/nbd0 /path/to/disk.qcow2

Mostrar informações do dispositivo nbd

# modinfo nbd

Desconectar dispositivo nbd

# qemu-nbd --disconnect /dev/nbd0