# NAS油条内核一键编译脚本 **Repository Path**: nasyt_old/kernel_compile ## Basic Information - **Project Name**: NAS油条内核一键编译脚本 - **Description**: 一键编译linux内核 - **Primary Language**: Shell - **License**: MulanPSL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 1 - **Created**: 2025-11-22 - **Last Updated**: 2026-01-04 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Linux内核编译自动化脚本使用说明 ## 脚本功能 这个shell脚本自动化了Linux内核的整个编译和安装流程,包括: - **系统要求检查** - 验证磁盘空间、内存和CPU - **依赖管理** - 自动安装编译所需的工具和库 - **源码获取** - 下载指定版本的内核源码 - **交互式配置** - 提供多种配置选项 - **并行编译** - 利用多核CPU加速编译过程 - **自动安装** - 安装内核并更新引导加载器 - **错误处理** - 完善的错误检测和恢复机制 ## 系统要求 - **操作系统**: Linux发行版(Ubuntu/Debian/CentOS/Arch Linux) - **磁盘空间**: 至少15GB可用空间 - **内存**: 建议4GB以上(越多编译越快) - **权限**: 普通用户(有sudo权限)或root用户 - **网络**: 稳定的网络连接(用于下载源码) ## 使用方法 ### 1. 下载脚本并设置权限 ```bash # 下载脚本到本地 wget https://your-server.com/compile_kernel.sh # 或手动复制脚本内容 # 添加执行权限 chmod +x compile_kernel.sh ``` ### 2. 运行脚本 ```bash # 以普通用户运行(推荐) ./compile_kernel.sh # 或以root用户运行 sudo ./compile_kernel.sh ``` ### 3. 跟随交互提示 脚本会引导您完成以下选择: 1. **内核版本选择** - 最新稳定版 (6.11) - 长期支持版 (6.6 LTS) - 自定义版本 2. **配置选项** - 基于当前系统配置(推荐) - 交互式配置(menuconfig) - 使用默认配置 ## 编译过程详解 ### 阶段1: 环境准备 - 检查系统资源(磁盘、内存、CPU) - 安装编译依赖包 - 验证用户权限 ### 阶段2: 源码获取 - 下载指定版本内核源码 - 解压到 `/usr/src` 目录 - 准备编译环境 ### 阶段3: 内核配置 - 根据用户选择配置内核 - 应用优化选项 - 生成编译配置 ### 阶段4: 编译构建 - 并行编译内核(使用所有CPU核心) - 编译内核模块 - 记录编译时间和进度 ### 阶段5: 安装部署 - 安装内核模块 - 安装内核文件到 `/boot` - 更新GRUB引导加载器 - 清理临时文件 ## 输出和日志 ### 控制台输出 脚本使用彩色日志输出: - 🔵 **蓝色 [INFO]**: 一般信息 - 🟢 **绿色 [SUCCESS]**: 成功操作 - 🟡 **黄色 [WARNING]**: 警告信息 - 🔴 **红色 [ERROR]**: 错误信息 ### 日志文件 - **编译日志**: `/usr/src/kernel_build.log` - 详细的编译过程记录 ## 使用示例 ```bash # 查看帮助信息 ./compile_kernel.sh --help # 运行完整编译流程 ./compile_kernel.sh ``` ### 示例输出 ``` =================================================================== Linux内核编译自动化脚本 =================================================================== [INFO] 检查系统要求... [SUCCESS] 系统要求检查通过 [INFO] 安装编译依赖... [SUCCESS] 依赖安装完成 [INFO] 选择内核版本... 将编译内核版本: 6.6 [INFO] 下载内核源码... [SUCCESS] 内核源码准备完成 [INFO] 配置内核选项... [INFO] 内核配置完成 [INFO] 开始编译内核... [SUCCESS] 编译完成!耗时: 1小时23分钟 [INFO] 安装内核... [SUCCESS] 内核安装完成 [SUCCESS] 所有步骤完成! ``` ## 故障排除 ### 常见错误及解决方案 **1. 权限不足** ```bash # 确保有sudo权限 sudo ./compile_kernel.sh ``` **2. 磁盘空间不足** ```bash # 清理磁盘空间 sudo apt autoremove sudo apt autoclean # 或使用tmpfs作为编译目录 ``` **3. 编译失败** ```bash # 查看详细错误日志 tail -f /usr/src/kernel_build.log # 常见解决方案 cd /usr/src/linux-VERSION make clean make menuconfig # 重新配置 ``` **4. 启动失败** - 在GRUB菜单选择旧内核启动 - 检查内核日志: `journalctl -b` - 使用救援模式修复 ### 手动干预选项 如果自动脚本失败,可以手动执行特定步骤: ```bash # 手动下载和配置 cd /usr/src wget https://cdn.kernel.org/pub/linux/kernel/v6.x/linux-6.6.tar.xz tar -xf linux-6.6.tar.xz cd linux-6.6 make menuconfig # 手动编译 make -j$(nproc) sudo make modules_install sudo make install sudo update-grub ``` ## 安全注意事项 1. **备份重要数据** - 编译前备份重要文件 2. **测试环境** - 建议先在虚拟机中测试 3. **保留旧内核** - 确保能回滚到已知工作版本 4. **逐步验证** - 每个阶段完成后验证结果 ## 性能优化建议 ### 内存优化 ```bash # 减少并发任务数避免OOM export MAKEFLAGS="-j2" ./compile_kernel.sh ``` ### 编译加速 ```bash # 使用tmpfs(需要足够内存) sudo mount -t tmpfs tmpfs /usr/src # 然后运行脚本 ``` ### 预配置优化 脚本会自动应用以下优化: - 并行编译(使用所有CPU核心) - 启用ccache缓存 - 优化编译参数 ## 版本历史 - **v1.0** (2025-11-22) - 完整的自动化编译流程 - 交互式配置界面 - 完善的错误处理 - 多发行版支持 ## 技术支持 如果遇到问题: 1. 查看脚本输出的错误信息 2. 检查 `/usr/src/kernel_build.log` 详细日志 3. 确认系统满足最低要求 4. 考虑在虚拟机中重新测试 --- **免责声明**: 编译内核有风险,可能导致系统不稳定。建议在生产环境中使用前充分测试。