Как изменить раскладку клавиатуры командной строки grub (grub shell)?

Когда я загружаюсь в GRUB2 и нажимаю c, я имею доступ к оболочке GRUB.

Как изменить раскладку клавиатуры (язык) этой оболочки GRUB?

Обратите внимание, что я загружаю виртуальную машину Ubuntu внутри Virtualbox.

4 ответа

Решение

Сначала убедитесь, что вы используете GRUB 2 (GRUB 0.x работает по-другому).

grub-install --version

Создайте файл раскладки клавиатуры GRUB. Ниже приведена команда для frэнч клавиатура. Для других языков, проверьте /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

(Ubuntu grub2 использует /boot/grub/layouts с 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/,

Не делай этого!

Если кто-то должен попробовать это на ноутбуке / ноутбуке, не делайте этого! Как сказал Зульгриб в своем комментарии, это не является пуленепробиваемым, но может повредить ваш загрузчик grub.

Немецкий форум Debian также не рекомендует это!

Это работает только в том случае, если подключена клавиатура, к которой можно обращаться с помощью AT или USB. Клавиатура ноутбука или ноутбука может вообще не работать, и вы будете сидеть перед непригодным для использования GRUB2! В любом случае клавиатура Lenovo X220 не работает.

Немецкий форум Debian

Комментарий к комментарию джамо ко 2-му ответу: вы можете создать /boot/grub/layouts вручную.

      sudo mkdir /boot/grub/layouts
Другие вопросы по тегам