crypttab이 시작되기 전에 암호화되지 않은 파티션을 마운트하는 방법은 무엇입니까?

crypttab이 시작되기 전에 암호화되지 않은 파티션을 마운트하는 방법은 무엇입니까?

드라이브에 연결한 하드 드라이브의 암호를 해독하는 데 필요한 LUKS 키 파일이 포함된 USB 플래시 드라이브에서 부팅하는 대신 부팅하려는 ARM 서버가 있습니다. 따라서 /etc/crypttab(드라이브 암호 해독)을 실행하려면 드라이브를 마운트하기 전에 USB를 마운트해야 합니다(fstab은 crypttab 다음에 실행됨). crypttab이 시작되기 전에 파티션을 마운트하는 방법은 무엇입니까? systemd 및 Linux 4.4에서.

명확성을 위해:

  1. 먼저 USB 드라이브 파티션(예: /dev/sdb1)을 /mnt/usb(암호화되지 않음)에 마운트하고 싶습니다.
  2. 그런 다음 crypttab을 사용하여 /mnt/usb/mykeyfile에 있는 키 파일을 사용하여 드라이브 중 하나에서 암호화된 파티션의 잠금을 해제하세요.
  3. 그런 다음 파일 시스템을 /mnt/crypt_fs에 마운트합니다.

답변1

내 솔루션은 약간 해킹적이지만 작동합니다. mqueue 전에 systemd 서비스를 만들었고(유닛 앞에 fstab .mount /dev/sd*를 허용하는 임의의 서비스) 기본적으로 crypttab이 수행하는 작업을 수행하지만 단일 명령의 형태. 그러나 systemd는 내 서비스가 완료되고 로그인할 때까지 기다리지 않으므로 요청 시 boot [first] sleep 10(또는 이와 유사한 것)을 실행하여 암호 해독이 완료되었는지 확인하는 쉘 스크립트를 만들었습니다. 그런 다음 [두 번째] 현재 매핑된 장치에 하위 볼륨을 마운트한 다음 [세 번째] fstab HDD를 사용해야 하는 모든 서비스(pihole, apache, gitea 등)를 시작하므로 systemctl start myservice서버 전에 HDD가 마운트되었는지 100% 확신할 수 있습니다. 인스턴스가 시작됩니다. 다시 말하지만, 약간 해키긴 하지만 저는 systemd에 익숙하지 않습니다. 저는 openrc를 사용합니다. 왜냐하면 이것이 젠투의 기본값이기 때문입니다. 솔직히 별로 신경 쓰지 않습니다. 어쨌든 항상 켜져 있고, 어쨌든 시스템을 재부팅할 필요가 없습니다. . 나중에 정리할 수도 있지만 지금은 중요하지 않습니다.

관련 정보