Когда я загружаюсь в GRUB2 и нажимаю c, у меня есть доступ к оболочке GRUB.
Как изменить раскладку клавиатуры (язык) этой оболочки GRUB?
Обратите внимание, что я загружаю VM Ubuntu в Virtualbox.
Сначала убедитесь, что вы используете 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
Отредактируйте / etc / default / grub
с правами root, чтобы иметь:
#GRUB_HIDDEN_TIMEOUT=0
GRUB_TERMINAL_INPUT="at_keyboard"
Изменить / etc / grub.d / 40_custom
с правами root:
#!/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
правильно прокомментирован.
Тонкая настройка моего grub (2.02-2ubuntu8.3), на старом полнофункциональном Asus N73JF (мультизагрузка Windows 7, восстановление Windows, Ubuntu 15. 10, Ubuntu 18.04...) пользовательское меню не было для меня опцией.
sudo grub-kbdcomp -o /boot/grub/layouts/laptop.gkb fr
(В grub2 Ubuntu используется /boot/grub/layout из 15.10).
Далее, я не открываю /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/
.