返回文章列表
服务器

Linux 开机后无限循环弹出未知窗口,最终导致系统崩溃怎么办?

庙宇
2025-11-24
2个月前
Linux 开机后无限循环弹出未知窗口,最终导致系统崩溃怎么办?

一、现象

Linux 开机后无限循环弹出未知窗口,最终导致系统崩溃。

通常是由于以下原因之一:

  1. 某个图形界面程序(GUI 应用)被错误地加入自启动项,且该程序存在 bug 或配置错误,不断崩溃并重启;
  2. 桌面环境(如 GNOME、KDE、XFCE)的自动启动脚本异常;
  3. systemd 用户服务或 cron 任务触发了 GUI 程序;
  4. 恶意软件或脚本注入(较少见,但需排查);
  5. 显示管理器(如 GDM、SDDM、LightDM)配置损坏。

二、解决办法

解决思路:绕过图形界面 → 进入命令行 → 排查并删除问题启动项

2.1 第一步:进入 TTY 命令行终端(绕过图形界面)

在开机卡在循环弹窗时,按下组合键:

Ctrl + Alt + F2

(F1~F6 都是文本终端,F7/F8 通常是图形界面) 你会看到一个纯黑背景的登录提示:

Ubuntu 22.04 LTS hostname tty2hostname login:

输入你的用户名和密码(密码输入时不会显示字符,正常输入后回车即可)。

成功登录后,你就进入了命令行环境,可以安全操作,不受图形界面干扰。

2.2 第二步:停止图形界面(可选,防止干扰)

# 如果使用 systemd(大多数现代发行版)sudo systemctl stop gdm      # GNOME(Ubuntu 默认)# 或sudo systemctl stop sddm     # KDE# 或sudo systemctl stop lightdm  # XFCE / LXDE / 旧版 Ubuntu

这会关闭图形界面,释放资源,避免后台继续弹窗。

2.3 第三步:排查自启动项

  1. 检查用户级自启动目录(最常见原因) 图形界面应用通常通过以下路径自启动:
# GNOME / XFCE / 大多数桌面环境ls ~/.config/autostart/# 查看内容cat ~/.config/autostart/*.desktop

重点关注:

文件名可疑(如 unknown.desktop, update.sh.desktop) Exec= 行指向一个脚本或程序,例如:

[Desktop Entry]Type=ApplicationExec=/home/user/myscript.shHidden=falseNoDisplay=falseX-GNOME-Autostart-enabled=trueName=Unknown App

解决方法:删除或重命名问题文件

mv ~/.config/autostart/suspicious.desktop ~/.config/autostart/suspicious.desktop.bak
  1. 检查系统级自启动
ls /etc/xdg/autostart/

不建议直接删除这里的文件,除非确认是恶意或错误配置。可先备份。

3. 检查 systemd 用户服务

systemctl --user list-unit-files --type=service | grep enabled

查看是否有异常服务,例如:

systemctl --user status suspicious.service

禁用它:

systemctl --user disable suspicious.service
  1. 检查 cron 定时任务(可能触发 GUI 程序)
crontab -l          # 当前用户的 cronsudo crontab -l     # root 的 cron

如果发现类似:

* * * * * /usr/bin/zenity --info --text="Hello"

→ 这会导致每分钟弹窗!

编辑并删除:

crontab -e
  1. 检查 ~/.bashrc、~/.profile、~/.xinitrc 等登录脚本 有些用户误在这些文件中加入了 GUI 命令(如 gnome-terminal &),导致每次登录就启动。
grep -n "zenity\|kdialog\|notify-send\|.*\.sh" ~/.bashrc ~/.profile ~/.xprofile 2>/dev/null

如有可疑行,用 nano 或 vim 编辑删除。

2.4 第四步:重启图形界面或 reboot

# 方法1:重启显示管理器(恢复图形界面)sudo systemctl start gdm   # 或 sddm / lightdm# 方法2:直接重启(推荐,确保干净)sudo reboot

观察是否还会弹窗。

2.5 第五步:若仍无法解决 —— 安全模式 or Live USB

方案 A:启动到“恢复模式”(Recovery Mode)

开机时长按 Shift(BIOS)或按住 Esc(UEFI)进入 GRUB 菜单。 选择 “Advanced options for Ubuntu” → “Recovery Mode”。 选择 “root shell” 获取 root 权限。 挂载根分区为可写:

mount -o remount,rw /

然后按上述步骤排查 /home/你的用户/.config/autostart/ 等目录。

方案 B:使用 Live USB 启动

用 Ubuntu Live USB 启动。 挂载原系统分区:

sudo mkdir /mnt/rootsudo mount /dev/sda2 /mnt/root   # 根据实际情况调整分区

删除问题文件:

sudo rm /mnt/root/home/yourname/.config/autostart/bad.desktop

重启,拔掉 U 盘。

三、额外建议:排查恶意软件(如怀疑中毒)


可以优先查看是否中毒

# 查看可疑进程ps aux | grep -E "(zenity|kdialog|python|sh|bash)" | grep -v grep# 查看最近修改的脚本find /home -name "*.sh" -mtime -7 2>/dev/null# 检查网络连接ss -tulnp


本文内容仅供参考,不构成任何专业建议。使用本文提供的信息时,请自行判断并承担相应风险。

分享文章
合作伙伴

本站所有广告均是第三方投放,详情请查询本站用户协议