
我正在從 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 時,可能會要求您先將已安裝作業系統的檔案系統掛載到某個掛載點,然後您需要將掛載點路徑作為檔案路徑名的前綴。例如,如果您掛載Kali根目錄檔案系統到/mnt
,損壞檔案的完整路徑將是/mnt/usr/lib/locale/locale-archive
。
找到正確的檔案後,將其重新命名為其他名稱(例如,locale-archive.broken
)。這可能允許 Kali 安裝啟動(儘管具有嚴格的 POSIX/美國英語本地化)。
一旦您的系統啟動並運行,並確認您沒有耗盡磁碟空間,您就可以使用該locale-gen
命令重新產生該locale-archive
檔案。
如果這導致問題再次出現,請locale-archive
使用 Live CD 再次刪除/重命名該文件,然後返回正常作業系統並運行apt reinstall locales
並apt reinstall util-linux-locales
刷新用於生成該locale-archive
文件的源文件(因為這些源文件也可能已損壞) ,然後locale-gen
重試。