Linux 커널 4.x에서 일시 중지를 비활성화하는 방법

Linux 커널 4.x에서 일시 중지를 비활성화하는 방법

저는 LinuxPBA와 sedutil을 통해 전체 디스크 암호화를 사용하고 있습니다(https://github.com/Drive-Trust-Alliance/sedutil). 즉, 부팅 시 BIOS 독립적 코드 조각이 디스크 암호를 요청합니다. 맞다면 디스크 잠금이 해제되고 디스크 전원을 끄지 않은 채 시스템이 재부팅되며 grub이 표시되고 커널이 계속 실행되며 distro가 부팅됩니다.

이 경우 일시 중지하는 것이 위험하다는 것은 알려진 제한 사항입니다[1][2]. 이런 일이 발생하면 데이터가 손상됩니다. 나쁜 소식은 내가 겪고 있다는 거야무작위 일시정지 이벤트자주.

일시 중지가 필요하지 않지만 최대 절전 모드를 사용합니다. 최대 절전 모드에 영향을 주지 않고 일시 중지를 비활성화하는 방법이 있습니까? 커널을 다시 컴파일하거나 부팅 옵션을 통해...


[1] 일시 중지 작업은 디스크 정전을 유발합니다. 이는 복구 시 FS가 암호화된다는 의미입니다. Linux는 이전에 매핑된 섹터에 액세스하려고 시도하지만 현재는 암호화되어 데이터가 손상됩니다. 문제를 신속하게 감지하고 FS를 읽기 전용 모드로 다시 마운트하여 추가 손상을 방지합니다. fsck.ext4는 일반적으로 다음에 재부팅할 때 손상을 복구합니다. 하지만 제가 유발하지 않은 무작위 일시 중지가 발생하고 디버깅/보고가 어렵기 때문에 근본 원인을 파악한 후 일시 중지를 완전히 비활성화하고 싶습니다.

[2] 비슷한 질문: 이와 같은 제안https://wiki.debian.org/Suspend#Disable_현수막_and_hibernation부족한. 또한 커널/ACPI에 "일시 중지 중에 디스크를 종료하지 마십시오"라고 말할 방법이 없는 것 같습니다(일시 중지/절전/S3 상태에서 SSD를 종료하지 않을 수 있나요?).

답변1

커널을 다시 컴파일CONFIG_SUSPEND=n그리고CONFIG_HIBERNATION=y정지를 방지해야 하지만 여전히 최대 절전 모드를 허용해야 합니다. 중단은 사용자 공간에서 요청한 경우에만 발생하므로 이 방법으로도 비활성화할 수 있습니다.

또한 드라이브가 어떻게 작동하는지 정확히 모르겠지만 재설정하면 키를 잃어버릴 수도 있다는 우려도 있습니다. 그렇다면 Linux 스토리지 스택은 응답하지 않는 장치를 재설정한다는 점에 유의하십시오. 예를 들어 오랫동안 불량 블록을 재시도하는 데 바쁜 경우입니다. /sys/block/sd?/device/timeout시간 초과가 설정되는 곳입니다. 기본값은 30초입니다.

hdparm -Y마지막으로 다음과 같은 방법을 사용하여 드라이브를 절전 모드로 전환 할 수 있습니다 . 기본적으로는 아무 작업도 수행되지 않을 수 있지만 드라이브가 절전 모드가 아닌 대기 모드로 설정될 수 있습니다. 그렇게 하면 키가 손실되지 않습니다.

관련 정보