最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
如何通过修改配置为基础 CentOS 镜像默认注入中文内核
时间:2026-07-13 08:58:02 编辑:袖梨 来源:一聚教程网
基础CentOS镜像默认不含cjktty中文内核补丁,需手动编译集成:下载对应版本内核源码,克隆cjktty-patches并打补丁,复用现有.config配置,编译安装新内核,再配合glibc-langpack-zh、wqy-zenhei-fonts及locale设置实现完整中文支持。
基础 CentOS 镜像默认不包含中文内核支持,所谓“注入中文内核”并非简单复制文件,而是指在构建镜像时提前集成支持中文显示(特别是控制台 tty)的内核模块与补丁,核心是 cjktty 补丁 —— 它为 Linux 内核增加中文字体渲染、GB2312/GBK 编码支持及中文控制台字体加载能力。
确认内核是否已含 cjktty 支持
标准 CentOS 官方内核不含 cjktty。需验证当前内核是否已打补丁:
- 检查内核配置:运行
zcat /proc/config.gz | grep -i cjktty(若提示无此文件,则需先安装kernel-devel并从/boot/config-$(uname -r)查看) - 查看已加载模块:
lsmod | grep cjktty—— 若无输出,说明未启用 - 观察控制台:切换到 tty(Ctrl+Alt+F2),输入中文字符是否正常显示或乱码
在镜像构建阶段注入中文内核
适用于 Docker 构建或 Kickstart 自动化部署场景。关键是在构建时编译并安装带 cjktty 的内核:
- 下载对应版本内核源码(如
linux-5.17.tar.xz),解压至构建环境 - 克隆或下载
cjktty-patches(推荐从https://github.com/zhmars/cjktty-patches获取匹配内核版本的 patch) - 执行补丁注入:
patch -Np1 < ../cjktty/v5.x/cjktty-5.17.patch - 复用现有配置:
cp /boot/config-$(uname -r) .config,再运行make olddefconfig确保新选项被合理继承 - 编译安装:
make -j$(nproc) && make modules_install && make install - 更新 grub 配置:
grub2-mkconfig -o /boot/grub2/grub.cfg
配套设置中文系统环境
仅内核支持不够,还需语言环境与字体协同:
- 安装中文语言包:
yum install -y glibc-common glibc-langpack-zh - 安装中文字体:
yum install -y wqy-zenhei-fonts - 设置系统 locale:
echo 'LANG="zh_CN.UTF-8"' > /etc/locale.conf - 生成 locale 数据(可选但推荐):
localedef -c -i zh_CN -f UTF-8 zh_CN.UTF-8
制作最小化中文基础镜像
若用于容器或云镜像,建议精简流程:
- 使用 ELRepo 提供的预编译 kernel-lt(含部分中文支持),但注意其默认不含 cjktty;如需完整控制台中文,仍需自行编译
- 在 Dockerfile 中,将编译好的内核、initramfs、vmlinuz 拷贝进镜像,并替换
/boot下对应文件 - 通过
grubby --set-default或修改/etc/default/grub中GRUB_DEFAULT锁定新内核 - 最后清理编译中间文件,减小镜像体积