当我在 GRUB2 中启动并按下时c,我就可以访问 GRUB shell。
如何更改此 GRUB shell 的键盘布局(语言)?
请注意,我正在 Virtualbox 内启动 Ubuntu VM。
答案1
首先,检查您是否正在使用 GRUB 2(GRUB 0.x 的工作方式不同)。
grub-install --version
生成 GRUB 键盘布局文件。以下是 ench 键盘的命令fr
。对于其他语言,请检查/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
正确注释。
答案2
在旧的全功能华硕 N73JF(多重启动 Windows 7、Windows 恢复、Ubuntu 15.10、Ubuntu 18.04……)上对我的 grub(2.02-2ubuntu8.3)进行微调,自定义菜单对我来说不是一个选项。
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/
。
答案3
别这么做!
如果有人应该尝试一下笔记本/笔记本电脑,不要!喜欢祖尔格里布他在评论中说这不是万无一失的,它可以破坏你的 grub 引导加载程序。
德国 Debian 论坛也不推荐它!
这仅在连接了可通过 AT 或 USB 寻址的键盘时才有效。笔记本电脑或笔记本键盘可能根本不起作用,让您坐在无法使用的 GRUB2 前!无论如何,联想 X220 的键盘都不起作用。
答案4
对 jamo 对第二个答案的评论的评论:您可以手动创建 /boot/grub/layouts。
sudo mkdir /boot/grub/layouts