"file" 명령이 내 LUKS 장치를 올바르게 식별하지만 커널에서는 이를 볼 수 없습니다.

"file" 명령이 내 LUKS 장치를 올바르게 식별하지만 커널에서는 이를 볼 수 없습니다.

최근에 기본 4MiB LUKS2 장치를 만들었습니다 --offset. 이 file명령은 장치를 올바르게 식별하고 해당 UUID를 나열하지만 부팅 시 자동으로 열리거나 표시되지 않습니다 /dev/disk/by-uuid/...(이후에도 update-initramfs).

수동으로 실행하면 cryptsetup open예상대로 작동하지만 cryptdisks_start열 수 없습니다. 내 다른 장비 UUID=와 마찬가지로 지정 됩니다 . /etc/crypttabUUID 대신 "상위" 블록 장치 경로를 사용하는 것이 유효합니다.

확인하면 xxd올바른 매직 넘버(오프셋 0의 "LUKS")가 표시되고 헤더는 다른 LUKS2 장치와 동일한 오프셋에서 시작됩니다(여기서올바르게 감지되었습니다). 장치가 감지되지 않는 이유는 무엇입니까? UUID로 열려면 어떻게 해야 합니까?

답변1

기술적으로 여기서 커널에는 아무런 문제가 없습니다. 여기에 관련된 유일한 커널은 dmcrypt장치에 의해 구성된 장치 매퍼 입니다 cryptsetup.

cryptsetup블록 장치에 저장된 메타데이터를 기반으로 장치 매퍼 장치를 구성할 수 있으므로 오류도 없습니다.

실제로 /dev/disk/by-uuidLUKS udev장치를 가리키는 항목이나 LUKS 장치 검색을 담당하는 항목이 저장되어 있지 않습니다(출력 참조 udevadm info /dev/the-block-device).

udev이에 대해 알아보려면 사용하세요 blkid(예를 들어 /lib/udev/rules.d/60-persistent-storage.rules내장 버전에 대한 Debian의 규칙 참조).

귀하의 경우 blkid신고하세요 .TYPE="jmicron_raid_member". RAID 배열 구성원인 경우 직접 액세스하면 안 되므로 blkid내부에 무엇이 저장되어 있는지 보고하지 않는 것이 옳습니다.

이것이 아니라면jmicron_raid_member, 어쩌면 일부 RAID 구성의 서명이 여전히 포함되어 있을 수도 있습니다. 예를 들어 SSD가 한 번 PC에 연결되었고 ATA 모드가 BIOS에서 AHCI 대신 RAID로 설정되었기 때문입니다(그리고 blkdiscard사용하기 전에 실행하는 것을 잊어버렸습니다) 다시). 아니면 마지막 512바이트가 정확히 J511번째 바이트 일 수도 있습니다 M.

blkid 감지를 중지 하려면 jmicron_raid_member의도적인 것이 아니며 마지막 512바이트 단위가 아무것도 사용되지 않는 것이 확실하다면 RAID 서명을 지워야 합니다. 이는 분명히 jmraid의 경우입니다.블록 장치의 마지막 512바이트 단위에서 발견됨, 또는 다음과 같은 것을 수동으로 사용:

size=$(blockdev --getsize -- "$dev") &&
  dd if=/dev/zero of="$dev" seek="$((size - 1))" count=1

또는 util-linux' wipefs:

wipefs -t jmicron_raid_member -- "$dev"

서명을 나열하십시오.

wipefs -a -t jmicron_raid_member -n -- "$dev"

삭제할 항목을 표시합니다.

wipefs -a -t jmicron_raid_member -- "$dev"

닦음.

관련 정보