LUKS 폐기/TRIM: 커널 명령줄 옵션 충돌

LUKS 폐기/TRIM: 커널 명령줄 옵션 충돌

// Linux 커널 명령줄을 통해 //discard/TRIM 작업을 활성화할 수 있는 다양한 방법 LUKS에 대해 혼란스럽습니다.dmcryptcryptsetup

  1. 이것dracut맨페이지:

    rd.luks.allow-discards

    모든 LUKS 파티션에 대해 삭제(TRIM) 요청을 허용합니다.

  2. 이것systemd-cryptsetup-generator맨페이지

    luks.options=, rd.luks.options=

    ...UUID 없이 옵션 목록만 지정한 경우 다른 곳에 지정되지 않은 모든 UUID에 적용되며 /etc/crypttab에는 항목이 없습니다. ...

    논쟁과 rd.luks.options=discard제안여기.

  3. 이것LUKS 및 SSD에 대한 아치 위키 섹션 콜론으로 구분된 세 번째 필드를 표시합니다.

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

질문:

  1. discard이들그리고 그리고 의 차이점은 무엇인가요 allow-discards? 전자는 필수이고 후자는 선택인가요?
  2. 주어진 것 (예: UUID가 아님) 을 적용할 것인가 luks.options=, 아니면 적용할 것인가? UUID가 주어 지면 "다른 곳에 지정됨"으로 간주됩니까?rd.luks.options=cryptdevice=/dev/sda2cryptdevice=
  3. 옵션이 이미 제공된 경우 luks.options=해당 옵션이 재정의/추가/접두어로 지정됩니까 rd.luks.options=?cryptsetup=
  4. rd.luks.allow-discardsTRIM이 모든 곳에서 필요한 경우 가장 쉽게 보이는 접근 방식을 사용하면 단점이 있습니까?

답변1

이는 사용 중인 배포판과 dracut이 initramfs에 포함하는 구성 요소에 따라 다소 다릅니다.

예를 들어, 이 cryptdevice=옵션은 다음과 같이 해석됩니다.암호화폐. 따라서 이 후크가 포함된 initramfs 이미지에만 관련됩니다.

rd.luks.allow-discardsand 의 단점은 rd.luks.allow-discards=전혀 작동하지 않는다는 것입니다. 이러한 옵션에 대한 설명이 dracut.cmdline(7)잘못되었습니다. Fedora 26에서 테스트했는데 작동하지 않았습니다.Fedora 19에 대한 버그 보고서기록된 행동과 실제 행동 사이의 편차에 대해 논의한 후 돌이킬 수 없는 것으로 종결되었습니다.

기본적으로 유효한 crypttab 옵션을 넣을 수 있기 때문에 더 일반적 luks.options=입니다 . 해석은 중요하지 않기 때문에 이러한 옵션 간의 유용한 상호 작용을 기대할 수 없습니다.rd.luks.options=discardsystemd-cryptsetup-generatorcryptdevice=

이 기능 luks.options=은 다음 장치에서만 작동합니다.아니요initramfs 이미지 파일에 나열되어 있습니다 etc/crypttab.

따라서 부팅 중에 열린 dm 암호화 장치에 대해 dm 암호화 통과 SSD 트리밍 지원(폐기라고도 함)을 활성화하려면 다음 두 가지 옵션이 있습니다.

  1. rd.luks.options=discard커널 명령줄에 추가 하고 initramfs 이미지에 다음이 포함되어 있지 않은지 확인하세요.etc/crypttab
  2. 관련 항목에 삭제 옵션을 추가하고 /etc/crypttab현재 버전이 initramfs 이미지에 포함되어 있는지 확인하세요.

이를 사용하여 lsinitrd /path/to/initramfs etc/crypttabinitramfs 이미지를 확인하고, dracut -v -f /path/to/initramfs-image변경 후 이미지를 다시 빌드하고 /etc, dmsetup table폐기 옵션을 사용하여 암호화된 장치가 실제로 열렸는지 확인할 수 있습니다(관련 항목에 이 문자열이 포함되어야 함 allow_discards).

답변2

Necro는 다음 질문에 답합니다. 폐기와 폐기 허용의 차이점은 무엇입니까?

AFAIK: DISCARD는 "mount" 명령을 통해 읽혀지므로 다음과 같이 fstab 및 crypttab에 배치할 수 있습니다.옵션

ALLOW-DISCARDS는 "cryptsetup" 명령으로 읽혀지므로 fstab 또는 scripttab 파일에 위치가 없습니다. 더 많은 것이 있지만 그것은 사랑하는 독자 여러분이 발견할 몫입니다.

관련 정보