更新后 Ubuntu 14.04 启动挂在徽标处

Cha*_*ed0 2 boot upstart

昨天,我做了一个update/ dist-upgrade。今天,我打开了机器,它挂在加载屏幕上,带有徽标和循环点 - 我在这个屏幕上等了大约一个小时几次,但没有结果。如果我upstart用 ctrl-alt-del中断,启动将恢复/完成,但它使我进入 tty 控制台登录。X几秒钟后确实开始了,但会立即显示有关图形配置不正确的对话框。更新:X 问题已通过执行解决apt-get install nvidia-current。中断问题仍然存在。

不幸的是,我发现的关于为什么会发生这种情况的每一条线索都变成了死胡同。这是我的boot.log(来自/var/log)显示我中断启动的地方。您可以看到它在开始“启用剩余的启动时加密块设备”(来自cryptdisks)时挂起,但删除该服务没有任何区别。我已经尝试了这个 Mint bug report 中的几乎所有内容,它描述的症状几乎与我的相同,但无济于事。在这一点上,我相当确定这cryptdisks是一个红鲱鱼,它完全是另一回事。

我还发现从恢复模式恢复启动似乎以不同的顺序加载东西。Upstart仍然挂起,但不是之后cryptdisks。如果我按 ctrl-alt-del,它会将我带到图形登录管理器而不是 tty,并且我可以成功登录。然而,该系统仍然没有完全发挥作用。USB 即插即用似乎不起作用,我无法使用我的第二台显示器,我必须手动start resolvconf访问互联网。这是其中一家初创公司的 boot.log。

我应该补充一点,我正在使用 加密我的硬盘LUKS,并且在我成功输入解密密码后挂起。这是我的fstab,以防万一它与事情有关:

# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
# <file system> <mount point>   <type>  <options>       <dump>  <pass>
/dev/mapper/ubuntu--vg-root /               ext4    errors=remount-ro 0       1
# /boot was on /dev/sda1 during installation
UUID=9e7c1e90-f3e4-4075-b3b0-e3ccb6d933c7 /boot           ext2    defaults        0       2
/dev/mapper/ubuntu--vg-swap_1 none            swap    sw              0       0
Run Code Online (Sandbox Code Playgroud)

这里发生了什么?

Cha*_*ed0 5

根本原因是我的/tmp目录中有大量文件。

我之前使用该/tmp目录存储了数百万个文件。事实证明,那里有那么多文件会导致清理服务/tmp需要很长时间(废话)。将文件移出后/tmp,问题解决。它与升级无关;那只是一个巧合。


以防它以后对任何人有帮助,这是我用来解决它的过程。我启用了“魔术SysRq键”,通过改变etc/sysctl.d/10-magic-sysrq.conf。然后,我通过重新启动重现了该问题;当启动挂起时,我点击Alt- SysRq- t。这将以下内容转储到内核缓冲区中,使用以下命令读取dmesg

[   36.318527] SysRq : Show Blocked State
[   36.318696]   task                        PC stack   pid father
[   36.318719] find            D ffff88041dd93480     0   839    788 0x00000000
[   36.318721]  ffff880405d07a48 0000000000000082 ffff880401136000 ffff880405d07fd8
[   36.318723]  0000000000013480 0000000000013480 ffff880401136000 ffff88041dd93d18
[   36.318725]  ffff88041dfab460 0000000000000002 ffffffff811ef380 ffff880405d07ac0
Run Code Online (Sandbox Code Playgroud)

它倾倒的比这多得多,但这是相关的部分。这显示被阻止的任务是find。在那之后,只是一个知识渊博的朋友知道/tmp清洁服务可能是罪魁祸首。