Como altero o layout do teclado usado ao digitar minha senha sda_crypt?

2

Atualmente estou usando o Ubuntu MATE 15.10. Enquanto configurava o Ubuntu, eu acidentalmente selecionei o layout do Colemak quando eu queria o layout QWERTY. Agora, quando eu estou digitando minha senha para sda_crypt na inicialização (que eu acredito ser minha chave de criptografia LUKS?), Ela digita no Colemak.

Eu tentei mudar meu layout padrão das configurações do sistema, mas isso não afeta o layout que uso em sda_crypt.

    
por LotSX 29.12.2015 / 23:02

1 resposta

1

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:

  1. Edite /etc/default/keyboard com base na saída de setxkbmap -print .
  2. Reinicialize (ou descubra a maneira correta de atualizar a configuração do console).
  3. Executar sudo update-initramfs -u .
  4. 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?

    
por Tom Spurling 29.06.2017 / 22:55