直到最近,我都能毫无问题地启动 12.04 LTS。现在,在启动画面(显示 Ubuntu 且其下方有 5 个点的画面)之后,我看到的是纯黑屏,什么也没发生。背光灯亮着(我能看出来,因为我可以使用笔记本电脑上的功能键将其关闭)。
我尝试启动恢复模式。然后,我选择“启用网络”。屏幕上出现很多文本消息,最后一条是这样的:
fsck from util-linux 2.20.1
/dev/sda7: clean 503648/5873664 files, 16228870/2348972 blocks
之后什么都没发生。无奈之下,我按下了 CTRL+C,结果看到了这个:
The disk drive for / is not ready yet or is not present
虽然这听起来不太好,但几秒钟后 Ubuntu 启动了,我就可以正常使用了。这是怎么回事?我怎样才能让 Ubuntu 正常启动,而不必经过恢复模式?
以下是一些相关文件:
在 /etc/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>
proc /proc proc nodev,noexec,nosuid 0 0
mtpfs /mnt/nexus7 fuse user,noauto,allow_other,defaults 0 0
# / was on /dev/sda7 during installation
UUID=d67a32d7-aeb2-499c-b854-5a5588ab44d0 / ext4 errors=remount-ro 0 1
# swap was on /dev/sda6 during installation
UUID=37aa594e-d42b-4104-8ceb-8bf5f535fbbc none swap sw 0 0
/var/log/dmesg:http://pastebin.com/jG6pj6vs
dmesg 中最有趣的部分似乎在第 40 秒左右(第 929 行)——这大约是我按下 CTRL+C 的时间:
[ 41.431376] init: friendly-recovery main process (1136) killed by INT signal
[ 41.832821] lp: driver loaded but no devices found
[ 53.659693] Adding 4028412k swap on /dev/sda6. Priority:-1 extents:1 across:4028412k
[ 54.017887] EXT4-fs (sda7): re-mounted. Opts: errors=remount-ro
[ 54.123538] init: udev-fallback-graphics main process (2043) terminated with status 1
[ 54.266949] init: failsafe main process (2086) killed by TERM signal
[ 54.313791] init: friendly-recovery post-stop process (1323) terminated with status 1
似乎有些进程挂起了,阻碍了正常启动。也许当我按下 CTRL+C 时,这些进程会被终止,启动可以继续。我如何根据它们的 ID(括号中的数字)找出这些进程是什么?
/var/log/boot.log:
Begin: Loading essential drivers ... done.
Begin: Running /scripts/init-premount ... done.
Begin: Mounting root file system ... Begin: Running /scripts/local-top ... done.
Begin: Running /scripts/local-premount ... done.
Begin: Running /scripts/local-bottom ... done.
done.
Begin: Running /scripts/init-bottom ... done.
fsck from util-linux 2.20.1
/dev/sda7: clean, 503673/5873664 files, 16231307/23489792 blocks
initctl: Event failed
modem-manager[2121]: <info> ModemManager (version 0.5.2.0) starting...
modem-manager[2121]: <info> Loaded plugin Nokia
modem-manager[2121]: <info> Loaded plugin ZTE
modem-manager[2121]: <info> Loaded plugin Huawei
modem-manager[2121]: <info> Loaded plugin Sierra
modem-manager[2121]: <info> Loaded plugin MotoC
modem-manager[2121]: <info> Loaded plugin SimTech
modem-manager[2121]: <info> Loaded plugin Wavecom
modem-manager[2121]: <info> Loaded plugin X22X
modem-manager[2121]: <info> Loaded plugin Novatel
modem-manager[2121]: <info> Loaded plugin Option High-Speed
modem-manager[2121]: <info> Loaded plugin Option
modem-manager[2121]: <info> Loaded plugin Samsung
modem-manager[2121]: <info> Loaded plugin Linktop
modem-manager[2121]: <info> Loaded plugin Ericsson MBM
modem-manager[2121]: <info> Loaded plugin Gobi
modem-manager[2121]: <info> Loaded plugin Generic
modem-manager[2121]: <info> Loaded plugin Longcheer
modem-manager[2121]: <info> Loaded plugin AnyData
* Starting system logging daemon [ OK ]
* Starting mDNS/DNS-SD daemon [ OK ]
Skipping profile in /etc/apparmor.d/disable: usr.bin.firefox
Skipping profile in /etc/apparmor.d/disable: usr.sbin.rsyslogd
* Starting bluetooth daemon [ OK ]
* Starting AppArmor profiles [ OK ]
* Setting sensors limits [ OK ]
* Stopping System V initialisation compatibility [ OK ]
* Starting System V runlevel compatibility [ OK ]
* Starting crash report submission daemon [ OK ]
* Starting LightDM Display Manager [ OK ]
* Starting anac(h)ronistic cron [ OK ]
* Starting save kernel messages [ OK ]
* Starting automatic crash report generation [ OK ]
* Starting ACPI daemon [ OK ]
* Starting regular background program processing daemon [ OK ]
* Starting deferred execution scheduler [ OK ]
* Starting CPU interrupts balancing daemon [ OK ]
* Stopping save kernel messages [ OK ]
我在启动时强制检查文件系统(http://ubuntuforums.org/showthread.php?t=77771),没有发现任何错误。还有什么问题呢?
编辑
我尝试启动旧版本的内核。我可以从引导加载程序访问其他 2 个版本:
- 3.2.0-31-通用
- 3.2.0-29-通用
3.2.0-31 无法工作(同样的问题),但 3.2.0-29 可以工作!这是否意味着内核中存在错误?
编辑
我按照以下说明进行操作https://wiki.ubuntu.com/DebuggingKernelBoot诊断我的问题。我按照说明更新了启动选项:
- 删除了 quiet、splash、$vt_handoff
- 用文本替换 $linux_gfx_mode
系统正确启动!经过更多调整后,我确定 quiet、splash 和 $vt_handoff 无关紧要 - 用文本替换 $linux_gfx_mode 即可解决问题。
这是怎么回事?这个虫子到底住在哪里?
答案1
我想我已经知道问题出在哪里了。
我注意到窗口拖动变得难以忍受地慢,并开始怀疑视频驱动程序存在问题。按照以下说明重新安装专有 ATI 驱动程序后https://help.ubuntu.com/community/BinaryDriverHowto/ATI,我的问题就解决了。
请按照下列步骤进行:
- 在左侧启动栏上,点击“系统设置”图标
- 然后是“附加驱动程序”,
- 然后等待系统搜索专有显卡驱动程序
- 选择第一个并点击“激活”,这将触发安装过程
- 最后输入密码以允许更改。