Descarte de LUKS / TRIM: opções conflitantes de linha de comando do kernel

3

Estou confuso entre as várias maneiras pelas quais as operações LUKS / dmcrypt / cryptsetup discard / TRIM podem ser ativadas por meio da linha de comando do kernel do Linux.

  1. A dracut manpage :

    rd.luks.allow-discards

    Allow using of discards (TRIM) requests on all LUKS partitions.

  2. O systemd-cryptsetup-generator manpage

    luks.options=, rd.luks.options=

    ... If only a list of options, without an UUID, is specified, they apply to any UUIDs not specified elsewhere, and without an entry in /etc/crypttab. ...

    O argumento rd.luks.options=discard é recomendado aqui .

  3. A seção Arch wiki no LUKS e SSDs um terceiro campo de cólon:

    cryptdevice=/dev/sdaX:root:allow-discards

Perguntas:

  1. Qual é a diferença entre discard e allow-discards ? O primeiro é obrigatório e o segundo é opcional?
  2. O luks.options= ou rd.luks.options= se aplica, dado cryptdevice=/dev/sda2 (por exemplo, não um UUID)? E se cryptdevice= receber um UUID, isso é considerado "especificado em outro lugar"?
  3. O luks.options= ou rd.luks.options= irá sobrescrever / acrescentar / pré-definir se cryptsetup= já der opções?
  4. Existe alguma desvantagem em usar rd.luks.allow-discards , o que parece ser mais simples se TRIM for desejado em todos os lugares?
por Tom Hale 31.01.2017 / 13:06

1 resposta

1

Depende um pouco da distribuição que você está usando e de quais componentes são incluídos pelo dracut no initramfs.

Por exemplo, a opção cryptdevice= é interpretada pelo gancho de criptografia . Assim, só é relevante para imagens initramfs que incluam este gancho.

A desvantagem de rd.luks.allow-discards e rd.luks.allow-discards= é que simplesmente não funciona. A descrição dracut.cmdline(7) dessas opções está incorreta. Testei-o no Fedora 26, onde ele não funciona e existe até um relatório de erros para o Fedora 19 onde este desvio entre o comportamento documentado e real foi discutido e foi fechado como não corrigido.

Os luks.options= e rd.luks.options= são mais genéricos, já que basicamente você pode colocar qualquer opção de criptografia válida, por exemplo, %código%. Como eles são interpretados por discard , que não se importa com systemd-cryptsetup-generator , você não pode esperar uma interação útil entre essas opções.

Observe que cryptdevice= tem efeito apenas para dispositivos que não estão listados no arquivo luks.options= da imagem initramfs.

Assim, para ativar o suporte ao ajuste SSD de passagem criptografada dm-crypt (também conhecido como descarte) para dispositivos cryos dm abertos durante a inicialização, você tem 2 opções:

  1. adicione etc/crypttab à linha de comando do kernel e verifique se a imagem initramfs não inclui rd.luks.options=discard
  2. adicione a opção de descarte às entradas relevantes em etc/crypttab e verifique se a versão atual está incluída na imagem do initramfs.

Você pode usar /etc/crypttab para verificar a imagem initramfs, lsinitrd /path/to/initramfs etc/crypttab para regenerar a imagem após as alterações em dracut -v -f /path/to/initramfs-image e /etc para ver se o dispositivo criptografado foi realmente aberto com a opção de descarte (as entradas relevantes devem inclua a string dmsetup table então).

    
por 09.04.2018 / 23:45