Ubuntu 16.04关机/重启时卡住

我的Ubuntu 16.04在关机/重启时会挂起,需要我按住电源键关闭机器...我不知道如何报告这个问题并运行哪些命令来显示必要的硬件/系统日志信息?任何帮助都将不胜感激!

1当它似乎停顿时,请按ESC并注意显示器上的最后几行。将它们添加到您的问题中。 - Jos
10开个玩笑:你看到这条信息了吗:“现在可以安全关闭计算机”? - user300458
这里也有同样的问题。在BIOS中关闭USB 3.0遗留模式对我有效。 如何关闭USB 3.0遗留模式? - user576136
7看到这个问题的实际情况,我再也不好意思向Windows用户推荐Ubuntu了... - ROMANIA_engineer
唯一帮助我的是BIOS更新。如何知道你需要它:如果你无法退出BIOS设置,那么你完全需要它。我在MSI H170A PC Mate和Skylake上遇到了这个问题。之前,我在grub中添加了acpi=force并更新了内核到4.6.7。 - Gosha U.
4这真是尴尬!为什么这个简单的任务停止工作了???我找到的所有修复方法都不起作用,包括在grub行中添加内容、禁用交换空间,甚至更改图形驱动程序和回退到旧内核。什么都没用。这真是一个业余的错误。一个操作系统应该能够关机!! - Delorean
罗马尼亚工程师:我不是无缘无故叫它n00buntu的。不过,显然停顿和卡住是预期的行为。 - Owl
9个回答

我也遇到了这个问题。看起来是多个发行版中的一个错误。
我的简单解决方法是编辑`/etc/default/grub`文件中的一行:
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash acpi=force"

运行update-grub
现在每次都有效。我使用的是联想G50笔记本电脑。我相当确定在此笔记本上的以前(其他)Linux发行版中也更改了Grub中的这一行。

1这只是避免您按 <kbd>ESC</kbd> 键以查看关机日志信息。没有其他影响。(也许更新或重新生成 grub 文件修复了其他问题)。 - Frank N
我先尝试了 update-grub,但没有起作用。然后我将其更改为 GRUB_CMDLINE_LINUX_DEFAULT="acpi=force",这解决了我的问题。 - RedPixel
@Ernesto: 这对我有用。为了确认,我重启/关机了2-3次,每次都能正常启动。谢谢! - Saurav Kumar
对我来说没问题!谢谢 ;) - Sdra
这个方法有效。也许与运行dist-upgrade后的新内核版本有关? - xji
管理员锁定了添加新答案,但对我有效的是你的解决方案和这个链接:https://forum.level1techs.com/t/ubuntu-16-04-hanging-on-reboot/112413 - 设置GRUB_CMDLINE_LINUX_DEFAULT="quiet splash reboot=warm,cold,bios,smp,triple,kbd,acpi,efi,pci,force"解决了问题。我在HP ProLiant服务器上使用Xeon E5620和Ubuntu 16.04.02时遇到了问题。 - dotz
我不完全理解为什么这样会有效,但在我的情况下确实有效。我在Razer Blade 2016笔记本电脑上使用XUbuntu 16.04。 - MrJman006
适用于Ubuntu 16.04.4 LTS操作系统。 - Matjaž
@Ernesto:我在我的Ubuntu 16.04上尝试了相同的解决方案,但没有成功。我的grub文件配置如下:GRUB_DEFAULT=0#GRUB_HIDDEN_TIMEOUT=0GRUB_HIDDEN_TIMEOUT_QUIET=trueGRUB_TIMEOUT=10GRUB_DISTRIBUTOR=lsb_release -i -s 2> /dev/null || echo DebianGRUB_CMDLINE_LINUX_DEFAULT="quiet splash acpi=force"GRUB_CMDLINE_LINUX=""除了这些,我还需要改变其他什么东西才能使它工作吗? - yugantar kumar
非常感谢,这个帮我避免了重新安装操作系统的麻烦。 - Tobias Feil
谢谢,它有效了。但是为什么呢? - Shunjid Rahman

一旦你完成了工作,并关闭了所有应用程序以便关机或重新启动操作系统,请按照以下步骤来缓解压力。
1. 现在先尝试使用sudo swapoff -a && systemctl poweroff作为临时解决办法。 2. 在Xenial-proposed的systemd 229-4ubuntu5软件包中有一个潜在的修复方法。打开系统设置->软件和更新->开发者选项标签,勾选Pre-release (xenial-proposed)旁边的框,输入root密码,刷新缓存。在更新标签下,选择“立即显示更新”关闭系统设置。启动软件更新器并立即安装更新。 3. 如果问题仍然存在,请阅读这些错误报告:https://bugs.launchpad.net/ubuntu/+source/systemd/+bug/1464917以获取日志数据的信息,并按照建议提交新的错误报告。还请阅读错误报告:https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=788303。 4. 按照“调试启动/关机问题”部分的说明,在/usr/share/doc/systemd/README.Debian.gz中检查是否有任何挂起的任务。您需要在每次关机或重启之前启动调试shell,方法是输入:systemctl start debug-shell。在救援shell ctl+alt+F9中捕获journalctl -b的屏幕截图可能会有所帮助。还可以将systemctl list-jobssystemctl --failed的输出以及这些命令的输出都附加到同一个“filename.text”文件中,方法是在命令末尾添加>>filename.text,例如:journalctl -b >>filename.text journalctl -xe >>filename.text systemctl list-jobs >>filename.text systemctl --failed >>filename.text lsblk >>filename.text。所有这些内容将被追加到同一个文件中,供您在下次启动时分析,如果您提交了错误报告,将此文件附加到您的错误报告中可能会有所帮助。

更新

我遇到这些卡顿问题已经有一段时间了,最终我发现我的硬盘开始出现扇区故障等问题。所以,是时候更换新的硬盘并重新安装系统了。我按照Ubuntu的建议,在一个单独的启动硬盘上重新安装了操作系统,将交换分区作为第一个,根目录作为第二个,家目录作为第三个逻辑分区。从技术上讲,sda1是Grub引导程序,sda2是扩展分区,sda5、sda6、sda7分别是交换分区、根目录和家目录;sda3和sda4不存在。自那时以来,这个问题在新安装的硬盘上的操作系统上没有再出现过,大约已经过去了9个多月。我目前正在运行16.04.02 LTS版本,重启或关机时没有任何卡顿问题。之前的操作系统是Win7/Ubuntu双系统安装,交换分区位于硬盘末尾。

我并不是说这个问题与双系统安装、硬盘故障或者分区顺序有关,但在我的情况下,其中一个、两个或者所有这些因素都存在。现在,我不再遭受“Reached Target Shutdown”卡顿问题的困扰。


1第二个步骤对我起了作用,但是结果只有在另一次强制重启后才能看到。现在我可以关机/重新启动电脑了。 步骤:
  1. 搜索您的计算机 > 软件和更新 > 开发者选项标签 > 勾选预发布更新(xenial-proposed)> 关闭。
  2. 转到搜索您的计算机 > 软件更新器。
- ROMANIA_engineer
@xtrchessreal 你的第二步对我不起作用。在“达到目标关闭”之后,它一直输出“重新验证失败”。 - horaceT
@xtrchessreal 第一步也不是。 - horaceT
3对于那位匿名用户,他一直在对这个回答进行相同的破坏性编辑,请不要这样做!如果你对一个帖子有异议,请创建一个账户,一旦你获得了15点声望,你就可以给它投反对票来表达你的异议。这就是反对票的用途。当你拥有50点声望时,你还可以留下评论来详细说明你的观点。 - David Foerster
2@DavidFoerster 踩票需要 125声望 - Eliah Kagan

我在关机时遇到了一个问题,这是我所做的:
打开终端。
sudo -H gedit /etc/default/grub

更改这一行:
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"

GRUB_CMDLINE_LINUX_DEFAULT="acpi=force"

通过移除“quiet”和“splash”选项,可以在关机过程中显示文本信息,有助于查找可能出现的问题。

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash" 在这里移除“quiet”选项 将会在启动过程中显示文本输出,而移除“splash”选项 则会在启动时显示黑屏而不是启动画面。

保存并关闭 Gedit。

然后在终端中更新 Grub:

sudo update-grub

附加信息:

我注意到我还有一个正在运行的“停止作业”,所以我在/etc/systemd/system.conf中减少了超时时间:

sudo -H gedit /etc/systemd/system.conf

删除#并更改以下行中的时间。
DefaultTimeoutStartSec=5s

DefaultTimeoutStopSec=5s

然后运行:
sudo systemctl daemon-reload

这对我有用。

1好的,这个人对于将DefaultTimeoutStartSec设置为一个非常低的值有其他的看法。 - thewebjackal
acpi=force 强制关闭显示器,但电源按钮仍然保持开启状态。 - Manish Kumar Bisht
https://bugs.launchpad.net/ubuntu/+source/systemd/+bug/1457400 似乎与此有关。 - DustWolf

我之前也遇到了类似的问题,重启后会进入黑屏或者带闪烁光标的黑屏,但是从未成功过。需要注意的是,我的关机没有问题。
于是我打开了驱动管理器,安装了CPU的Intel-Microcode固件,然后关闭电脑,再次尝试重新启动操作系统,最终问题得以解决。

Changing from Do not update the CPU microcode to intel-microcode

我使用的是基于Ubuntu Xenial Xerus 16.04 LTS的Linux Mint Cinnamon 18.3。
在回答中添加用户ssasa的评论,因为它可能对其他人有帮助,并且可能会被"不再需要"的标记清除:
尝试了这里的每个答案,但都没有帮助。但这个答案最接近。 将开源驱动程序nouveau更改为Nvidia专有驱动程序,在我的情况下有所帮助。

1尝试了这里的每一个答案,但都没有帮助。不过这个方法是最接近的。在我的情况下,将开源驱动程序nouveau更改为Nvidia专有驱动程序有所帮助。 - ssasa

我已经尝试了这里几乎所有的建议。唯一解决我遇到的关机/重启问题的方法是将/etc/systemd/system.conf中的DefaultTimeoutStartSecDefaultTimeoutStopSec更改为'10':
sudo -H gedit /etc/systemd/system.conf

然后进行编辑

DefaultTimeoutStartSec=10s
DefaultTimeoutStoptSec=10s

Tdenham。我有同样的情况。我刚刚使用do-release-upgrade -d将系统从14.04升级到16.04。
如果您无法直接访问系统,并且确实需要重新启动,您可以尝试硬重置作为解决方法(如此处所述:https://major.io/2009/01/29/linux-emergency-reboot-or-shutdown-with-magic-commands/)。
echo 1 > /proc/sys/kernel/sysrq 
echo b > /proc/sysrq-trigger

这个方法应该有效。也许在第二个命令之前你应该运行sync

reboot -f可能有帮助,但我没有尝试过,因为如果服务器再次挂起,我无法访问它。

你可以检查/var/log/syslog文件。找到打开计算机的地方,并检查之前的行。你可以将它粘贴在这里。

我的syslog:

Apr 29 11:21:48 bow NetworkManager[875]: <warn>  [1461907308.0752] dhcp4 (em0): request timed out
Apr 29 11:21:48 bow NetworkManager[875]: <info>  [1461907308.0753] dhcp4 (em0): state changed unknown -> timeout
Apr 29 11:21:48 bow NetworkManager[875]: <info>  [1461907308.0918] dhcp4 (em0): canceled DHCP transaction, DHCP client pid 2437
Apr 29 11:21:48 bow NetworkManager[875]: <info>  [1461907308.0918] dhcp4 (em0): state changed timeout -> done
Apr 29 11:21:48 bow NetworkManager[875]: <info>  [1461907308.0929] device (em0): state change: ip-config -> failed (reason 'ip-config-unavailable') [70 120 5]
Apr 29 11:21:48 bow NetworkManager[875]: <warn>  [1461907308.0943] device (em0): Activation: failed for connection 'Wired connection 1'
Apr 29 11:21:48 bow NetworkManager[875]: <info>  [1461907308.0970] device (em0): state change: failed -> disconnected (reason 'none') [120 30 0]
Apr 29 11:21:48 bow NetworkManager[875]: <info>  [1461907308.1062] policy: auto-activating connection 'Wired connection 1'
Apr 29 11:21:48 bow NetworkManager[875]: <info>  [1461907308.1101] device (em0): Activation: starting connection 'Wired connection 1' (df58434d-16fc-4036-b1d2-2cae515dbf19)
Apr 29 11:21:48 bow NetworkManager[875]: <info>  [1461907308.1108] device (em0): state change: disconnected -> prepare (reason 'none') [30 40 0]
Apr 29 11:21:48 bow NetworkManager[875]: <info>  [1461907308.1133] device (em0): state change: prepare -> config (reason 'none') [40 50 0]
Apr 29 11:21:48 bow NetworkManager[875]: <info>  [1461907308.1152] device (em0): state change: config -> ip-config (reason 'none') [50 70 0]
Apr 29 11:21:48 bow NetworkManager[875]: <info>  [1461907308.1167] dhcp4 (em0): activation: beginning transaction (timeout in 45 seconds)
Apr 29 11:21:48 bow NetworkManager[875]: <info>  [1461907308.1221] dhcp4 (em0): dhclient started with pid 2444
Apr 29 11:21:48 bow dhclient[2444]: DHCPDISCOVER on em0 to 255.255.255.255 port 67 interval 3 (xid=0x6cc9f4a)
Apr 29 11:21:51 bow dhclient[2444]: DHCPDISCOVER on em0 to 255.255.255.255 port 67 interval 4 (xid=0x6cc9f4a)
Apr 29 11:21:55 bow dhclient[2444]: DHCPDISCOVER on em0 to 255.255.255.255 port 67 interval 11 (xid=0x6cc9f4a)
Apr 29 11:22:01 bow CRON[2453]: (root) CMD (/usr/local/lib/wifictl)
Apr 29 11:22:01 bow CRON[2450]: (CRON) info (No MTA installed, discarding output)
Apr 29 11:22:06 bow dhclient[2444]: DHCPDISCOVER on em0 to 255.255.255.255 port 67 interval 20 (xid=0x6cc9f4a)
.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................
Apr 29 11:23:34 bow rsyslogd: [origin software="rsyslogd" swVersion="8.16.0" x-pid="860" x-info="http://www.rsyslog.com"] start
Apr 29 11:23:34 bow rsyslogd-2222: command 'KLogPermitNonKernelFacility' is currently not permitted - did you already set it via a RainerScript command (v6+ config)? [v8.16.0 try http://www.rsyslog.com/e/2222 ]
Apr 29 11:23:34 bow rsyslogd: rsyslogd's groupid changed to 104
Apr 29 11:23:34 bow rsyslogd: rsyslogd's userid changed to 101
Apr 29 11:23:34 bow kernel: [    0.000000] Initializing cgroup subsys cpuset
Apr 29 11:23:34 bow kernel: [    0.000000] Initializing cgroup subsys cpu
Apr 29 11:23:34 bow kernel: [    0.000000] Initializing cgroup subsys cpuacct
Apr 29 11:23:34 bow kernel: [    0.000000] Linux version 4.4.0-21-generic (buildd@lgw01-21) (gcc version 5.3.1 20160413 (Ubuntu 5.3.1-14ubuntu2) ) #37-Ubuntu SMP Mon Apr 18 18:33:37 UTC 2016 (Ubuntu 4.4.0-21.37-generic 4.4.6)

似乎dhclient在请求重新启动时仍然尝试获取IP地址。
如果这是一个与硬件相关的问题,我已经粘贴了lspci的输出,以帮助进行故障排除。
00:00.0 Host bridge: Intel Corporation Atom Processor D2xxx/N2xxx DRAM Controller (rev 03)
00:02.0 VGA compatible controller: Intel Corporation Atom Processor D2xxx/N2xxx Integrated Graphics Controller (rev 09)
00:1c.0 PCI bridge: Intel Corporation NM10/ICH7 Family PCI Express Port 1 (rev 02)
00:1c.1 PCI bridge: Intel Corporation NM10/ICH7 Family PCI Express Port 2 (rev 02)
00:1d.0 USB controller: Intel Corporation NM10/ICH7 Family USB UHCI Controller #1 (rev 02)
00:1d.1 USB controller: Intel Corporation NM10/ICH7 Family USB UHCI Controller #2 (rev 02)
00:1d.2 USB controller: Intel Corporation NM10/ICH7 Family USB UHCI Controller #3 (rev 02)
00:1d.3 USB controller: Intel Corporation NM10/ICH7 Family USB UHCI Controller #4 (rev 02)
00:1d.7 USB controller: Intel Corporation NM10/ICH7 Family USB2 EHCI Controller (rev 02)
00:1e.0 PCI bridge: Intel Corporation 82801 Mobile PCI Bridge (rev e2)
00:1f.0 ISA bridge: Intel Corporation NM10 Family LPC Controller (rev 02)
00:1f.2 SATA controller: Intel Corporation NM10/ICH7 Family SATA Controller [AHCI mode] (rev 02)
00:1f.3 SMBus: Intel Corporation NM10/ICH7 Family SMBus Controller (rev 02)
01:00.0 Ethernet controller: Intel Corporation 82574L Gigabit Network Connection
02:00.0 Ethernet controller: Intel Corporation 82574L Gigabit Network Connection
03:00.0 Network controller: Qualcomm Atheros AR9227 Wireless Network Adapter (rev 01)

我尝试了几种方法,包括编辑/etc/default/grub,在关机前运行sudo swapoff -a等等... 但是这些方法都对我无效。
在BIOS中关闭USB 3.0传统模式对我有效。

我进入了高级设置 > USB配置 > 禁用了Legacy USB Support,但问题并没有解决。 - ROMANIA_engineer
1在BIOS中禁用传统模式并在grub中添加"acpi=force"的组合似乎起作用了。 - Jeremy Cook

我的解决方案在这里 here

但简单来说:
sudo vim /etc/default/grub
GRUB_CMDLINE_LINUX_DEFAULT="noefi"


我在Peach OSI TW 16.04 LTS上遇到了同样的问题,目前正在运行4.4.0-217-generic内核,但它始于4.4.0-216-generic。 - Jan Johansson
使用grub customizer编辑grub并在quiet splash后添加noefi似乎有效,但并非总是如此。根据Launchpad上的信息,这似乎是一个已确认的错误,并且似乎没有采取任何措施来更改它,因为16.04已经不再受支持。链接到Launchpad错误:https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1594023 - Jan Johansson
我的笔记本电脑是联想Thinkpad X300,配备英特尔160GB固态硬盘和Core2Duo处理器。它拥有最新版本的BIOS,并且在4.4.0-216-generic内核之前运行良好。 - Jan Johansson

我在我的ASUS Zenbook UX433FN上遇到了这个问题,解决办法是更新BIOS。我原来的BIOS版本是301,更新到了305。所有这些问题在更新后都消失了。
然后我重新安装了Ubuntu 18.04,并且顺利地安装了NVIDIA驱动程序,没有任何问题。
注意:我建议在安装其他更新之前先安装NVIDIA驱动程序,以验证是否可以成功安装NVIDIA驱动程序而不受其他因素的干扰。