当 Ubuntu 死机时我该怎么办?

ænd*_*rük 681 bug-reporting

所有操作系统有时都会死机,Ubuntu 也不例外。我应该怎么做才能重新获得控制权...

  • 只有一个程序停止响应?
  • 没有任何响应鼠标点击或按键?
  • 鼠标完全停止移动?
  • 我有英特尔 Bay Trail CPU?

在决定拔掉电源插头之前,我应该按照什么顺序尝试各种解决方案?

Ubuntu启动失败怎么办?是否有我可以遵循的诊断程序?

小智 559

如果它完全锁定,您可以重新启动它,这是一种比冷启动计算机更安全的替代方法。

REISUB 由:

在按住AltSysReq (Print Screen)键的同时,键入REISUB

R:  Switch to XLATE mode
E:  Send Terminate signal to all processes except for init
I:  Send Kill signal to all processes except for init
S:  Sync all mounted file-systems
U:  Remount file-systems as read-only
B:  Reboot
Run Code Online (Sandbox Code Playgroud)

REISUB 的一些助记符:

  • 如果你喜欢僵尸电影,就起来(从死里)
  • BUSIER倒退,因为系统比它应该的
  • ř EBOOT Ë VEN˚F小号ystem ù tterlyroken。
  • 还是经典:[R aising é lephants小号小号Ø ü tterlyO型圈

这是 SysReq 键:

系统请求键

注意:存在比重新启动整个系统更彻底的方法。如果SysReq关键的作品,你能杀的过程一个接一个使用Alt+ SysReq+ F。内核每次都会杀死最“昂贵”的进程。如果你想杀死一个控制台的所有进程,你可以发出Alt+ SysReq+ K

注意:您应该明确启用这些组合键。Ubuntu 附带 sysrq 默认设置 176 (128+32+16),它只允许运行REISUB 组合的SUB部分。您可以将其更改为 1(启用所有命令)或 244,这可能危害较小。去做这个:

sudo nano /etc/sysctl.d/10-magic-sysrq.conf
Run Code Online (Sandbox Code Playgroud)

并将176切换到244;然后

echo 244 | sudo tee /proc/sys/kernel/sysrq
Run Code Online (Sandbox Code Playgroud)

它会立即起作用!您可以通过按Alt+ SysReq+来测试F。对我来说,它杀死了活动浏览器选项卡,然后是所有扩展。如果你继续,你可以达到 X 服务器重启。


有关所有Alt+SysReq功能的更多信息,请点击此处

  • 如果您被迫这样做,请慢慢来。在每次按键之间间隔几秒钟,以便您调用的命令有机会在您转到下一个之前完成。 (124认同)
  • 如果您喜欢助记符:养大象太无聊了,或者如果系统完全崩溃,则重新启动事件。我也把它看作是 RSEIUB(饲养瘦大象是非常无聊的)。 (28认同)
  • 我实际上想出了这个并尝试以这种方式记住它:“在 UBuntu 中重置系统环境”。或“在系统 UBuntu 中重置环境”。 (14认同)
  • @Cerin [如何将 REISUB 与 Apple 超薄铝制键盘一起使用?](http://askubuntu.com/q/4401/1859) (7认同)
  • 如果您使用的是没有 SysRq 密钥的 Mac,您会怎么做? (4认同)
  • 如果我的键盘没有“SysRq”和“Print Screen”怎么办?在我的意大利语键盘中没有这些。我有“Stamp”、“Bloc Scorr”、“Pausa/Interr”。 (2认同)
  • 这仅在冻结时有效吗?!我只是尝试通过按 Alt+Fn+SysReq(戴尔笔记本电脑键盘)来测试它是否有效,但没有用! (2认同)

koa*_*ead 465

当单个程序停止工作时:

当程序窗口停止响应时,您通常可以通过单击窗口左上角的 X 形关闭按钮来停止响应。这通常会导致出现一个对话框,指出程序没有响应(但您已经知道这一点)并为您提供终止程序或继续等待它响应的选项。

有时这不会按预期工作。如果您无法通过正常方式关闭窗口,您可以点击Alt+ F2,键入xkill,然后按Enter。然后您的鼠标光标将变成X。将鼠标悬停在有问题的窗口上,然后左键单击将其杀死。右键单击将取消并使鼠标恢复正常。

另一方面,如果您的程序从终端运行,您通常可以使用Ctrl+停止它C。如果没有,找到它的命令的名称和进程ID,并用 告诉程序尽快结束kill [process ID here]。它发送默认信号SIGTERM( 15)。如果一切都失败了,作为最后的手段发送SIGKILL( 9): kill -9 [process ID here]。请注意,您只应将其SIGKILL用作最后的手段,因为该进程将被内核立即终止而没有机会进行清理。它甚至没有得到信号——它只是停止存在。

kill -9如果您有杀死的权限,则通过allways杀死进程是有效的。在某些特殊情况下,该进程仍被pstop(作为“僵尸”)列出- 在这种情况下,程序被杀死,但保留了进程表条目,因为以后需要它。)

当鼠标停止工作时:

如果键盘仍然有效,请按Alt+F2并运行gnome-terminal(或者,如果无法启动,请按Alt+ Ctrl+F1并使用您的用户名密码登录)。从那里你可以解决问题。我不打算在这里进行鼠标故障排除,因为我还没有研究过。如果您只想尝试重新启动 GUI,请运行sudo service lightdm restart. 这应该会关闭 GUI,然后它会尝试重新生成,将您带回登录屏幕。

当您拥有 Intel Bay Trail CPU 时

请参阅https://askubuntu.com/a/803649/225694

当所有东西,键和鼠标等等都停止工作时:

首先尝试Phoenix 的回答中概述的 Magic SysReq 方法。如果这不起作用,请按计算机机箱上的重置按钮。如果连这也不行,你只需要电源循环机。
愿你永远达不到这一点。

  • 我最近发现,不是上面引用的“ps $options | grep $process_name”,只需输入“pgrep $process_name”即可获得大致相同的结果(对于 $options 的某些值)。 (9认同)
  • 永远不要立即推荐“kill -9”。一次应该尝试首先用不太激烈的信号终止进程,如果所有其他方法都失败,则只使用 -9。 (6认同)
  • “愿你永远达不到这个地步。” 在大多数 Linux 中,这是唯一达到的点。我从未见过可以修复的 Linux 冻结。 (3认同)
  • `sudo service lightdm restart`:不太好 - 至少会杀死 Ubuntu 13.04 中的所有 gui 进程 - 对我来说,包括运行虚拟机等:( (2认同)
  • 我必须说这个 Alt+F2,输入 xkill 是一件我不知道的疯狂的事情,完全挽救了这一天 (2认同)

Isa*_*iah 64

您可以使快捷方式Ctrl+ Alt+Delete打开System Monitor,您可以使用它杀死任何无响应的应用程序。

  1. 打开系统?喜好 ?键盘快捷键,然后单击添加
    命令字段中,输入gnome-system-monitor。随意命名快捷方式。

在此处输入图片说明

  1. 单击Apply,然后单击Disabled 的位置。现在按下键Ctrl+ Alt+Delete

在此处输入图片说明

  1. 关闭键盘快捷键并尝试使用快捷键:

在此处输入图片说明

  • 不幸的是,系统监视器是 CPU 密集型的。它通常最多消耗我 20% 的 CPU,因此如果您的计算机陷入困境,启动 SM 只会更快地将其磨成泥土。 (27认同)
  • 但是如果 X 完全锁定,甚至内核挂起,您就无法使用键盘快捷键做太多事情。 (8认同)
  • 如果您可以打开系统监视器,您可以进入终端,在这种情况下,您的操作系统不会被冻结。 (4认同)
  • 不幸的是,系统监视器不是 Windows 上值得信赖的任务管理器。如上所述,只有(具有讽刺意味的是)Ubuntu 没有被冻结,它才会启动。即使它确实如此,无论如何它也没有响应。 (2认同)

fos*_*dom 48

您所描述的冻结可能与软件和硬件有关,并且您发现有时很难诊断。

硬件

如果这是台式 PC,请查看您的硬件卡。对于笔记本电脑和台式机,可能存在 acpi 类型问题。

暂时简化您的配置以仅将图形卡与标准键盘和鼠标连接可能会很有用。应移除所有其他卡。

对于 acpi 相关问题,请尝试noapic nomodeset在您的 grub 引导选项中引导。它也值得一试,acpi=off尽管这可能会产生其他不良影响,例如持续使用风扇。

也值得检查 bios 版本级别,看看供应商是否有更新的 bios 版本。自述文件应该有望揭示是否有任何更新的版本修复了崩溃和冻结。

软件

我注意到您已经尝试了标准的 270 驱动程序,但由于冻结而失败。您能否澄清一下开源驱动程序是否有类似问题?显然,您在测试期间不会获得 Unity。

图形冻结可以是驱动程序/compiz/X/内核之一/或组合

如果您愿意尝试以下任何建议,请先使用 CloneZilla 等良好的备份工具备份您的系统。您将需要一个外部媒体设备来接收图像,例如一个大的 U 盘/驱动器或单独的内部硬盘驱动器。

安装较新的 nVidia 驱动程序

使用“附加驱动程序”窗口停用(卸载)您当前的 173-nvidia 驱动程序。

有少量重要修复主要在 275 稳定版中,但在 280beta 中也有少量修复冻结 - 值得一试,看看这些是否适用于您的显卡。不幸的是,nvidia 没有详细说明他们专门修复了哪些卡(readme.txt)

但是 - 我强烈建议进行备份,除非您对反转 nvidia 安装有信心 - 特别是因为您在使用稍旧的 270 驱动程序时遇到了严重问题。我已经无数次使用了 clonezilla,它总能让我摆脱困境。不过,您确实需要一个大型外部驱动器 - USB 记忆棒/外部驱动器或单独的驱动器。

X 更新

最新的图形驱动程序已打包在x 更新 ppa 中

注意 - 这将导致您偏离标准基线 - 如果将来ppa-purge升级 PPA 本身,然后再升级。

您还可以从 nVidia 手动安装驱动程序:

尝试安装最新的 nvidia stable 275 或 280 驱动程序 - 32 位 280 驱动程序:ftp 站点64 位:280 驱动程序:ftp 站点

安装

CTRL+ ALT+F1切换到 TTY1 并登录

sudo service gdm stop
Run Code Online (Sandbox Code Playgroud)

停止 X 服务器

sudo su
Run Code Online (Sandbox Code Playgroud)

以 root 身份运行

cd ~/Downloads
sh NVIDIA-Linux-x86-280.04.run
Run Code Online (Sandbox Code Playgroud)

要安装 32 位驱动程序(相当于 64 位)然后重新启动。

卸载

sudo sh NVIDIA* --uninstall
Run Code Online (Sandbox Code Playgroud)

也删除 /etc/X11/xorg.conf

X/内核/Compiz

如果您运行具有效果的经典 Ubuntu,您是否会遇到与标准 Ubuntu 相同的冻结问题?如果您无法使用经典 Ubuntu(无效果)重现冻结,那么这将指向 compiz 问题。我会向 compiz 团队提出启动板错误报告。

如果有可用空间(例如 20Gb),您可以与最新的 oneiric alpha 一起进行双引导/安装。显然这本身是不稳定的,但它会带有最新的 X 和内核。您可能还需要手动安装上面的 beta 280 图形驱动程序,因为它可能不会在“附加驱动程序”窗口中提供。

如果在测试期间您没有看到相同的冻结活动,您可以尝试使用x-edges ppa提升您的 X 版本并在 Natty 中使用内核内核 3.0。走这条路线并不是真正可取的 - 并且可能会导致您将来出现升级问题 - 并且可能会出现其他不可预见的稳定性问题。再次,用于ppa-purge删除 PPA。

内核 3.0 与 PPA 一起打包 - 如果您打算稍后安装 nvidia 驱动器,则需要在重新启动之前从突触安装头文件以及内核本身。

这是一个测试 ppa - 如果您想尝试这条路线,请准备好备份。


Oli*_*Oli 39

如果您遇到很多死机,则您的硬件可能有问题。由于 RAM 不够理想,我过去每 48 小时就会出现一次硬锁定。Memtest86+ 测试 40 分钟后显示故障。将 RAM 换出更多(在保修期内),我现在 32 天,正常运行时间为 1 小时。

随着时间的推移,Ubuntu 不会像 Windows 那样在你的内存中泄漏它的内脏。即使有一个应用程序或一个糟糕的 X 视频驱动程序,您也可以非常简单地重新启动 LighttDM,然后继续前进。我实际上在这一次启动中经历了三个测试版的 nvidia 驱动程序:)

无论如何... 虽然知道如何轻柔重启是一件非常方便的事情,但查找、报告和修复系统应该是您的下一个优先事项。如果它是一个永远在线的系统,您应该能够轻松地在内核更新*之间进行更新,而无需重新启动。

*您应该在获得内核更新后重新启动,因为它们将是安全修复程序,在您重新启动到较新的内核之前不会应用。


Ner*_*est 36

当一切都停止工作,先尝试Ctrl+ Alt+F1去一个终端,在那里你可以杀死可能性X或其他问题的进程。

如果即使这样也不起作用,请尝试在按住Alt+ 的SysReq同时按下(慢慢地,每个之间间隔几秒钟)R E I S U B

这会将键盘置于原始模式,以各种状态结束任务,同步磁盘等,最后重新启动机器。这样做比拔掉插头会得到更好的结果。当然,如果这失败了,您几乎可以拔掉插头。

  • 记住“REISUB”的一种方法是“即使系统完全损坏也要重新启动”。 (9认同)
  • 我记得它使用“BUSIER”向后 (7认同)
  • 或“养大象太无聊了”:P (6认同)
  • 在`Ctrl`+`Alt`+`F1`和试图杀死进程之间,以及`Alt`+`SysRq`+`R` `E` `I` `S` `U` `B`,值得按下` Ctrl`+`Alt`+`删除`。如果你成功进入了基于文本的虚拟控制台(通过按下`Ctrl`+`Alt`+`F1`),这几乎总是会重新启动机器。 (4认同)

tho*_*ace 33

此外,有时只是 X-Server 挂起 - 当您使用 Compiz 时,我最常发现这种情况。

如果是这种情况,您可以杀死 X,它会重新启动并让您返回登录屏幕。

默认顺序是Ctrl+ Alt+Backspace

尽管默认情况下这是关闭的(大概是新用户不小心点击了它)并且可以像这样重新打开:

  1. System? Keyboard(即键盘首选项对话框)
  2. 布局选项卡
  3. 单击选项按钮
  4. 按键序列杀掉X server点检查Ctrl+ Alt+Backspace

  • 如果您的视频驱动程序使用内核模式设置 (KMS),这不太可能足以解决锁定问题,您必须使用 sysrq 或电源循环。(继续尝试 CAB,它显然不会受到伤害;当应用程序(如 compiz/unity)卡住时它确实可以工作,而不是 X 本身,但是在这种情况下,此页面上的其他答案会更好)。但是当它不起作用时,现在你知道为什么了。:-) (3认同)

Ext*_*der 29

当完全冻结发生时,我的第一个最爱 - Alt+ SysRq+ K

该组合杀死 X,并将我返回到图形登录屏幕。如果这不起作用,请尝试Alt+ SysRq+ R E I S U B


des*_*gua 19

DoR 和 Phoenix 已经很好地回答了这个问题。为了使此页面更完整,我将添加:

如果只有 X 被“破坏”,那么您可以使用内核来杀死它:

SysRq+ Alt+K

对于笔记本电脑(取决于型号,如果“SysRq”以蓝色书写,则通常需要):

Fn+ SysRq+ Alt+ KFn按下后松开SysRq)。


Flo*_*oyd 19

在这种情况下,您可以尝试CTRL- ALT-F1进入控制台。然后用你的密码登录。

重新启动图形用户界面

您可以尝试使用以下命令重新启动图形桌面:

sudo service lightdm restart
Run Code Online (Sandbox Code Playgroud)

如果您运行的是 Ubuntu 11.04或更早版本,则应改用它(gdm以前是默认显示管理器):

sudo service gdm restart
Run Code Online (Sandbox Code Playgroud)

如果您使用的是 Kubuntu,那么默认的显示管理器是kdm,因此您应该使用:

sudo service kdm restart
Run Code Online (Sandbox Code Playgroud)

如果你正在使用其他的显示管理器,替换ligthdm/ gdm/kdm它的名字。

重新启动机器

如果要进行干净的系统重启,请使用:

sudo shutdown -r now
Run Code Online (Sandbox Code Playgroud)


小智 18

我所做的是打开一个终端,例如。Ctrl+ Alt+F2

登录并使用终端杀死滞后的进程

ps -e | grep <procesname>
Run Code Online (Sandbox Code Playgroud)

这显示了具有该名称的进程的processID

(sudo) kill <processID>
Run Code Online (Sandbox Code Playgroud)

这会安全地关闭进程,以防万一不起作用,请使用

(sudo) kill -9 <processID>
Run Code Online (Sandbox Code Playgroud)

有关这些命令的更多信息,请使用手册页。

您可以使用Ctrl+ Alt+返回图形用户界面F7

  • `ps` 和 `grep PROCESS` 可以替换为 `pgrep PROCESS` 调用,你的整个过程可以简单地替换为 `pkill PROCESS` 或 `killall PROCESS`。 (8认同)

Li *_* Lo 14

要诊断冻结,您应该能够使用网络控制台(或串行串行控制台)。按照此处概述的设置说明进行操作。


Bry*_*yce 14

首先要看的是是否只是 X 被冻结,或者整个系统被冻结。启用 ssh,然后 ssh 进入系统。如果您无法通过 ssh 进入,则可能是内核锁定。如果您可以ssh 进入,那么它可能只是 gpu 锁定。

接下来尝试重新启动 X。通过重新启动显示管理器来执行此操作:

如果这有效,那么它可能是一个 X 错误。如果它仍然不起作用,那么您的内核 drm 驱动程序中可能存在 GPU 锁定。此时了解您是在运行 -ati(开源)驱动程序还是 -fglrx(闭源代码)驱动程序会很有用。


Ham*_*ner 12

如果您必须进行硬关机,我会想知道内存 (RAM) 是否出现故障。在您下次启动时,尝试运行 memtest86。去做这个:

  • 开机时按住shift键
  • 将出现 GRUB 菜单
  • 使用光标键选择最后一个选项“memtest86”
  • 按回车

你会得到一个基本的显示,它会尝试在你的所有 RAM 中读取和写入大量值。只要没有失败,您就会看到绿色状态。如果有任何故障,它将变为红色。在这种情况下,您至少需要更换一根 RAM。

还有诊断硬件故障的社区文档


Mih*_*otă 12

如果你曾经使用魔法SysRq键作为第一个答案建议,只要尝试与得到的键盘工作的首位Alt+ SysRq+ R; 然后尝试Ctrl+ Alt+F1一次。

它可能会起作用,您可以节省重新启动的时间。只有当它不起作用时,您才应该尝试整个REISUB序列。


Mit*_*tch 10

只需按键盘上的Ctrl+ Alt+F1即可打开 TTY1。当它打开时,运行 Kill 命令。下面举例。

首先您使用: ps 这将向您显示所有正在运行的进程(如果您想逐页查看结果,则为“ps | less”)然后您查找要终止的进程的 PID。使用后:kill pid

kill 命令 - 停止进程运行

语法:kill [-s sigspec] [-n signum] [-sigspec] jobspec 或 pid kill -l [exit_status]

描述:大多数现代 shell,包括 Bash,都有一个内置的 kill 函数。在 Bash 中,信号名称和编号都是

接受作为选项,参数可以是作业或进程 ID。可以使用 -l 选项报告退出状态:成功发送至少一个信号时为零,如果发生错误则为非零。使用来自 /usr/bin 的 kill 命令,您的系统可能会启用额外的选项,例如能够从您自己的用户 ID 以外的其他人处终止进程并按名称指定进程,如 pgrep 和 pkill。如果没有给出,两个 kill 命令都会发送 TERM 信号。

来源:http : //www.linuxforums.org/forum/newbie/53976-end-tasks-linux-like-task-manager-windows.html

来源:http : //webtools.live2support.com/linux/kill.php


小智 7

我认为没有完美的发行版这样的东西,即使在 Windows 中他们也有这种死亡屏幕。

  • 打开另一个终端Ctrl+ Alt+ F2

  • 使用您的用户名和密码登录。

  • 发出这个命令:

    sudo /etc/init.d/gdm restart
    
    Run Code Online (Sandbox Code Playgroud)

    这会重新启动或将您从当前会话中注销,但不会重新启动。

然后Ctrl+ Alt+F7去找回你的图形界面。


Kon*_*ask 7

你可以随时做Alt+F2killall <program>xkill点击你想砸的窗口!


fos*_*dom 7

(社区wiki答案-解决方案最初埋在OP 问题中

解决方案:

解决了。

我的特殊问题是我的显卡(集成 Radeon 9000 系列)。netconsole 显示我收到错误:"reserve failed for wait". 经过反复试验,我手动配置了显卡并禁用了硬件加速。完全解决了这个问题。

这是我所做的:

手动创建的 xorg.conf

Ubuntu 会自动配置 xorg.conf 并且不使用文件。要编辑这个文件,你必须告诉 Ubuntu 明确创建一个然后编辑它。以下是步骤:

  1. 重启系统
  2. Shift作为 GRUB 引导保持
  3. 在 GRUB 登录菜单中选择 root 终端
  4. 执行: X -config xorg.conf.new
  5. 复制: cp xorg.conf.new /etc/X11/xorg.conf

禁用硬件加速

以下内容特定于我的 Radeon 卡,但我确信其他卡也有类似的设置。

  1. 编辑 xorg.conf
  2. 找到显卡的“设备”部分
  3. 取消注释“NoAccel”选项并设置为“True”
  4. 保存+重启

希望有帮助。


Ski*_*izz 5

当您切换到 TTY 视图时,您可能会获得一些额外的信息。按Ctrl+ Alt+F1得到这个,使用Ctrl+ Alt+ F7(或可能F8)要回的GUI。您可以对大多数 F 键进行不同的会话,但这完全是不同的问题。


小智 5

最简单的解决方案是将“强制退出”小程序添加到 Gnome 顶部面板,当程序没有响应时,单击强制退出,然后单击应用程序。

我对这么多答案感到惊讶,这没有提到。当然,你总是ps -A可以grep为你的程序名称做一个和管道。还有kill -9那个。我更喜欢简单。


小智 5

我的 ubuntu 非常容易冻结(每天可能会冻结 20 次)。我也使用魔法 sysrq 密钥,但不是使用它来重新启动或终止 xserver,而是使用调用 oom_kill 的“f”命令,从而有效地删除进程。我只见过这种下拉 chrome 标签(因为我往往一次打开很多重量级标签)。无论如何,这让我在 95% 的时间里摆脱了这个烂摊子。

因此,当我的 ubuntu 冻结(锁定、鼠标停止响应等)时,我按住alt+sysrq然后点击f(如果您没有正确执行此操作,它将截取屏幕截图)。在 ubuntu 恢复活力之前,我通常必须重复几次这个组合。

如果我没有发现这个,我早就放弃了 ubuntu,希望它可以帮助某人!


归档时间:

查看次数:

810322 次

最近记录:

4 年,8 月 前