cryptsetup isLuks
이 명령을 사용하여 파티션이 LUKS 컨테이너인지 확인할 수 있다는 것을 알고 있습니다 . 파티션의 장치 이름을 확실히 알 수 없는 경우 LUKS 컨테이너의 마운트 지점과 함께 이 명령을 사용할 수 있기를 원합니다. 하나의 명령으로 이 작업을 어떻게 수행할 수 있습니까?
예를 들어 Luks 컨테이너가 에 있고 /dev/sda2
다음으로 엽니다.
$ cryptsetup luksOpen /dev/sda2 vault
그런 다음 컨테이너를 마운트합니다.
$ mount /dev/mapper/vault /mountpoint
/mountpoint
이 시점에서 Luks 컨테이너인지 알고 싶습니다.
$ cryptsetup isLuks -v /dev/sda2
Command successful.
$ cryptsetup isLuks -v /mountpoint
Command failed with code 15: Block device required
$ cryptsetup isLuks -v /dev/mapper/vault
Command failed with code 22: Device /dev/mapper/vault is not a valid LUKS device.
lsblk
일반적으로 마운트 지점의 블록 장치를 가져오는 데 사용 하지만 이는 /dev/mapper/vault
경로를 반환합니다.
└─sda2 8:8 0 9.3G 0 part
└─vault 252:0 0 9.3G 0 crypt /mountpoint
/dev/mapper/vault
어떻게든 해결할 수 있다면 명령 /dev/sda2
내에서 명령 대체를 사용할 수 있을 것입니다 cryptsetup isLuks
.
awk
의 출력을 구문 분석하는 것이나 사용하는 것보다 더 우아한 것을 찾는 것이 좋을 것입니다 mount
. 그러나 그것이 유일한 방법이라면 작동할 것입니다.
답변1
나는 같은 문제가있었습니다. 이렇게 해결되었습니다.
lsblk -sJp | jq -r --arg dsk "/dev/mapper/disk_name" '.blockdevices | .[] | select(.name == $dsk) | .children | .[0] | .name'
예를 들어 반환/dev/sda2
답변2
이것은 작동합니다. 조금 길지만 bash 함수를 만들면 단순화됩니다.
cryptsetup isLuks -v `df /mountpoint | tail -n1 | awk '{print $1;}'`
답변3
누군가가 사용한다고 언급했습니다lsblk
이것은 비교적 쉬운 방법이지만 그렇게 하는 경우에만 가능합니다.
alias lsblk2='lsblk -o type,name,label,partlabel,size,fstype,model,serial,wwn,uuid'
그러면 lsblk의 출력에는 훨씬 더 유용한 정보가 포함되며 그 아래에 결과 파티션이 표시됩니다 FSTYPE
. crypto_LUKS
그리고 참고할 수 있는 디스크 모델과 일련 번호도 있어서 머리말과 꼬리말을 만드는 데 유용하다고 생각합니다.
man lsblk
그 뒤에 옵션을 추가하면 -o
자신에게 더 유용할 것입니다.
crypto_LUKS
내 생각에는 이런 식으로 생각합니다... Linux가 현재 보고 있는 모든 디스크의 간단한 가시적 트리 목록을 얻는 것은 어떤 디스크/파티션이 luks 암호화되어 있는지 알기 위해 최소한의 입력만으로 가장 간단한 방법입니다 . 적어도 그게 바로 표시될 것입니다. RHEL 7.9를 사용하는 것으로 보입니다.
답변4
이것은 나에게 효과적이었습니다.
for part in $(lsblk -o NAME -ln | grep -E '^[^loop]'); do
if cryptsetup isLuks /dev/$part 2> /dev/null; then
lsblk /dev/$part -ln -o MOUNTPOINT
fi
done
명령 에는 옵션 lsblk
만 있으므로 NAME
시스템의 파티션 이름만 가져옵니다. -ln
또한 제목과 트리 형식도 종료하므로 순수 목록입니다 . 이 grep
명령은 선택 사항이며, 스냅으로 생성된 루프 파티션 검사를 건너뜁니다. 그런 다음 lsblk
LUKS로 감지된 파티션에 또 다른 파티션을 추가합니다.
까다롭지만 LUKS는 cryptsetup
마운트 지점이 아닌 파티션에서 작동합니다. 스크립트 내에서 사용하려는 경우 더 나은 연습을 위해 함수로 만들 수 있습니다.