问题描述

某天安装应用顺便滚了下系统, 重启后原本的中文界面全变成英文…

相关环境

操作系统:Manjaro-gnome
内核版本:linux59
glibc版本:2.33.3

具体表现

  1. 系统界面变英文
  2. 自带的Terminal打不开, zsh失效 ( yakuake可用但不支持中文, 这个时候就体现出额外安装不同terminal的好处了 )
  3. locale命令出现如下错误:
locale: Cannot set LC_CTYPE to default locale: No such file or directory
locale: Cannot set LC_MESSAGES to default locale: No such file or directory
locale: Cannot set LC_ALL to default locale: No such file or directory

出错原因

locale中LC_CTYPE等选项所设置的编码方式对应文件丢失
例如:

LC_CTYPE="zh_CN.UTF-8"

解决办法

0.尝试使用terminal, 如果没有可用的terminal则依次尝试如下:

a) 打开应用商店安装yakuake等第三方terminal
b) 用LiveCD自带的系统, 联网, 分别mount 系统根目录, dev, sys proc到对应位置, 后使用chroot修复系统

例如:

sudo mkdir /mnt/manjaro
sudo mount -t ext4 /dev/sda2 /mnt/manjaro
sudo mount -o bind /dev /mnt/manjaro/dev
sudo mount -o bind /proc /mnt/manjaro/proc
sudo mount -o bind /sys /mnt/manjaro/sys
sudo chroot /mnt/manjaro

1. 检查locale配置

sudo nano /etc/locale.gen
# 通过ctrl+w查找需要的编码(如"zh_CN.UTF-8")
# 去掉找到的行前面的井号

2. 生成locale文件

sudo locale-gen

3. 重启系统

避免踩坑

1. 网上查到一些同类问题表示是由于glibc这个包更新后产生的.

建议在不确定旧版的glibc可用的情况下不要盲目降级, 有可能因为降级这个关键包而进不了系统.
如果不小心踩到上述坑, 可以考虑利用LiveCD chroot到系统然后用系统自带的pacman更新(见"解决办法"1.b)

pacman -S glibc lib32-glibc
Logo

更多推荐