当Linux系统濒临崩溃时,别慌!这里有一份详细的拯救指南,从简单到复杂逐步解决问题。
# 在GRUB启动菜单时,按'e'编辑启动参数
# 在linux行末尾添加:
single
# 或
systemd.unit=rescue.target
# 按Ctrl+X启动# 如果系统有恢复模式选项,直接选择进入
# 这会挂载根分区为只读,然后获得root shelldf -h # 查看各分区使用率
du -sh /* 2>/dev/null | sort -hr | head -10 # 查找大目录# 清理日志文件
journalctl --disk-usage
journalctl --vacuum-time=7d # 保留7天日志
# 清理包缓存
apt-get clean # Debian/Ubuntu
yum clean all # CentOS/RHEL
dnf clean all # Fedora
# 清理临时文件
rm -rf /tmp/*
rm -rf /var/tmp/*# 首先卸载分区(如已挂载为只读)
umount /dev/sda1
# 使用fsck修复
fsck -y /dev/sda1 # 自动修复错误
fsck -c /dev/sda1 # 检查坏块# 如果根分区有问题,使用Live CD/USB启动
# 然后挂载并修复:
mkdir /mnt/root
mount /dev/sda1 /mnt/root
fsck -y /dev/sda1free -h
cat /proc/meminfo
# 查找内存泄漏进程
ps aux --sort=-%mem | head -10echo 3 > /proc/sys/vm/drop_cachesdmesg | tail -50 # 查看内核日志
journalctl -xb # 查看系统日志(systemd)
tail -100 /var/log/syslog # 查看系统日志systemctl --failed # 查看失败的服务
# 重启关键服务
systemctl restart systemd-journald
systemctl restart dbus
systemctl restart network-manager# 修复损坏的包
dpkg --configure -a
apt-get install -f
apt-get update --fix-missing
# 重新配置包
dpkg-reconfigure -a# 修复RPM数据库
rpm --rebuilddb
yum clean all
yum update当无法进入系统时,这是最有效的方法:
# 在Live环境中
fdisk -l # 查看分区
mkdir /mnt/root
mount /dev/sda1 /mnt/root # 挂载根分区
mount /dev/sda2 /mnt/root/boot # 挂载boot分区(如有)
mount --bind /dev /mnt/root/dev
mount --bind /proc /mnt/root/proc
mount --bind /sys /mnt/root/syschroot /mnt/root /bin/bash
# 现在可以在原系统中执行修复命令# 查看可用内核
dpkg -l | grep linux-image # Debian/Ubuntu
rpm -qa | grep kernel # CentOS/RHEL
# 在GRUB中选择旧内核启动# Debian/Ubuntu
apt-get install --reinstall linux-image-generic
# CentOS/RHEL
yum reinstall kernel在系统还能运行时立即备份:
# 备份重要数据
tar -czf /backup/home_backup.tar.gz /home
tar -czf /backup/etc_backup.tar.gz /etc
# 备份包列表
dpkg --get-selections > /backup/package_list.txt # Debian/Ubuntu
rpm -qa > /backup/package_list.txt # CentOS/RHEL# 设置日志轮转
logrotate -f /etc/logrotate.conf
# 定期更新系统
apt update && apt upgrade # Debian/Ubuntu
yum update # CentOS/RHEL
# 监控磁盘空间
# 可以添加到crontab中# 安装监控工具
apt install htop iotop nmon # Debian/Ubuntu
yum install htop iotop nmon # CentOS/RHEL记住,保持冷静,按步骤排查,优先备份重要数据!如果问题复杂,考虑使用Live环境进行修复或及时寻求专业帮助。