systemd-cryptsetup에서 생성된 단위를 사용하는 방법

systemd-cryptsetup에서 생성된 단위를 사용하는 방법

암호화된 USB 장치가 연결되면 자동으로 설치하려고 합니다. 그래서 다음 위치에 새 항목을 추가했습니다 /etc/crypttab.

ext /path/to/dev /path/to/key bitlk,noauto

이렇게 하면 systemd-cryptsetup-generator가 장치가 연결될 때 장치의 암호를 해독하는 데 사용되는 새로운 서비스 단위를 생성하게 됩니다.

그러나 어떤 이유로 서비스가 활성화되지 않았으므로 수동으로 시작해야 합니다. 또한 [Install] 섹션이 없기 때문에 systemctl을 통해 활성화할 수 없습니다.

그 부분을 추가하는 것은 지루한 것 같습니다. 이러한 서비스를 자동으로 시작하는 가장 좋은 워크플로는 무엇입니까?

저는 manjaro 22(플라즈마 KDE)를 사용하고 있습니다.

답변1

이렇게 생성된 단위는 실제로 종속성으로 추가됩니다.. 장비잠금 해제 시 생성되는 유닛입니다. 예를 들어 생성기는 dev-mapper-ext.device확장을 위해 .device에 의존하므로 [email protected]이 .device에 의존하는 모든 항목으로 인해 자동으로 잠금이 해제됩니다.

> tree /run/systemd/generator*
/run/systemd/generator/
├── dev-mapper-archive2.device.requires/
│   └── [email protected] -> ../[email protected]
├── dev-mapper-data.device.requires/
:   └── [email protected] -> ../[email protected]

이는 /etc/fstab 항목 참조 /dev/mapper/ext(또는 해당 fstab 항목에서 생성된 .mount 단위)가 systemd-cryptsetup@ext에 간접적으로 의존하고 장치를 마운트해야 할 때(부팅 시) 잠금 해제되도록 함을 의미합니다. 또는 설명서를 사용하십시오 systemctl start /mnt/ext).

myth> systemctl list-dependencies -a /mnt/hdd
mnt-hdd.mount
● ├─dev-mapper-data.device
● │ └─[email protected]
● :   └─dev-disk-by\x2duuid-1eb9bbbb\x2dcb37\x2d4fab\x2dad12\x2da512fed4a0a9.device

대부분의 시스템 시작 프로세스와 마찬가지로 여기서의 설계는 cryptsetup 장치의 이벤트 기반 "핫플러그" 잠금 해제가 아니라 종속성 기반 "주문형" 잠금 해제입니다.

(원래 .device 장치에 마운트의 종속성을 추가하여 "핫플러그" 잠금 해제 및 마운트를 계속 달성할 수 있습니다. 예를 들어 "dev-sdb.device"에서 "mnt-ext.mount"를 요구하면 디스크가 잠금 해제되고 마운트된 결과를 낳게 됩니다. 연결이 성공했습니다).

KDE에서 Dolphin을 통한 디스크의 대화형 설치에는 systemd-cryptsetup이 필요하지 않습니다. UDisks2 자체가 LUKS 또는 기타 장치를 설치하기 전에 잠금 해제를 처리하기 때문입니다.


systemctl add-wants거의 동일한 작업을 수행 systemctl enable하지만 [Install] 지시문 대신 명령줄 인수를 사용하는 종속성 수동 생성을 사용할 수 있습니다 .

# systemctl add-wants foo.service [email protected]

그러나 서비스가 사용 가능한 장비에 따라 달라지는 경우 직접 가서 의존하는 것이 좋습니다.기기에서구현 세부정보 대신:

# systemctl add-wants foo.service dev-mapper-ext.device

관련 정보