
부팅 시 /etc/crypttab에 의해 열리는 luks 장치가 있습니다. lsblk는 다음과 같습니다.
sdc 8:32 1 114,6G 0 disk
└─luks-672dcc74-d002-47dc-b61b-525baf91dc7c 253:2 0 114,6G 0 crypt
다음과 같이 장치를 설치합니다.
pmount /dev/mapper/luks-672dcc74-d002-47dc-b61b-525baf91dc7c
다음과 같이 제거합니다(둘 다 작동함).
pumount /dev/mapper/luks-672dcc74-d002-47dc-b61b-525baf91dc7c
pumount /media/mapper_luks-672dcc74-d002-47dc-b61b-525baf91dc7c
그러나 pumount lsblk는 다음과 같습니다:
sdc 8:32 1 114,6G 0 disk
Pumount가 Luks 장치를 종료한 이유는 무엇입니까? pumount 매뉴얼 페이지에서 다음을 볼 수 있습니다.
Normally, pumount will not luksClose (see cryptsetup(1)) a device pmount did not open.
luks 장치는 pmount가 아닌 시작 시 /etc/crypttab에 의해 열립니다! pumount가 luks 장치를 닫는 이유는 무엇입니까? 이것은 버그입니까?
저는 Debian Bullseye를 사용하고 있습니다.
답변1
노트:저는 완전히 처음이고 pumount
테스트할 수 있는 데비안 설치도 없습니다.방금 데비안에서 소스 코드를 받았습니다.그리고 거기서 발견한 것을 바탕으로 터무니없는 가정을 하게 되는데...
pumount
--luks-force
LUKS 장치가 열려 있지 않은 경우(맨페이지에서 이미 인용한 대로) 장치를 닫는 옵션이 있습니다 .
그런데 소스코드를 보면 실행에 버그가 있는 것 같습니다.
따라서 pumount.c
구문 분석된 몇 가지 옵션은 다음과 같습니다.
int luks_force = 0;
[...]
{ "luks-force", 0, NULL, 'L'},
[...]
case 'L': luks_force = 1; break;
...그렇습니다! 이 옵션은 luks_force = 1
변수를 설정합니다. 그렇지 않으면 0으로 초기화됩니다.
하지만 그것은 전혀 중요하지 않습니다. 왜냐하면... 변수는 어디에도 사용되지 않기 때문입니다.
여기에는 luks.c
다음 코드가 있습니다 .
void
luks_release( const char* device, int force )
{
if(force || luks_has_lockfile(device)) {
spawnl( CRYPTSETUP_SPAWN_OPTIONS,
CRYPTSETUP, CRYPTSETUP, "luksClose", device, NULL );
luks_remove_lockfile(device);
[...]
luksClose
따라서 force
잠금 파일이 존재하거나 true인 경우 이런 일이 발생합니다.
이 함수는 pumount.c
다음과 같이 호출됩니다.
/* release LUKS device, if appropriate */
luks_release( device, 1 );
따라서 무엇을 하든 force
항상 1로 설정하면 LUKS 장치가 꺼집니다.
마지막 줄은 아마도 luks_force
1 대신 변수를 사용해야 하는 곳일 것입니다.