TRIM em um SSD criptografado

TRIM em um SSD criptografado

wiki.ubuntuusers.dediz que se eu quiser usar o TRIM em um SSD criptografado, preciso de pelo menos o cryptsetup 1.4 e o kernel 3.1. Preciso disso ao criar as partições e configurar a criptografia ou a atualização posterior é suficiente?

Responder1

O Ubuntu 11.10 Oneiric não vem com o cryptsetup 1.4, embora o Precise o faça. Não sei se o cryptsetup pode ser atualizado no Oneiric ou não. Como o Precise será lançado em um mês, você também pode aguardar esse lançamento antes de considerar o TRIM com partições criptografadas. O kernel sempre pode ser atualizado posteriormente.

Dehttp://code.google.com/p/cryptsetup/wiki/Cryptsetup140:

Suporte à opção --allow-discards para permitir solicitações de descartes/TRIM.

Desde o kernel 3.1, os dispositivos dm-crypt opcionalmente (não por padrão) suportam comandos de descarte de blocos (TRIM).

Se você quiser habilitar esta operação, você deve habilitá-la manualmente em cada ativação usando --allow-discards

cryptsetup luksOpen --allow-discards /dev/sdb test_disk

AVISO: Existem várias consequências de segurança, leia pelo menos http://asalor.blogspot.com/2011/08/trim-dm-crypt-problems.html antes de ativá-lo.

Como você pode ver, esse recurso não está habilitado por padrão devido à degradação da segurança, conforme mencionado no blog vinculado. Portanto, se você usar o cryptsetup no kernel 3.0 (aquele fornecido com o Precise), não terá suporte TRIM em suas partições criptografadas. Depois de atualizar para 3.1+, você ainda não terá, a menos que ative-o.

Para fazer isso, você deve editar /etc/crypttabapós a instalação (não tenho certeza se isso é possível durante a instalação) e adicionar a discardopção. Veja tambémcripttab(5).

Responder2

Publiquei um guia passo a passo para ativar o TRIM com partições criptografadas LUKS no Ubuntu 12.04 ou qualquer Debian com cryptsetup 1.4+ e Kernel 3.1+. (Sinta-se à vontade para copiá-lo aqui se algumas diretrizes do askubuntu considerarem necessário.)

Exemplo de configuração

fonte

Notebook com SSD como unidade única, Linux instalado em partição raiz LVM ext4 única com partição swap LVM, ambos em partição lógica criptografada LUKS.

SSD:/dev/sda

$ sudo fdisk -l /dev/sda
/dev/sda1               # boot partition (83) (unencrypted, ext4)
/dev/sda2               # extended partition
/dev/sda5               # logical partition (83) with LUKS encryption

$ ls /dev/mapper
/dev/mapper/sda5_crypt         # encrypted LUKS device in physical /dev/sda5 partition
/dev/mapper/volumegroup-root   # root partition sda5_crypt
/dev/mapper/volumegroup-swap   # swap partition sda5_crypt

Como

  1. Faça um backup de todos os seus dados. Você está bagunçando seu sistema de arquivos, então fazer um backup é simplesmente uma boa ideia.

  2. Certifique-se de ter as versões necessárias do kernel e do cryptsetup (3.1 e 1.4, por exemplo, no Ubuntu 12.04, mas tenha cuidado, no momento em que este artigo foi escrito, 12.04 ainda era beta).

  3. Adicione o parâmetro de descarte às opções do sistema de arquivos dos volumes LVM criptografados em seu arquivo /etc/fstab. Isso informa ao sistema de arquivos da sua partição LVM que você deseja usar o TRIM.

    /dev/mapper/volumegroup-root    /    ext4    discard,noatime,nodiratime,errors=remount-ro    0    1
    
  4. A última etapa não é suficiente. Contanto que o LUKS não saiba que você deseja usar o TRIM, ele bloqueará efetivamente todas as operações TRIM provenientes do sistema de arquivos da partição LVM, por motivos de segurança. Adicione o parâmetro de descarte às opções do cryptdevice em /etc/crypttab para fazer o LUKS aceitar o comportamento de descarte da partição LVM.

    sda5_crypt UUID=e364d03f-[...]6cd7e none luks,discard
    
  5. Reconstrua seu initramfs. As opções do crypttab são armazenadas lá e usadas na inicialização.

    sudo update-initramfs -c -k all
    
  6. Reinício.

  7. Verifique se TRIM agora está ativo.

    sudo dmsetup table /dev/mapper/sda5_crypt --showkeys
    
  8. Se o último comando mostrar um resultado como este ( 1 allow_discards atfinal), está tudo pronto.

    0  77656056  crypt  aes-cbc-essiv:sha256  abc[...]c7a0c  0  8:5  2056  1  allow_discards
    

informação relacionada