TRIM em dispositivo criptografado com Precise

TRIM em dispositivo criptografado com Precise

Migrei os dados principais para um novo SSD. (Samsung 840 EVO, 120 GB.) My ~é uma partição criptografada montada automaticamente por pam_mount. Ou seja, existe um registro /etc/security/pam_mount.conf.xmlpara esta partição.

Eu quero que ele suporte TRIM. Eu sei que isso enfraquece um pouco a criptografia (ou seja, estabelece algum tipo de canal lateral), mas espero que seja aceitável.

Eu tentei habilitá-lo em pam_mount.conf.xml. Uma abordagem era incluir discardopções de montagem, que permitiam o descarte automático no dispositivo de bloco criptografado:

<volume user="{USERNAME}" fstype="crypt" mountpoint="/home/{USERNAME}" path="/dev/sdb{NUMBER}"  options="defaults,noatime,nosuid,nodev,discard" />

Outra tentativa foi incluir discard(e também discards) nas opções.

<mntoptions allow="discard,discards,nosuid,nodev,loop,encryption,fsck,nonempty,allow_root,allow_other" />

Sem sorte. O fstrim ainda não funciona:

% sudo fstrim --verbose ~                        
fstrim: /home/{USERNAME}: FITRIM ioctl failed: Operation not supported

Esqueci alguma coisa? Uma atualização para 14.04 resolveria o problema? O man cryptsetupcomando me diz que isso --allow-discardsé compatível, então espero que funcione. A versão do kernel é 3.13.0-35-generic, o que parece estar OK, já que a versão 3.1+é necessária.

O sistema de arquivos subjacente é ext4. O fstrimcomando funciona perfeitamente bem com sistemas de arquivos não criptografados (que também são ext4), mas não funciona com o sistema de arquivos envolvido pela criptografia dm-crypt (?).

Observe que a discardopção mount parece ser usada:

% mount | grep ~
/dev/sdb{NUMBER} on /home/{USERNAME} type crypt (rw,nosuid,nodev,noatime,discard)

Responder1

Compilar uma nova versão a pam-mountpartir do código-fonte resolveu o problema. Tive que instalar um .debde libhx28e libhx-devde Trusty (o que é arriscado em geral) para obter uma versão mais recente desta biblioteca.

Você provavelmente terá a versão mais recente em um Ubuntu mais recente pronto para uso, então você pode pular a compilação. Se puder, você pode atualizar para o Trusty. Quero ficar com o Precise por algum tempo.

Agora, habilitar allow_discardssem discardé um hack feio. Ocorreçãoapenas verifica a presença de um sinalizador de "descarte". Então, decidi colocar "descartar" e "nodiscard" (nesta ordem) e espero que funcione.

Agora fstrim, neste dispositivo funciona, mas espero que descartar o sinalizador de montagem seja ineficaz. Não tenho certeza se posso testá-lo.

Alternativamente, pode-se tentar fazer alguma remontagem, mas não obtive sucesso com essa abordagem.

informação relacionada