CentOS 环境下 FetchLinux 故障排查指南
一 快速定位思路
- 明确症状:是命令执行失败、服务起不来、网络不通,还是安装器(如 Anaconda)报错。
- 分层排查:先看网络连通与DNS,再看防火墙/SELinux,随后检查服务与日志,最后验证配置与依赖。
- 复现与最小化:用最小化命令与参数复现,逐步排除变量(如换源、换网络、关闭安全策略)。
- 留痕取证:保存命令输出、关键日志片段与时间点,便于回溯与求助。
二 网络与系统连通性检查
- 链路与接口:
- 查看网卡与状态:ip link;必要时用 ethtool 检查物理链路与速率。
- 临时获取地址:dhclient 或 nmcli 重新获取。
- 地址与路由:
- 查看地址与路由:ip addr、ip route。
- 连通性测试:
- ICMP 与端口:ping 、nc -vz 。
- HTTP/HTTPS:curl -I https:// 或 curl -v 观察重定向与证书。
- 路径跟踪:traceroute (或 mtr 持续采样)。
- DNS 解析:
- nslookup 、dig +short;必要时检查 /etc/resolv.conf 与 /etc/nsswitch.conf。
- 防火墙与策略:
- firewalld:firewall-cmd --list-all;按需放行端口/服务。
- nftables/iptables:nft list ruleset 或 iptables -S;确认未拦截目标端口。
- SELinux:
- 临时宽松:setenforce 0 验证是否为 SELinux 导致(验证后请恢复为 setenforce 1)。
- 审计线索:ausearch -m avc -ts recent 或 journalctl | grep -i denied。
- 系统服务与日志:
- 网络服务:systemctl status NetworkManager 或 systemctl status network;必要时 systemctl restart。
- 系统日志:journalctl -xe、tail -n50 /var/log/messages。
- 资源与磁盘:
- 资源:top/free -m;磁盘:df -h、du -sh 。
- 若你遇到的是软件源报错(如“failed to fetch linux”),优先检查仓库地址可达性、网络与防火墙策略,再考虑更换镜像源并更新缓存。
三 FetchLinux 应用与服务侧排查
- 确认对象:明确“FetchLinux”是某个命令行工具、自研脚本,还是系统服务/安装器。
- 服务与单元:
- 查看状态:systemctl status fetchlinux.service;失败则 journalctl -u fetchlinux.service -xe。
- 日志与输出:
- 应用日志:检查 /var/log/fetchlinux/ 或配置文件指定的日志路径;通用系统日志 /var/log/messages、/var/log/syslog。
- 内核与启动:内核消息 dmesg | tail -n100;必要时 dmesg | grep -i fetchlinux。
- 配置与语法:
- 核对配置文件(如 /etc/fetchlinux/config.conf)的语法与路径;若提供校验工具优先使用。
- 依赖与二进制:
- 动态依赖:ldd /path/to/fetchlinux;缺失库按依赖包补齐。
- 可执行权限与解释器:file /path/to/fetchlinux;脚本首行 #!/usr/bin/env bash 是否正确。
- 网络连通(应用视角):
- 在应用宿主机上用 curl -I 验证上游可达;必要时在应用内开启更详细日志。
- 调试与回滚:
- 启用调试模式(如 fetchlinux --debug);若近期变更引发问题,优先回滚到上一个稳定版本/配置。
四 安装器与系统安装阶段的专项排查
- 介质与镜像:
- 校验 ISO 完整性(sha256sum),必要时重新下载;使用 Rufus/Etcher 可靠写盘。
- BIOS/UEFI 与启动:
- 检查启动顺序;必要时切换 UEFI/Legacy、关闭 Secure Boot;SATA 控制器模式优先 AHCI。
- 显卡与驱动:
- 安装界面卡顿可尝试内核参数:nomodeset、rd.driver.blacklist=nouveau。
- 存储与分区:
- 若“无法识别硬盘/分区失败”,用 LiveCD/LiveUSB 检查 lsblk/fdisk -l;清理旧分区表或重建 GPT/MBR;确保有合理的 /boot、/、swap。
- 日志定位:
- 安装器日志位于 /tmp/anaconda.log 等,按日志提示修复对应环节。
五 高频场景与处置建议
- 场景A:命令报“failed to fetch linux”或仓库 404/超时
- 处理:核对仓库地址与 baseurl/mirrorlist;用 curl -I 测试;检查 firewalld/iptables 与代理;更换镜像源并更新缓存。
- 场景B:服务启动失败(fetchlinux.service)
- 处理:systemctl status 与 journalctl -xe 定位;核对配置路径、用户权限、依赖库;必要时 strace -f 跟踪系统调用。
- 场景C:网络不通或 DNS 解析失败
- 处理:ip link/addr/route 检查地址与路由;nslookup/dig 验证解析;检查 /etc/resolv.conf 与 firewalld 策略。
- 场景D:SSH 登录很慢
- 处理:编辑 /etc/ssh/sshd_config,将 GSSAPIAuthentication no、UseDNS no,重启 sshd。
- 场景E:安装器找不到硬盘或分区失败
- 处理:校验 ISO、检查 UEFI/Secure Boot/AHCI、清理旧分区表、合理规划分区,并查看 /tmp/anaconda.log。