重新启动挂起100%-可能在mountall中


8

更新:似乎mountall挂在例程emmit_event()中,在重新挂载/发出此事件后,它将调用该例程。在emit_event内部,它调用ply_boot_client_flush(),然后构造env数组,先调用upstart_emit_event(),然后再调用dbus_pending_call_block()。并在那里挂起。那么有什么想法为什么dbus_pending_call_block会无限期地挂起?普利茅斯断了吗?dbus?暴发户?有修复或进一步诊断的建议吗?

重新启动我的Ubuntu 10.04 LTS,64位AMD机器挂100%。驱动器访问指示灯熄灭,但是alt-sysreq键起作用。硬件是Lenovo W700ds笔记本电脑。现在,我先向您道歉,因为我对我所拥有的系统的信息以及我可以做的事情(因为它无法启动)非常有限。我可以从10.04 CD引导-像救援盘一样使用它。我可以fsck,挂载和读写分区-它们很好。我已经尝试过使用mkswap重新格式化我的交换。我的系统上有4个ext4分区:sda1是/,sda2是/ usr,sda3是/ home,第4个用于数据存储的/ sdb1(是整个磁盘,安装在我创建的安装点/ hdb上) 。还有/ sda4,这是swap。现在,我正在使用从10的“救援会话”中打开的浏览器来编写代码。

我将不胜感激什么我可以做些什么来帮助诊断什么是挂,为什么,我可以做些什么来解决这个问题有什么建议/评论。我已经进行了一次网络搜索,但是在这些方面没有发现新内容(一些1-1.5岁的bug报告具有类似的症状,但其修复无效)。

我在7月初前后在新磁盘上安装了10.04,然后使用aptitude更新了所有内容。从那以后我一直在安装LOTS包(我将在下面附加dpkg日志)。sda为750GB(/ 20GB,/ usr 80GB)时,我有很多空间来安装“有一天可能使用”的软件包。我想知道我安装的这些软件包之一是否破坏了我的系统?我安装了2.6.32-32-generic内核并重新启动,但此后安装了更多软件包。我尽可能少地重新引导这台计算机-宁愿从一处到另一处都使其休眠。不过最近,我注意到与休眠状态有关的一些奇怪行为:当系统退出休眠状态时,它会打开gnome屏幕保护程序,并提供解锁所需的密码-好吧,它无法识别我的密码!我必须alt-F1,以root用户身份登录,然后杀死屏幕保护程序。然后一切都会好起来的,或者看起来是这样。也,进入休眠模式后,我经常会在屏幕上短暂看到闪烁的彩色垃圾。它会消失,所以我没有尝试找到原因。另一个可能相关的问题是,我需要在10.04的安装中使用“ nomodeset”,并且当从同一张CD中打开急救壳时,如果仅使用nomodeset,它将最终以闪烁的NumLock LED或Caps Lock LED挂起(崩溃?),但是如果我还使用“ noapic nolapic acpi = off”,那么它就可以了。我在系统上尝试了这些选项,以查看它们是否可以解决引导挂起问题-不能。如果仅使用nomodeset,则最终将以闪烁的NumLock LED或Caps Lock LED挂起(崩溃?),但是如果我也使用“ noapic nolapic acpi = off”,则显示为正常。我在系统上尝试了这些选项,以查看它们是否可以解决引导挂起问题-不能。如果我仅使用nomodeset,它将最终以闪烁的NumLock LED或Caps Lock LED挂起(崩溃?),但是,如果我还使用“ noapic nolapic acpi = off”,则可以正常运行。我在系统上尝试了这些选项,以查看它们是否可以解决引导挂起问题-不能。

这是一台机器我使用的工作,以及对其他几乎一切,所以得到它再次开机是TOP的优先级。/ home是完整的,这很好。但是,我正竭尽全力地试图诊断(更不用说修复)导致挂起的原因。

我引导系统,它开始在/etc/init/mountall.conf中运行mountall配置脚本。我看到mountall运行fsck的输出-4行显示:util-linux-ng 2.17.2中的fsck(每个ext4分区一个)。然后,fsck还有4行通知用户已发现分区“干净”。就是这样-一切都停止了。驱动器活动指示灯熄灭。我可以使用alt-sysreq键,但到目前为止尚未证明它们有用。我看到了一个错误报告,其中一个用户使用alt-sysreq-i杀死了进程,并将其放入外壳中。对我来说,它确实杀死了进程(udev和udev-bridge和plymouth,说它重新生成了udev,等等),但是我没有得到任何shell。

我一直在尝试确定到底是什么挂了。为此,我修改了/etc/init/mountall.conf。我已经添加了回显行,并且已经向mountall的exec添加了-v(详细)选项。在mountall的执行程序之后没有显示回显线,因此这可能意味着mountall正在挂起。或者,它可能不会显示最后的输出-在这种情况下,mountall可能已经退出,而其他东西可能正在挂起。我注意到alt-sysreq-i并没有说mountall被杀死。我试图通过从fstab中注释掉sda3(/ home),swap和sdb1(/ hdb)来缩小系统挂起的范围,但是仍然挂起。

我可以做很多事情,但感觉就像我在这里头晕。例如,我想获取mountall的源代码,添加打印的标志,重新编译并将其粘贴在我的系统上-缩小A)如果mountall实际上挂了,并且B)挂了什么。但是,我无法将我的机器引导到要在其中进行编译的外壳-应急磁盘环境仅为2.6.32-28-通用#55-因此它与我的系统不匹配。我想删除或重新安装软件包,但是同样,我无法启动计算机并执行此操作。

(我的dpkg日志文件有几个MB,因此我将其附加在以下对话框中)

谢谢,格雷格


好吧,如果您可以启动USB记忆棒或livecd,请在其中安装磁盘,然后将chroot插入计算机并删除软件包。但是另一方面,您说这是您的工作计算机,它具有TOP优先级。因此,比较花费时间搜索全新安装时间有什么问题(您在单独的分区上有主页)?
2011年

我会回声@denwerko-大概只需要几个小时即可进行全新安装,然后安装所需的任何其他软件。插入USB记忆棒/外部USB驱动器,然后将/ home的内容复制到其中。您可以随后将其还原。至于“稳定性”,这取决于您安装了哪些软件包以及从何处安装?与从软件中心/突触软件包管理器安装标准软件包相比,从PPA安装软件包和编译代码可能会导致更多的不稳定。
fossfreedom

@greg-您安装了哪些硬件,需要额外的驱动程序-例如,网卡/图形卡?您是否尝试过通过禁用/拉出所有卡来简化桌面的工作-仅保留诸如集成显卡和有线键盘之类的基础知识吗?
fossfreedom

@Greg如果这解决了,为什么他们没有被接受的答案?请遵循AskUbuntu的一般规则,并将您的解决方案添加到答案中并接受。
Rinzwind

Answers:


1

Denwerko:我没有对应该产生此结果的机器做任何事情。在Ubuntu 9.10下它非常稳定-从未发生过这种情况。所有修改源代码,重新编译的东西-都是用户空间代码。我根本没有修改过操作系统。我也没有在标准通道之外安装任何OS空间代码(智能/突触软件包管理器,通过这些工具获得的deb软件包)。格雷格昨天

但是,我已经获得了mountall 2.15.3的源代码,并在5次安装后(libnih-dev,libnihdbus-dev,lindbus-1-dev,linudev-dev,libplymouth-dev)在救援环境中进行了编译。 。我通过nih_info()调用在代码中添加了调试打印,并且生成了执行fsck阻塞而不是非阻塞的派生代码。我正在研究mountall在某处崩溃的理论(或nih,dbus或plymouth ...)。我似乎没有在每次运行时都将输出输出到代码中的相同位置,但是在将/ dev / sda1重新安装到/-在mount()例程中后,它似乎停止了一段时间。格雷格昨天

我也一直按照您的建议通过chroot进行dpkg -r软件包的打包,这似乎可行(除了一个要用/ proc做某事的卸载脚本)。我卸载了wine,并删除了所需的32位兼容软件包(lib32nss,ia32lib,lib32v4l等)以及救援环境中未安装的几个ibus软件包(某些ibus软件包已安装,我很小心不要删除那些软件包)-等离子小配件,kimpanel后端ibus,ibus-qt4,ibus-qt1。这些都没有影响问题,所以我删除了我现在不需要的更多软件包(wx小部件和jdk软件包等)-无效

更新:似乎mountall挂在例程embed_event()中,在重新挂载/以达到该效果后,它会调用该例程。在emit_event内部,它调用ply_boot_client_flush(),然后构造env数组,先调用upstart_emit_event(),然后再调用dbus_pending_call_block()。并在那里挂起。那么有什么想法为什么dbus_pending_call_block会无限期地挂起?普利茅斯断了吗?dbus?暴发户?有修复或进一步诊断的建议吗?

解决方案因此,看来我已经安装了cloud-init和cloud-utils,因为尽管有朝一日我可能想使用它。Will,会发现具有Uraldahead配置的cloud-init螺丝,并在dbus事件“挂载/”发生时启动,这导致我的系统在发出该dbus消息后立即挂起,这是在将ro从/挂载到/重新安装后发生的。读/写 我卸载了cloud-init和cloud-utils,现在一切正常。除了,我困了,失去了24小时的生活:\

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.