我尝试从各种来源拼凑出如何做到这一点。第一种方法,基于1和2:
$ grep ^HOOKS /etc/mkinitcpio.conf
HOOKS="base udev autodetect modconf block lvm2 keyboard keymap encrypt filesystems fsck"
$ grep ^KEYMAP /etc/vconsole.conf
KEYMAP=dvorak
然后运行sudo mkinitcpio -p linux
成功并重启。结果:密码提示仍然使用美国布局。
第二种方法,基于3:
- 安装CKBComp
跑步:
sudo mkdir /boot/grub/layout sudo grub-kbdcomp -o /boot/grub/layout/us-dvorak-alt-intl.gkb us dvorak-alt-intl
(忽略“未知键盘扫描代码 0x…”警告)
- 在
/etc/default/grub
集合中GRUB_TERMINAL_INPUT=at_keyboard
添加
/etc/grub.d/40_custom
:insmod keylayouts keymap /boot/grub/layout/us-dvorak-alt-intl.gkb
跑步:
sudo grub-mkconfig -o /boot/grub/grub.cfg sudo grub-install --target=i386-pc /dev/sda reboot
现在我可以在 GRUB 菜单中使用 Dvorak,但不能在 LUKS 提示符下使用。
其他 来源提到一种类似的方法,我认为这种方法行不通,因为在读取相关文件之前就会出现 LUKS 提示。最后,一来源说这根本不可能做到。