如何更改grub命令行(grub shell)键盘布局?

当我在GRUB2中启动并按c时 ,我可以访问GRUB shell。

如何更改此GRUB shell的键盘布局(语言)?

请注意,我正在Virtualbox中启动Ubuntu VM。

首先,检查您是否正在使用GRUB 2(GRUB 0.x的工作方式不同)。

grub-install --version 

生成GRUB键盘布局文件。 下面是fr ench键盘的命令。 对于其他语言,请检查/usr/share/X11/xkb/symbols/ 。 文件名选择并不重要(您可以更改bepo )。

 sudo grub-kbdcomp -o /boot/grub/bepo.gkb fr 

使用root权限编辑/etc/default/grub

 #GRUB_HIDDEN_TIMEOUT=0 GRUB_TERMINAL_INPUT="at_keyboard" 

使用root权限编辑/etc/grub.d/40_custom

 #!/bin/sh exec tail -n +3 $0 insmod keylayouts keymap /boot/grub/bepo.gkb 

最后:

 sudo update-grub 

注意: 立即忘记使用Shift键显示GRUB菜单! terminal_input at_keyboard使这个键不再起作用可能是正常的。 因此,请确保正确评论#GRUB_HIDDEN_TIMEOUT=0

致谢: Archlinux.fr Wiki GRUB:Configuration_du_clavier (french)

微调我的grub(2.02-2ubuntu8.3),在一个function齐全的旧function华硕N73JF(多重启动Windows 7,Windows恢复,Ubuntu 15.10,Ubuntu 18.04 ……)上,自定义菜单不是我的选择。

 sudo grub-kbdcomp -o /boot/grub/layouts/laptop.gkb fr 

(Ubuntu的grub2使用15.10中的/ boot / grub / layouts)。

接下来,我不打开/etc/default/grub也不打开/etc/grub.d/40_custom :我编辑/etc/grub.d/00_header我替换

  cat << EOF set gfxmode=${GRUB_GFXMODE} load_video insmod gfxterm EOF 

  cat << EOF set gfxmode=${GRUB_GFXMODE} load_video insmod gfxterm insmod terminal terminal_output gfxterm insmod keylayouts insmod at_keyboard terminal_input at_keyboard keymap laptop EOF 

感谢KrisWebDev的问答:我在/boot/grub/i386-pc/里面学到了很多东西。