web-dev-qa-db-ja.com

LUKS破棄/トリム:カーネルコマンドラインオプションの競合

Linuxカーネルコマンドラインを介してLUKS/dmcrypt/cryptsetup破棄/ TRIM操作を有効にできるさまざまな方法について混乱しています。

  1. dracutマンページ

    rd.luks.allow-discards

    すべてのLUKSパーティションで破棄(TRIM)要求の使用を許可します。

  2. systemd-cryptsetup-generatorマンページ

    luks.options=, rd.luks.options=

    ... UUIDなしでオプションのリストのみが指定されている場合、それらは他の場所で指定されておらず、/ etc/crypttabにエントリがないすべてのUUIDに適用されます。 .。

    引数rd.luks.options=discardをお勧めします ここ

  3. LUKSおよびSSDのArch wikiセクション は、3番目のコロン区切りフィールドを示しています。

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

質問:

  1. discardallow-discardsの違いは何ですか?前者は必須で、2番目はオプションですか?
  2. luks.options=またはrd.luks.options=cryptdevice=/dev/sda2(たとえば、UUIDではない)に適用されますか? cryptdevice=にUUIDが指定されている場合、それは「他の場所で指定された」と見なされますか?
  3. luks.options=がすでにオプションを提供している場合、rd.luks.options=またはcryptsetup=は上書き/追加/追加しますか?
  4. どこでもTRIMが必要な場合に最も簡単と思われるrd.luks.allow-discardsを使用することに不利な点はありますか?
3
Tom Hale

使用しているディストリビューションと、dracutによってinitramfsに含まれているコンポーネントによって少し異なります。

たとえば、_cryptdevice=_オプションは 暗号化フック によって解釈されます。したがって、このフックを含むinitramfsイメージにのみ関連します。

_rd.luks.allow-discards_と_rd.luks.allow-discards=_の欠点は、単に機能しないことです。これらのオプションのdracut.cmdline(7)の説明が正しくありません。私はそれが機能しないFedora26でテストしましたが、 Fedora 19のバグレポート でさえ、文書化された動作と実際の動作の間のこの逸脱が議論され、修正なしとして閉じられました。

_luks.options=_と_rd.luks.options=_は、基本的に有効なcrypttabオプションをそこに配置できるため、より一般的です。 discard。それらは_systemd-cryptsetup-generator_を気にしない_cryptdevice=_によって解釈されるため、これらのオプション間の有用な相互作用は期待できません。

_luks.options=_は、initramfsイメージの_etc/crypttab_ファイルにリストされていないデバイスにのみ効果があることに注意してください。

したがって、起動中に開かれたdm-cryptedデバイスのdm-cryptパススルーSSDトリムサポート(別名破棄)を有効にするには、次の2つのオプションがあります。

  1. カーネルコマンドラインに_rd.luks.options=discard_を追加し、initramfsイメージに_etc/crypttab_が含まれていないことを確認します。
  2. _/etc/crypttab_の関連するエントリに破棄オプションを追加し、現在のバージョンがinitramfsイメージに含まれていることを確認します。

_lsinitrd /path/to/initramfs etc/crypttab_を使用してinitramfsイメージをチェックし、_dracut -v -f /path/to/initramfs-image_を使用して_/etc_および_dmsetup table_に変更した後、イメージを再生成して、暗号化されたデバイスが実際に破棄オプションで開かれたかどうかを確認できます。 (関連するエントリには、文字列_allow_discards_ thenを含める必要があります)。

1
maxschlepzig

NecroAnswering to question:破棄と許可破棄の違いは何ですか?

AFAIK:DISCARDは「mount」コマンドによって読み取られるため、mountオプションとしてfstabおよびcrypttabに配置できます。

ALLOW-DISCARDSは「cryptsetup」コマンドによって読み取られるため、fstabまたはcripttabファイルには配置されません。まだまだありますが、それは読者の皆さん、あなたが知るためのものです。

0
Jack