
VMware から Kali を実行しています。Kali をアップグレードしましたが、再起動後にログインできなくなりました。再起動すると、tty1 経由で自動的にログインし、次のエラーが表示されます。
uname : loadlocale.c:129 : _nl_inter_locale_data : Asserting 'cnt<(sizeof (_nl_value_type_LC_TIME) / sizeof (_nl_value_type_LC_TIME[0]))' failed
/bin/uname failed caught signal 6
リカバリ モードでログインしようとしましたが、同じ失敗エラーが表示されました。
intel_rapl: no valid rapl domains found in package 0
echo: loadlocale.c : 129: _nl_inter_locale_data : Asserting 'cnt<(sizeof (_nl_value_type_LC_TIME) / sizeof (_nl_value_type_LC_TIME[0]))' failed
これらの問題の解決策をいくつか見ましたが、それらはすべてコマンドプロンプトから実行されます。ログインウィンドウで「e」を使用してログインコマンドを編集してアクセスしようとしましたが、同じ失敗メッセージが表示されました。ログイン時に「c」を使用してGNU GRUBコマンドラインで同じコマンドを実行しようとしましたが、何も機能しないようです。現在、どの方法でもログインしたりコマンドプロンプトにアクセスしたりすることはできません。
答え1
ロケール データ ファイル (日付と時刻の形式、コマンド メッセージの翻訳などを定義するファイル) が何らかの理由で破損しているようです。
これらのファイルはほぼすべてのコマンドで使用されているため、ほとんどのコマンドで同様のエラーメッセージが表示されます。これらのファイルを使用する国際化ライブラリは、おそらく標準のPOSIX形式と米国英語のメッセージにフォールバックすることでロケールファイルの不足に対処しますが、破損したロケール ファイルが原因でライブラリが失敗し、コマンドがクラッシュして何も役に立たなくなります。
Linux Live CD または同様のブート メディアを使用してシステムにアクセスしてみるとよいでしょう。Kali インストールのファイルシステムにアクセスできたら、/usr/lib/locale/locale-archive
ファイルを探してみてください。
(Live CD を使用する場合は、最初にインストールされた OS のファイルシステムをマウントポイントにマウントし、次にマウントポイント パスをファイル パス名の先頭に付ける必要があります。たとえば、Kali ルート ファイルシステムを にマウントする場合/mnt
、破損したファイルへの完全なパスは になります/mnt/usr/lib/locale/locale-archive
。)
正しいファイルが見つかったら、名前を別の名前 (たとえば、locale-archive.broken
) に変更します。これにより、Kali インストールが起動できるようになります (ただし、厳密な POSIX/米国英語のローカライズになります)。
システムを起動して実行し、ディスク容量が不足していないことを確認したら、locale-gen
コマンドを使用してファイルを再生成できますlocale-archive
。
これによって問題が再発する場合は、locale-archive
Live CD を使用してファイルを再度削除/名前変更し、通常の OS に戻って を実行し、apt reinstall locales
ファイルapt reinstall util-linux-locales
の生成に使用したソース ファイルを更新してlocale-archive
(それらのソース ファイルも破損している可能性があるため)、locale-gen
もう一度試してください。