KVM仮想マシンマネージャで日本語キーボードを利用する

小ネタ

KVMで仮想マシンマネージャを利用する際に入力 (キーボード設定関連) で少々はまったので対策を書いておきます。

はじめに

David Bowie の訃報に Dancing in the Street が脳内リフレインしている今日この頃、みなさまいかがお過ごしですか。

現状、仮想マシンマネージャを利用する事はあまりないのですが、先日久々に利用した際、日本語キーボードになっていなかったため、一部キー入力が行えない状況に陥りました。
※':' キーが打てない状況だったりすると、viで設定が行えずはまったりします。

状況としては以下のような感じです。

  1. KVMホスト上でVNCサーバを実行
  2. 上記ホストにVNC接続 ( Windows PCから )
  3. VNC経由で X Windows 上で操作
    ここでターミナルを起動しコマンド実行するが、キーボードが日本語になっていない。→ 日本語キーボードになるように設定
  4. VNC経由で仮想マシンマネージャを起動し、GUIコンソール上 で操作
    上記日本語キーボード設定後、仮想マシンマネージャのコンソールでコマンド実行するが、キーボードが日本語になっていない。→ 日本語キーボードになるように設定

問題となった箇所は以下二ヶ所です。それぞれ日本語キーボードを設定した手順を記します。

  • VNC
  • 仮想マシンマネージャのコンソール

環境

環境は以下です。
30分で仮想サーバ(KVMホスト)環境を構築する で構築した環境に同じです ( その後のupdate によりバージョンは上がっている )。

OS CentOS 6.7

手順

VNC

設定

VNCで日本語キーボードが有効になっていなかったので設定します。

  1. VNCのスタートアップスクリプトを編集します。
    ( root で VNCサーバを起動している場合、 /root/.vnc/xstartup になります )。

    # vi /root/.vnc/xstartup
    

    以下を追加します。

    setxkbmap -model pc106 -layout jp
    

    私の場合、以下のように追記 (抜粋)

    ...
    [ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
    setxkbmap -model pc106 -layout jp
    xsetroot -solid grey
    ...
    
  2. Xを起動し ( VNC経由での操作でもOK )、GNOMEキーボード設定を確認します。
    # gnome-keyboard-properties
    
  3. キーボードの設定 ウィンドウが開くので、レイアウトタブをクリックします。
  4. レイアウトが日本語になっているか確認します。なければ追加し、ドラッグ&ドロップして最上位に配置します ( デフォルトチェックが入ります )。

確認

設定を有効にするために、VNCサーバを再起動してキー入力に問題がないか確認してください。

GUIコンソール

設定

  1. 仮想マシンマネージャから設定を編集するゲストを選択し、メニューから [編集]>[仮想マシンの詳細]をクリックします。
  2. 仮想マシンの設定ウィンドウが開くので、左メニューから "ディスプレイVNC"を選択します。
  3. キーマップの設定を "ja" に設定します。
  4. 設定を変更したゲストを起動します。(起動中の場合は再起動)
  5. GUIコンソールからログインした後、/etc/sysconfig/keyboard を編集します。
    この時点でキーボード設定がjp106 になっていない場合は以下コマンドでjp106に(一時的に)変更します。
    # loadkeys jp106
    Loading /lib/kbd/keymaps/i386/qwerty/jp106.map.gz
    

    この時点で正しくキー入力が行えるかどうか確認しましょう。

    /etc/sysconfig/keyboard を編集します。

    # vi /etc/sysconfig/keyboard
    
    以下で編集します。
    KEYTABLE="jp106"
    MODEL="jp106"
    LAYOUT="jp"
    KEYBOARDTYPE="pc"
    

弊社環境では上記手順で設定が行えました。

※もしかすると、要らない設定や、別の機会に行った(必要な)設定もあるかもしれません。

注意点

VNC接続した際のキーボード設定と仮想マシンマネージャにおけるキーボード設定の組み合わせによってはカオスな状況になるようです。

今回のケースでは、先ずVNC接続における設定を正しく行い、その後にGUIコンソール利用時における設定を正しく行うというのがあるべき姿かと思われます。