Luks는 어떤 키맵을 사용하나요?

Luks는 어떤 키맵을 사용하나요?

간결한 버전

LUKS가 비밀번호를 묻는 메시지를 표시할 때 어떤 키맵을 사용해야 하는지 어떻게 알 수 있나요?

긴 버전

나는 세 가지 키보드와 해당 매핑(US-Qwerty, FR-Azerty 및 FR-Bepo)을 사용하고 자주 번갈아 사용합니다. 나는 사용했다이 솔루션동일한 비밀번호를 입력할 수 있음(추가함)이 제안을 따르십시오) 현재 어떤 매핑이 활성화되어 있고 어떤 키보드를 사용하고 있는지에 관계없이 그다지 깨끗하다는 느낌은 들지 않습니다.

다양한 솔루션(실시예 1,실시예 2)에서는 편집을 제안했지만 /etc/vconsole.conf이 파일은 내 설치에 존재하지 않으므로 가능하다면 그렇게 하지 않는 것이 좋습니다. 방법이 있을 것 같습니다initramfs.conf를 편집하여하지만 내가 올바르게 이해했는지 잘 모르겠습니다.먼저 현재 활성화된 키맵을 이해하세요..

정보

uname -a 
Linux XXX 6.1.0-12-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.52-1 (2023-09-07) x86_64 GNU/Linux

답변1

LUKS에는 키맵이 없습니다. 키보드 입력 자체를 읽지 않습니다. 단지 키보드 입력을 읽는 일반 콘솔 프로그램일 뿐입니다.편안텍스트 입력은 콘솔에 맡기고 키 입력을 매핑하세요.

다양한 솔루션(예 1, 예 2)에서는 /etc/vconsole.conf 편집을 제안하지만 해당 파일이 내 설치에 존재하지 않습니다.

이는 일반적으로 정상입니다. 모든 설치에 모든 구성 파일이 존재하는 것은 아닙니다. 실제로 systemd의 전체 디자인에서 중요한 부분은아니요"기본" 또는 "템플릿" 구성은 /etc에 있어야 하며 모든 정적 구성은 /usr/lib에 있어야 합니다. (그 이후로 많은 다른 프로젝트가 이 규칙을 따랐습니다.) 따라서 구성 파일이 없다고 해서 시스템이 해당 파일을 사용하지 않는다는 의미는 아니며, 시스템을 알고 있다면하다그걸 써.

(반면에 systemd의 대부분과 마찬가지로하다대안이 있습니다. vconsole.keymap=vconsole.conf 매뉴얼 페이지에 언급된 커널 명령줄 옵션(시스템이 이를 위해 systemd-vconsole을 사용하는 경우)을 GRUB 구성에 추가할 수 있습니다. )

즉, 데비안은 실제로 메인(rootfs) 부팅에도 systemd-vconsole을 전혀 사용하지 않는다고 생각합니다. (그리고 initramfs는 자체 구성 파일과 모든 것을 갖춘 완전히 별개의 세계입니다. 설명에서 언급했듯이 initramfs 빌드는 배포판마다 크게 다릅니다. 데비안은 이 작업을 수행하기 위해 자체 "initramfs-tools"를 사용하지만 다른 배포판에서는 Dracut을 사용할 수 있습니다. mkinitcpio, Booster, genkernel 등)

따라서 귀하의 경우 Ubuntu 지침은 /etc/initramfs-tools/initramfs.confDebian의 initramfs에도 가장 적합합니다.

먼저 현재 어떤 키맵이 활성화되어 있는지 알고 싶습니다.

lsinitramfscpioinitramfs(cpio 아카이브의 미니 루트fs)를 사용하거나 압축을 풀면 bsdtar어떤 키맵 파일이 여기에 포함되어 있는지(있는 경우) 표시될 수 있습니다. initramfs를 빌드할 때 verbose 모드를 활성화하면 update-initramfs -u -v이를 표시할 수도 있습니다.

하지만 데비안의 경우 불행하게도 범용 파일 이름이 사용되는 것 같습니다. 이는 initramfs가 구축될 때 기본 시스템에 존재했던 "캐시된" 키맵이 무엇이든 가져옵니다. 그것이 드러내는 것은 존재 여부뿐입니다.initramfs에 키맵이 존재하는지 여부.

따라서 방금 새 initramfs를 구축했다면 구성된 콘솔 키맵 /etc/default/keyboard( KEYMAP=y해당 옵션이 initramfs.conf에서 활성화된 경우)이나 일반 내장 "us" 키맵(활성화되지 않은 경우)을 사용할 것이라고 가정하는 것이 안전합니다. ). 예를 들어, 이는 시스템 키맵이 initramfs에 복사되었음을 나타냅니다.

# initramfs -u -v 업데이트
호출 후크 키맵
바이너리 /usr/bin/kbd_mode 추가
바이너리 /usr/bin/loadkeys 추가

# lsinitramfs /boot/initrd.img-6.1.0-12-amd64 | grep kmap
etc/console-settings/cached_UTF-8_del.kmap

# bsdtar -tf /boot/initrd.img-6.1.0-12-amd64 | grep kmap
etc/console-settings/cached_UTF-8_del.kmap

마지막으로 커널 옵션을 사용하여 initramfs를 중단하면 break=premount적절한 시점(키맵이 로드된 후 LUKS 프롬프트 전)에 키를 누르고 입력된 내용을 볼 수 있는 쉘이 제공되어야 합니다.

관련 정보