Acho que resolvi principalmente isso (exceto o contrário, tentando escapar do QWERTY), em uma instalação do 16.04 LTS.
Como o prompt está após o GRUB, mas antes que a partição raiz criptografada esteja acessível, sabemos que a opção de layout está incorporada no initramfs (mini sistema de arquivos carregado na memória antes do sistema de arquivos raiz real, contendo todo o necessário para carregar o arquivo real).
O initramfs é construído por initramfs-tools
, que é uma lista gigante de scripts para copiar coisas para lá. Parece que o específico que está afetando isso é /usr/share/initramfs-tools/hooks/console_setup
, que reutiliza o mesmo /etc/console-setup/cached.kmap.gz
que é usado (eu acho?) Para os consoles normais serial / tty.
(Eu apreciaria alguma clareza sobre isso se alguém tiver algum. Executar dpkg -S
nesse "gancho" mostra que ele vem do pacote keyboard-configuration
que poderia ser uma pista.)
De qualquer forma, o layout do teclado de configuração do console vem de /etc/default/keyboard
, que tem algumas atribuições variáveis. Para dar uma ideia de como definir isso, você pode descobrir a partir do layout normal do xkb (isso é o que as "Configurações do Sistema" mudam), executando isso em um terminal:
$ setxkbmap -print
xkb_keymap {
xkb_keycodes { include "evdev+aliases(qwerty)" };
xkb_types { include "complete+numpad(mac)" };
xkb_compat { include "complete" };
xkb_symbols { include "pc+us(dvorak)+inet(evdev)+capslock(backspace)+shift(both_capslock)" };
xkb_geometry { include "pc(pc105)" };
};
Meu layout é um pouco estranho, mas os bits importantes são xkb_symbols ... us(dvorak)
e xkb_geometry ... pc(pc105)
. A partir disso, derivamos as seguintes variáveis /etc/default/keyboard
:
$ sudo nano /etc/default/keyboard
XKBMODEL="pc105"
XKBLAYOUT="us"
XKBVARIANT="dvorak"
XKBOPTIONS=""
[...]
Depois de editar /etc/default/keyboard
, você precisa enganar console-setup
na atualização. Eu não tenho idéia de como fazer isso, então eu apenas reiniciei, o que parecia funcionar. (Na verdade, poderia ser porque eu já tinha feito o próximo passo antes desta reinicialização, embora não tenha funcionado desta vez.)
Depois disso, basta executar sudo update-initramfs -u
. Ele dirá 'Gerando /boot/initrd.img-{latest-kernel-version}' e levará algum tempo enquanto copia um monte de coisas em uma nova imagem initramfs. Depois disso, sua próxima reinicialização deve ter o layout desejado no prompt dm-crypt:).
TL; DR:
- Edite
/etc/default/keyboard
com base na saída desetxkbmap -print
. - Reinicialize (ou descubra a maneira correta de atualizar a configuração do console).
- Executar
sudo update-initramfs -u
. - Esperamos aproveitar um pouco mais a próxima reinicialização.
Boa sorte e lamento apenas ter tido o mesmo problema agora. Talvez em mais 18 meses alguém com o mesmo problema me avise como vai ser?