kledgeb Ubuntuの使い方や日本語化、アプリの使い方を紹介しています。 Ubuntuの最新情報も紹介しています。

リカバリーモードの文字化け

「Ubuntu 15.04」以降、リカバリーモードでUbuntuを起動すると、以下のように文字化けが発生します。


「root」でシェルを起動すると、出力されるメッセージが同様に文字化けします。
以下の例は、ネットワークに接続せず以下のコマンドを実行した結果です。

apt update


文字化けしてます。

ロケールの確認

文字化けで疑うところと言えばロケールの設定です。
「root」でシェルを起動し、ロケールを調べてみます。


見ての通り、ロケールの設定が「ja_JP.UTF-8」になっています。
どうやら日本語のメッセージを出力しているようです。
しかしリカバリーモードでは日本語の文字を表示できないため、文字化けが発生しています。

Ubuntu 14.04と比較してみる

「Ubuntu 14.04」では文字化けが発生せず正常に出力されていました。


ローケルの設定

「Ubuntu 14.04」のリカバリーモードで「root」でシェルを起動し、ロケールを調べてみます。
以下のようになっています。


コマンドのメッセージ

上記と同じようにコマンドを実行しても、文字化けは発生しません。


というわけで

「Ubuntu 14.04」と同じロケール設定にし、メッセージのローカライズを行わないようにすればこの問題を回避できそうです。

シェルスクリプトの修正

リカバリーモードで使用されるシェルスクリプトを修正します。
リカバリーモードでは、「/lib/recovery-mode/l10n.sh」ファイルでロケールの設定を行っています。

1.シェルスクリプトを開く

端末」から以下のコマンドを実行し、修正するシェルスクリプトを「gedit」で開きます。

sudo -i gedit /lib/recovery-mode/l10n.sh

2.修正箇所の確認

32行目付近の以下の個所を探します。

 if ! in_lang_blacklist "$LANG"; then
     export LANG LANGUAGE
 fi


3.修正

以下の3行を挿入します。

 else
     export LANG=
     export LANGUAGE=


結果的に以下のようになります。

 if ! in_lang_blacklist "$LANG"; then
     export LANG LANGUAGE
 else
     export LANG=
     export LANGUAGE=
 fi

修正したらファイルを上書き保存します。
以上で修正は完了です。

4.動作確認

リカバリーモードで起動して、動作確認します。

リカバリーメニュー

リカバリーメニューは、以下のように文字化けが解消されています。


ロケールの設定

ロケールの設定は、「Ubuntu 14.04」と同じ設定になっています。


メッセージの出力

同じコマンドを実行すると、文字化けが解消されています。



関連コンテンツ
同一カテゴリーの記事
コメント
オプション