我是如何陷入这个麻烦的
今天,我在 GNOME Boxes 中运行了一个 Arch Linux 32 位虚拟机在 Ubuntu 16.04 LTS 中,我的电脑突然死机了,所以我按住电源按钮强制关机。之后,每次我启动电脑(Ubuntu 16.04 LTS)时,我都要花 3 分钟才能进入登录屏幕,这是无法接受的。
我也读过这个问题并没有找到任何解决方案,但我运行了几个systemd-analyze
命令并保存了输出
systemd-analyze
我执行了 3 条systemd-analyze
命令,将其输出保存到 3 个文件中,然后上传这里
systemd-analyze --system blame > blame
systemd-analyze --system critical-chain > critical-chain
systemd-analyze --system plot > systemd-analyze.svg
对于blame
文件,在终端中使用less
或cat
以颜色查看其内容
我不知道 systemd 是如何工作的,对这些输出也了解systemd-analyze
甚少。我可以删除一些运行时间过长的服务,但我不知道这些服务有多重要,它们的作用是什么,而且我不想搞砸我的电脑
更新:更多信息
我安装了 2 个操作系统:Windows 10/dev/sda1
和 Ubuntu 16.04 /dev/sda5
,我还制作了一个 NTSF 驱动器(名为 STORAGE4,不是 Windows 10 分区,仅用于保存数据)在启动时自动挂载(使用 gnome-disks)
我的根分区(/dev/sda5
):
文件系统类型:ext4
大小:总共 133.9 GB,已用 71.2 GB,可用 55.9 GB
我的存储4 ( /dev/sda2
):
文件系统类型:NTFS
大小:134.2 GB,已用 123.2 GB,可用 11.0 GB
来自@MarkStosberg:
您还没有提到虚拟机是否设置为在启动时启动
我有 4 个虚拟机,它们都已关闭。我怎么才能将这些虚拟机设置为在启动时启动?(我的意思是,在我看到 lightdm 登录屏幕之前)
跑步hdparm
:
$ sudo hdparm -Tt /dev/sda
/dev/sda:
Timing cached reads: 9350 MB in 2.00 seconds = 4677.33 MB/sec
Timing buffered disk reads: 20 MB in 3.58 seconds = 5.59 MB/sec
答案1
您发布的一个文档指出您的系统可能是一个华硕 X550LD笔记本电脑。所有这些都配有旋转磁盘驱动器,因此它们的速度会比 SSD 慢。
为了将您的结果与另一个系统进行比较,我为自己的系统生成了 SVG,这表明我的 SSD 上的启动时间约为 10 秒。
您提到在发生这种情况之前您正在使用 Boxes。因此尝试“撤消”您在 Boxes 中执行的任何操作可能会有所帮助。
磁盘快要满了时,速度也会变慢。如果您的硬盘快要满了,这可能是问题的一部分。
您也没有提到您使用的是哪种文件系统。文件系统的选择也可能是一个因素。
您还没有提到虚拟机是否设置为在启动时启动,这可能会有所帮助。
我查看了您发布的文件,没有发现导致速度变慢的明显原因,因此我怀疑这可能与硬件有关。
您还可以尝试使用硬盘基准测试来确认能够达到的吞吐量。为了进行比较,以下是我在笔记本电脑中测试 SSD 的结果:
$ sudo hdparm -Tt /dev/sda
/dev/sda:
Timing cached reads: 11776 MB in 2.00 seconds = 5892.27 MB/sec
Timing buffered disk reads: 216 MB in 3.01 seconds = 71.77 MB/sec
查看您的后续hdparm
输出,您的缓冲磁盘读取的基本磁盘性能很差 - 仅为约 5 MB/秒。
这个帖子说“现代 2.5 英寸 5400 RPM 驱动器应该能够达到 100 MB/s。”
可能有多个因素在起作用,但相对较慢的 5,400 RPM HDD 肯定是造成性能缓慢问题的部分原因。
答案2
我想到了:
原因:当我强制关机时,由于某些原因,我的 MBR 表损坏,导致交换分区丢失。因此,每次我启动机器时,操作系统都会尝试找到该分区作为交换空间,从而增加启动时间。
解决方案:打开/etc/fstab
(以超级用户身份),删除(或注释掉)包含旧交换分区的行,设置新的交换。