nixos에서 최대 절전 모드로 전환하고 스왑을 암호화하는 방법이 있습니까?

nixos에서 최대 절전 모드로 전환하고 스왑을 암호화하는 방법이 있습니까?

암호화된 스왑 + 최대 절전 모드를 활성화하는 방법이 있습니다우분투. 또한 nixos에서 암호화된 스와핑을 수행하는 방법(randomEncryption.enable = true 사용)과 최대 절전 모드에서 스와핑을 수행하도록 하는 방법도 있습니다. 암호화폐 거래소를 최대 절전 모드로 전환하는 방법이 있나요?

답변1

즉, 암호화된 스왑에서 최대 절전 모드를 사용하려면 키 파일을 생성한 다음 해당 파일을 사용하여 LUKS 암호화된 스왑 파티션을 잠금 해제해야 합니다. 이는 최대 절전 모드와 호환되지 않는 임의 암호화 키를 사용하는 것과 대조됩니다.

물론 이 방법을 사용할 때는 키 파일의 위치가 중요합니다. 가장 좋은 방법은 루트 파일 시스템을 암호화하고 여기에 키 파일을 저장하는 것입니다(예: /root/swap.key). 이 경우 부팅 중에 루트 파일 시스템 비밀번호를 묻는 메시지가 표시됩니다. 그러면 부팅 프로세스에서 키 파일을 사용할 수 있게 되어 스왑 LUKS 컨테이너를 잠금 해제하고 장치를 스왑 장치로 "잠금 해제"할 수 있습니다.

설명하다

노트: 이 지침은 단순히 복사하여 붙여넣을 수 있는 지침이 아니라 일반적인 지침으로 생각하십시오.

설치 미디어를 부팅한 후...

파티션, LUKS 컨테이너, 파일 시스템을 생성하고 마운트합니다.

키 파일 생성:dd count=1 bs=512 if=/dev/urandom of=/mnt/root/swap.key

키 파일을 사용하여 암호화된 교환을 위한 LUKS 컨테이너를 생성합니다.

교환 LUKS 컨테이너의 잠금을 해제하고 로 포맷 mkswap하고 활성화합니다 swapon.

계속해서 NixOS 구성을 생성합니다. 지금까지는 일반적인 NixOS 설치와 같습니다.

키 파일 생성:dd count=1 bs=512 if=/dev/urandom of=/mnt/root/swap.key

swapDevices구성을 에서 으로 /mnt/etc/nixos/hardware-configuration.nix이동 합니다 /mnt/etc/nixos/configuration.nix. 참고: 다시 실행하려면 이 단계를 반복해야 합니다 nixos-generate-config.

swapDevices암호화를 활성화 하려면 편집하세요 /mnt/etc/nixos/configuration.nix. 예는 다음과 같습니다.

swapDevices =
[ {
    device = "/dev/disk/by-uuid/..."; #This is already done for you. Leave as-is.
    encrypted = {
      enable = true;
      keyFile = "/mnt-root/root/swap.key"; #Yes, /mnt-root is correct.
      label = "..."; The name used with `cryptsetup` when unlocking the LUKS container. It can be whatever you want, ex "luksswap".
      blkDev = "/dev/disk/by-uuid/[UUID of the LUKS partition]";
    };
  }
];

를 사용하여 LUKS 파티션의 UUID를 얻을 수 있습니다 lsblk -o name,uuid.

마지막 nixos-rebuild boot으로 시스템을 재부팅합니다. 재부팅 후 NixOS는 암호화된 스왑 파티션의 잠금을 해제하고 활성화합니다. 그렇지 않은 경우 journalctl -b관련 오류를 확인하십시오 .

답변2

그래서 내 접근 방식은 다음과 같습니다.

  1. 기본 장치와 동일한 비밀번호로 luks 장치를 생성합니다.
    sudo cryptsetup -y -v luksFormat /dev/nvme0n1p1
    
  2. 재부팅하여 UUID가 올바르게 업데이트되었는지 확인합니다(첫 번째 재부팅 후 왜 변경되었는지 잘 모르겠습니다).
  3. initrd에 장치를 마운트하기 위한 구성을 추가합니다.
    boot.initrd.luks.devices."swap".device = 
    "/dev/disk/by-uuid/936542de-2068-41b7-b804-741ec80a59c6";
    
  4. 장치가 올바르게 켜지도록 다시 시작하세요. 비밀번호가 동일하면 luks는 한 번만 묻고 동일한 비밀번호를 사용하는 모든 장치를 열려고 시도합니다.
  5. 다음을 통해 얻은 열린 볼륨의 UUID를 사용하여 순수 구성을 추가합니다 blkid.
      swapDevices =
        [{ device = "/dev/disk/by-uuid/772a37e9-c010-4942-8f3d-b7f645092b02"; }];
    
  6. 최대 절전 모드 및 pm-hibernate.

관련 정보