컨테이너의 gpt/mbr 파티션 테이블을 사용하여 LUKS 컨테이너에 여러 파티션을 생성하는 방법은 무엇입니까?

컨테이너의 gpt/mbr 파티션 테이블을 사용하여 LUKS 컨테이너에 여러 파티션을 생성하는 방법은 무엇입니까?

단일 LUKS 또는 cryptsetup 컨테이너에 여러 파티션을 가질 수 있습니까? 그렇다면 어떻게 해야 할까요?

답변1

온라인에서 이 설정을 설명하는 내용을 찾지 못했지만 제대로 작동하는 것으로 나타났습니다. 몇 가지 장점은 비밀번호를 한 번만 입력하면 되고 파티션 크기를 조정할 수 있는 도구는 암호화 계층을 몰라도 작동한다는 것입니다. 그러나 비밀번호를 한 번만 입력하면 되는 다른 솔루션도 있으며 이제 gnome 파티션 편집기에는 암호화된 파티션을 이동/크기 조정하는 기능도 있으므로 권장되지 않습니다. 또한 이 작업을 수행하는 사람이 아무도 없는 것 같아서 온라인에서 도움을 받을 수 있는 방법이 많지 않습니다.

어쨌든 이 작업을 수행하려면 다음을 수행하십시오.

  • LUKS 볼륨을 생성하고 원하는 방식으로 마운트하세요. 볼륨 이름이 지정되면 cryptvolume에 나타납니다 /dev/mapper/cryptvolume.
  • GParted를 사용하여 볼륨 열기: gparted /dev/mapper/cryptvolume 장치 선택 > 파티션 테이블 생성(또는 명령줄 도구를 사용하여 파티션 테이블 생성) 이제 원하는 방식으로 GParted에서 파티션을 생성할 수 있습니다.
  • 부팅 시 볼륨이 자동으로 마운트되도록 하려면 /etc/crypttab및 에 줄을 만듭니다. /etc/fstab온라인에서 이 작업을 수행하는 방법에 대한 설명이 있을 수 있으므로 여기서는 다루지 않겠습니다.

원칙적으로 이는 다중 파티션 LUKS 컨테이너가 작동하는 데 충분해야 하며 Ubuntu 18.04에서는 이것이 가능합니다. systemd가 암호화된 파티션을 마운트할 수 없기 때문에 재부팅할 때를 제외하고는 오류가 발생합니다. 누락된 점은 암호화된 볼륨이 해독된 후 파티션 테이블을 다시 검색하도록 커널에 지시할 것이 없다는 것입니다. 이를 수행하는 명령은 입니다 partprobe. systemd 시스템에서 올바른 시간에 partprobe를 실행하도록 시스템에 알리려면 다음 파일을 /etc/systemd/system/partprobe.service.

cryptdisk1.mount시스템에 적합한 마운트 지점과 /dev/mapper/cryptdisk해독된 LUKS 장치의 경로 로 바꾸십시오 .

[Unit]
Description=partprobe after cryptsetup
# By default services depend on partitions being mounted. Leaving this out leads to cyclic dependencies.
DefaultDependencies=no
# We don't need to Requires=cryptsetup.target, as cryptsetup.target is always present
After=cryptsetup.target
# The mount target is named after the mount path.
# Run `systemctl list-dependencies local-fs.target` to list mount targets.
Before=cryptdisk1.mount

[Service]
Type=oneshot
# You don't have to specify the path to the decrypted device, but doing so will speed up the boot a bit
ExecStart=/sbin/partprobe /dev/mapper/cryptdisk

[Install]
# Required by local-fs.target or by all the partitions in the LUKS container to be more specific 
RequiredBy=cryptdisk1.mount

sudo systemctl enable partprobe.service활성화하려면 파일을 생성한 후 실행하세요 .

이것은 GPT 파티션이 있는 Ubuntu 18.04에서 테스트되었습니다. 경로는 시스템마다 다를 수 있습니다. 시스템이 아닌 시스템의 경우 파티션을 마운트하기 전에 partprobe를 실행하는 다른 방법을 찾아야 합니다.

답변2

4.19 커널 및 LUKS에서 작동하지 않습니다.2체재. 사용자 공간은 /dev/mapper/${name}에서 GPT 를 읽고 쓸 수 있지만 partprobe| 내부 LUKS GPT는 partx|blockdevhdparm

관련 정보