TRIM en un SSD cifrado

TRIM en un SSD cifrado

wiki.ubuntuusers.dedice que si quiero usar TRIM en un SSD cifrado, necesito al menos cryptsetup 1.4 y kernel 3.1. ¿Necesito esto al crear las particiones y configurar el cifrado, o es suficiente actualizar después?

Respuesta1

Ubuntu 11.10 Oneiric no viene con cryptsetup 1.4, aunque Precise sí. No sé si cryptsetup se puede actualizar en Oneiric o no. Dado que Precise se lanzará en un mes, también puede esperar ese lanzamiento antes de considerar TRIM con particiones cifradas. El kernel siempre se puede actualizar posteriormente.

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

Admite la opción --allow-discards para permitir descartes/solicitudes TRIM.

Desde el kernel 3.1, los dispositivos dm-crypt admiten opcionalmente (no de forma predeterminada) comandos de descarte de bloques (TRIM).

Si desea habilitar esta operación, debe habilitarla manualmente en cada activación usando --allow-discards

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

ADVERTENCIA: Hay varias consecuencias de seguridad, lea al menos http://asalor.blogspot.com/2011/08/trim-dm-crypt-problems.html antes de habilitarlo.

Como puede ver, esta función no está habilitada de forma predeterminada debido a la seguridad degradada, como se menciona en el blog vinculado. Entonces, si usa cryptsetup en el kernel 3.0 (el que viene con Precise), no tendrá soporte TRIM en sus particiones cifradas. Después de actualizar a 3.1+, todavía no lo tendrás a menos que lo habilites.

Para hacerlo, debe editar /etc/crypttabdespués de la instalación (no estoy seguro si es posible durante la instalación) y agregar la discardopción. Ver tambiéncriptotab(5).

Respuesta2

He publicado una guía paso a paso para habilitar TRIM con particiones cifradas LUKS en Ubuntu 12.04 o cualquier Debian con cryptsetup 1.4+ y Kernel 3.1+. (No dudes en copiarlo aquí si algunas pautas de Askubuntu lo consideran necesario).

Configuración de ejemplo

fuente

Computadora portátil con SSD como unidad única, Linux instalado en una única partición raíz LVM ext4 con partición de intercambio LVM, ambas a través de una partición lógica cifrada 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

Cómo

  1. Haz una copia de seguridad de todos tus datos. Estás alterando tu sistema de archivos, por lo que tener una copia de seguridad es simplemente una buena idea.

  2. Asegúrese de tener las versiones requeridas de kernel y cryptsetup (3.1 y 1.4, por ejemplo, en Ubuntu 12.04; tenga cuidado, al momento de escribir este artículo, 12.04 todavía es beta).

  3. Agregue el parámetro de descarte a las opciones del sistema de archivos de los volúmenes LVM cifrados en su archivo /etc/fstab. Esto hace que el sistema de archivos de su partición LVM sepa que desea utilizar TRIM.

    /dev/mapper/volumegroup-root    /    ext4    discard,noatime,nodiratime,errors=remount-ro    0    1
    
  4. Sin embargo, el último paso no es suficiente. Mientras LUKS no sepa que desea utilizar TRIM, bloqueará efectivamente todas las operaciones TRIM provenientes del sistema de archivos de la partición LVM, por razones de seguridad. Agregue el parámetro de descarte a las opciones de cryptdevice en /etc/crypttab para que LUKS acepte el comportamiento de descarte de la partición LVM.

    sda5_crypt UUID=e364d03f-[...]6cd7e none luks,discard
    
  5. Reconstruya sus initramfs. Las opciones de crypttab se almacenan allí y se utilizan en el arranque.

    sudo update-initramfs -c -k all
    
  6. Reiniciar.

  7. Compruebe si TRIM ahora está activo.

    sudo dmsetup table /dev/mapper/sda5_crypt --showkeys
    
  8. Si el último comando muestra un resultado como este ( 1 allow_discards atel final), ya está todo listo.

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

información relacionada