我在最新的 16.04 上使用德文键盘布局和 luks 加密硬盘。在安装最新的内核更新 4.4.0-34-generic 之前,我可以使用德文键盘布局输入 luks 密码,没有任何问题。现在,启动时 cryptsetup 的布局是 en_US,但之后就全是德文了(例如登录时)。
我仍然可以选择启动旧内核 4.4.0-31-generic 并在 cryptsetup 上使用德语键盘布局。
我尝试将“KEYMAP=y”添加到我的 /etc/initramfs-tools/initramfs.conf 并使用“sudo update-initramfs -u”重建我的 initramfs,但这没有帮助。
如何使用最新内核在 cryptsetup 上设置键盘布局?
答案1
KEYMAP=y
是 Debian 独有的机制,因此只能在 Debian 中使用。它被传入/usr/share/initramfs-tools/hooks/keymap
位于包中的位置initramfs-tools
并生成稍后使用的/etc/boottime.kmap.gz
。
initramfs-tools
在 Ubuntu 中提供了完全不同的钩子,它们不使用KEYMAP=y
。但这些脚本总是尝试加载配置的本地键盘映射。
/usr/share/initramfs-tools/hooks/console_setup
将现有的复制/etc/console-setup/cached.kmap.gz
到小型 busybox 环境。稍后/usr/share/initramfs-tools/scripts/init-top/console_setup
将加载此键盘映射。
顺便说一句,它似乎/usr/share/initramfs-tools/scripts/init-top/keymap
也会尝试以相同的方式加载/etc/boottome.kmap.gz
,但该文件不存在(以前曾使用过)。
但是/usr/share/initramfs-tools/hooks/console_setup
不要生成/etc/console-setup/cached.kmap.gz
,而要使用现有的,这与 Debian 不同。我认为生成必须正确执行一次,然后它应该再次工作,然后调用“update-initramfs -u”。
但是,我当时似乎无法正确完成。 成功的方法有点令人失望:我不得不重新安装整个操作系统。 确保在安装过程中选择了正确的键盘布局,并在安装过程之后但在启动新安装的系统之前在新系统的 chroot 环境中运行“update-initramfs -u”(顺便说一下,我测试过了。)
答案2
我在全新安装* Ubuntu 17.10。
F.Raab 提供的这条信息被证明非常有用:
但是,与 Debian 不同,/usr/share/initramfs-tools/hooks/console_setup 不会生成 /etc/console-setup/cached.kmap.gz,而只是使用现有的文件。我认为生成过程必须正确执行一次,然后它应该再次运行,然后调用“update-initramfs -u”。
似乎文件/etc/console-setup/cached.kmap.gz
是丢失的在我的系统上,显然,负责的程序没有创建它。
这脚步在我的系统上确实有效:
cd /etc/console-setup
- 查找要用作模板的文件:(
ls | grep kmap
在当前文件夹中搜索包含“kmap”的文件名)。我选择cached_UTF-8_del.kmap.gz
。 - 创建模板文件的副本并将其命名为
cached.kmap.gz
:(sudo cp cached_UTF-8_del.kmap.gz cached.kmap.gz
除了通过软件和更新启用的 NVIDIA 驱动程序和禁用 grub quiet splash,因为关机错误) - run
sudo update-initramfs -u
socached.kmap.gz
可以集成到启动序列中。
(我通过在步骤 4 之前和之后运行并比较访问时间戳来测试cached.kmap.gz
whas 的使用情况。)stat cached.kmap.gz
重启后,cryptsetup 会以我喜欢的键盘布局接受我的 LUKS 密码,而不是 QUERTY。
(这意味着cached_UTF-8_del.kmap.gz
已经包含了正确的布局。如果上述方法不适合您,您可以尝试使用以下命令之一将命令行上的键盘布局(英国英语)更改为美国英语或者https://apps.ubuntu.com/cat/applications/language-selector-gnome/)
我在内核4.13.0-32-generic' (check using
uname -r')。升级内核可能会缓解此问题我也想这样做,但我不想这样做,因为我担心这会再次导致与 NVIDIA 驱动程序的冲突。(为什么我不得不离开 Fedora;几乎每次内核更新后,我的系统都会再次变得不稳定,而我没有技能和时间去解决这个问题。)
* 除了通过软件和更新启用 NVIDIA 驱动程序和禁用 grub quiet splash 之外,因为关机错误