systemd 부팅을 사용하여 레이블로 cryptdevice를 지정하는 방법은 무엇입니까?

systemd 부팅을 사용하여 레이블로 cryptdevice를 지정하는 방법은 무엇입니까?

저는 Arch Linux를 부팅하기 위해 systemd를 사용하고 있습니다. /boot/loader/entries/arch.conf현재 다음 줄을 사용하여 luks 암호화 장치를 지정합니다 .

options        rw cryptdevice=/dev/sda1:ABC root=/dev/mapper/ABC

대신 UUID를 사용할 수도 있다는 것을 알고 있습니다 /dev/sda1. 이 경우 커널 옵션 줄은 다음과 같습니다.

options        rw cryptdevice=UUID=1f5cce52-8299-9221-b2fc-19cebc959f51:ABC root=/dev/mapper/ABC

하지만 파티셔닝을 사용할 수 있나요?상표아니면 롤상표아니면 다른 유형의 태그인가요? 그렇다면 구문은 무엇입니까?

답변1

이미 새로운 LUKS2 형식을 사용하고 있는 경우 레이블을 설정할 수 있습니다.

새로운 LUKS2 컨테이너의 경우:

# cryptsetup luksFormat --type=luks2 --label=foobar foobar.img
# blkid /dev/loop0
/dev/loop0: UUID="fda16145-822e-405c-9fe8-fe7e7f0ddb5e" LABEL="foobar" TYPE="crypto_LUKS"

기존 LUKS2 컨테이너의 경우:

# cryptsetup config --label=barfoo /dev/loop0
# blkid /dev/loop0
/dev/loop0: UUID="fda16145-822e-405c-9fe8-fe7e7f0ddb5e" LABEL="barfoo" TYPE="crypto_LUKS"

그러나 보다 일반적인 LUKS1 헤더에 대해서는 레이블을 설정할 수 없습니다.


LUKS1을 사용하면 상위 레이어에만 라벨을 설정할 수 있습니다. 예를 들어 GPT 파티션을 사용하는 경우 PARTLABEL을 설정할 수 있습니다.

# parted /dev/loop0
(parted) name 1 foobar                                                    
(parted) print
Model: Loopback device (loopback)
Disk /dev/loop0: 105MB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags: 

Number  Start   End    Size   File system  Name    Flags
 1      1049kB  104MB  103MB               foobar

이는 파티션 1의 파티션 레이블을 "foobar"로 설정합니다.

당신은 그것을 식별 PARTLABEL=foobar하거나 찾을 수 있습니다/dev/disk/by-partlabel/

# ls -l /dev/disk/by-partlabel/foobar 
lrwxrwxrwx 1 root root 13 Oct 10 20:10 /dev/disk/by-partlabel/foobar -> ../../loop0p1

마찬가지로 LVM 위에 LUKS를 사용하는 경우 VG/LV 이름을 사용할 수 있습니다.


태그와 마찬가지로 각 태그가 두 번 이상 존재하지 않도록 각별히 주의하세요. UUID가 "보편적으로 고유한" 것으로 간주되는 이유가 있습니다. 잘못된 장치를 사용하려고 하면 많은 문제가 발생할 수 있습니다. 심지어 데이터 손실로 이어질 수도 있습니다(예: cryptswap이 시작 시 잘못된 장치를 포맷하는 경우).

답변2

cryptsetup태그는 다음에서 생성될 수 있습니다.암호화 장치. /dev/disk/by-label을 확인하여 일치하는지 확인하세요. 그래서

cryptdevice=LABEL={labelname}

같은 방법으로~처럼

root=LABEL=ROOT

ROOT태그가 지정된 루트 장치 에서 작동

관련 정보