Ubuntu 需要很长时间才能启动

Fre*_*ed. 2 boot 12.10

因此,我从 U 盘和 Windows 安装了 Ubuntu 12.10。当我启动 Ubuntu 时,它在紫色屏幕上花费了大约 10 分钟,没有光标,什么也没有,然后它进入黑屏但有一个光标,最后是登录屏幕,它保持冻结状态大约 10 分钟。登录后,屏幕也会在空白壁纸上冻结 10 分钟。最后在 Ubuntu 启动后,一切都运行得很慢。Firefox 需要几分钟才能启动并每隔 10 秒冻结一次。我有一个 Intel Pentium 2.93 Ghz 双核处理器,4 Gigs 内存,Geforce GTS250。

tgi*_*ies 6

诊断启动缓慢的第一步是查看dmesg. dmesg显示内核环形缓冲区的内容,其中包含内核或多或少记录的状态消息,从控制权传递给 Linux 内核的那一刻起,到您的 syslog 守护程序接管这些日志记录职责的那一刻。

要在文件中获取 dmesg 的输出以便于浏览,请执行dmesg > dmesg.txt. 现在dmesg.txt在您的当前目录中包含内核日志。

读取 dmesg: dmesg 输出的每一行都以类似[ 0.106607]. 这是“T-plus”格式的时间戳:它是内核启动后的秒数。

要确定您的速度变慢,请查找时间戳从一行“跳”到下一行的点(提示:您还可以使用dmesg -ddmesg 打印从一个时间戳到下一个时间戳的时间差,然后放在尖括号中时间戳):

[    3.201806] usb 2-4: >New USB device strings: Mfr=2, Product=3, SerialNumber=4
[    3.201810] usb 2-4: >Product: Android
[    3.201813] usb 2-4: >Manufacturer: Android
[    3.201816] usb 2-4: >SerialNumber: 00093f054d0a2f
[   43.254818] EXT4-fs (sda5): orphan cleanup on readonly fs
[   43.254827] EXT4-fs (sda5): ext4_orphan_cleanup: deleting unreferenced inode 10747985
[   43.254879] EXT4-fs (sda5): ext4_orphan_cleanup: deleting unreferenced inode 10748275
[   43.254892] EXT4-fs (sda5): ext4_orphan_cleanup: deleting unreferenced inode 10748394
Run Code Online (Sandbox Code Playgroud)

在这里,我们看到从 T+3 秒跃升到 T+43 秒,这意味着在 40 秒内内核没有记录任何日志,并且大概是在摆弄它的拇指等待某事发生。这是在识别出插入的 Android 设备之后,因此对于初学者来说,我们可能想尝试在启动期间拔下该 Android 设备。不过,这可能是一个红鲱鱼——延迟可能是由接下来发生的文件系统清理引起的。

紧接着是:

[   43.254959] EXT4-fs (sda5): ext4_orphan_cleanup: deleting unreferenced inode 10748175
[   43.254969] EXT4-fs (sda5): 8 orphan inodes deleted
[   43.254970] EXT4-fs (sda5): recovery complete
[   52.161162] EXT4-fs (sda5): mounted filesystem with ordered data mode. Opts: (null)
[  451.530476] Adding 51097596k swap on /dev/sda2.  Priority:-1 extents:1 across:51097596k
[  451.540572] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready
[  455.117113] udevd[430]: starting version 175
[  458.734692] lp: driver loaded but no devices found
Run Code Online (Sandbox Code Playgroud)

哇,从T+52秒到T+451秒的差距。我们注意到在延迟之前发生的最后一件事是文件系统被挂载。

一些研究(在 Google 上搜索“slow boot dmesg“mounted filesystem with ordered data mode”)得出了一个有希望的线索:一个与此相关的未修复错误udev指的是在此消息后启动时等待很长时间!

浏览该线程,看起来已经建立了一种解决方法

它包括向 /lib/udev/rules.d/85-lvm2.rules 中的 vgchange 命令添加一个 --noudevsync 参数。然后使用 update-initramfs -u 重新生成 initramfs

所以我们会做这样的事情:

sudo nano /lib/udev/rules.d/85-lvm2.rules

找到看起来像的摘录/sbin/lvm vgchange -a y并将其更改为 read /sbin/lvm vgchange --noudevsync -a y。可能需要将相同的选项附加到/sbin/lvm vgscan调用中。

现在执行sudo update-initramfs -u并在成功后重新启动。