如何在 GRUB2 LUKS 密码提示中使用 Dvorak 键盘布局?

l0b*_*0b0 5 arch-linux grub2 keyboard-layout luks

我试图从各种来源拼凑出如何做到这一点。第一种方法,基于12

$ grep ^HOOKS /etc/mkinitcpio.conf
HOOKS="base udev autodetect modconf block lvm2 keyboard keymap encrypt filesystems fsck"
$ grep ^KEYMAP /etc/vconsole.conf
KEYMAP=dvorak
Run Code Online (Sandbox Code Playgroud)

然后运行sudo mkinitcpio -p linux成功并重启。结果:密码提示仍然使用美式布局。


第二种方法,基于3

  1. 安装ckbcomp
  2. 跑:

    sudo mkdir /boot/grub/layout
    sudo grub-kbdcomp -o /boot/grub/layout/us-dvorak-alt-intl.gkb us dvorak-alt-intl
    
    Run Code Online (Sandbox Code Playgroud)

    (忽略“未知键盘扫描代码 0x...”警告)

  3. /etc/default/grubGRUB_TERMINAL_INPUT=at_keyboard
  4. 另外/etc/grub.d/40_custom

    insmod keylayouts
    keymap /boot/grub/layout/us-dvorak-alt-intl.gkb
    
    Run Code Online (Sandbox Code Playgroud)
  5. 跑:

    sudo grub-mkconfig -o /boot/grub/grub.cfg
    sudo grub-install --target=i386-pc /dev/sda
    reboot
    
    Run Code Online (Sandbox Code Playgroud)

现在我可以在 GRUB 菜单中使用 Dvorak,但不能在 LUKS 提示符下使用。


其他 来源提到了一种类似的方法,我认为它行不通,因为 LUKS 提示甚至在相关文件被读取之前就出现了。最后,一位消息人士表示,这根本无法完成。