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