我的第一次安装不包括 LVM,BIOS 启动后大约需要 15 秒。我的第二次安装包括 LVM,BIOS 启动后大约需要 45 秒。经过多次 Google 搜索,普遍的共识似乎是这是一个错误,在安装过程中使用“某些”SSD 时选择 LVM 会导致启动时间过长,因为系统会查找交换文件但找不到。超时时间为 30 秒。有人找到解决方法吗?
答案1
尝试以下两种方法中的任一种,或者同时尝试两种方法。
第一种方法
打开终端并输入以下内容来验证内核启动时间:
systemd-analyze
wait-for-root
在30 秒后超时/usr/share/initramfs-tools/scripts/local
(休眠值)。dev_id
变量被赋值为 ,其值RESUME
在 处定义/etc/initramfs-tools/conf.d/resume
。 分配给 RESUME 的这个 UUID 是 LVM 交换分区的 UUID。 将 LVM 交换分区的设备文件路径分配给 RESUME 并使用 ,wait_for_udev
而不是wait-for-root
。
为此,请在终端中输入:
sudo sed -e 's/^RESUME=/#RESUME=/g' \
-i /etc/initramfs-tools/conf.d/resume
完成后,输入:
echo "RESUME=/dev/mapper/ubuntu--YOUR FLAVOR OF UBUNTU HERE--vg-swap_1" | \
sudo tee -a /etc/initramfs-tools/conf.d/resume
重新创建 initrd 并重启系统。
sudo update-initramfs -u
完成后,输入:
sudo reboot
内核启动时间应该更快。输入以下命令进行验证:
systemd-analyze
此后您还可以使用休眠模式。
(来源)
第二种方法
导航/etc/initramfs-tools/conf.d/
右键单击“恢复”,然后选择以管理员身份编辑. 更改行
RESUME=UUID=<WHATEVER YOUT NUMBER IS>
(例如RESUME=UUID=67b3fe6f-1ec4-413f-8c5a-1136bc7f3270
)至:
RESUME=none
现在打开终端并输入:
sudo update-initramfs -u
完成后,输入:
sudo reboot
内核启动时间应该更快。输入以下命令进行验证:
systemd-analyze
(来源)
答案2
免责声明:在撰写本文时,我没有足够的声誉来评论其他答案,因此我必须输入一个新的答案(主要作为我自己的参考)
我在全新安装的 Ubuntu 上遇到了类似的问题,裸机安装启动时间约为 15 秒,而 LVM 安装的启动时间约为 50 秒(黑屏时暂停约 30 秒)。
第一次打电话时,sudo systemd-analyze blame
我被告知还有另一个问题:
$ sudo systemd-analyze blame
40.699s snapd.seeded.service
...
感谢其他问答,我才得以解决这个问题:在全新 SSD 安装(18.04)上进行常规 dist-upgrade 后,Ubuntu 加载/启动画面出现长时间启动延迟通过安装rng-tools
并定义HRNGDEVICE=/dev/urandom
为中的随机数据输入源/etc/default/rng-tools
。
这解决了 snapd 熵问题:
$ sudo journalctl -u snapd.seeded.service --since today
-- Logs begin at Tue 2018-08-21 18:22:53 CEST, end at Tue 2018-08-21 19:40:09 CE
# Before: ~40s
Aug 21 18:22:54 zen systemd[1]: Starting Wait until snapd is fully seeded...
Aug 21 18:23:36 zen systemd[1]: Started Wait until snapd is fully seeded.
Aug 21 18:50:18 zen systemd[1]: Stopped Wait until snapd is fully seeded.
-- Reboot --
# After: <1s
Aug 21 18:51:19 zen systemd[1]: Starting Wait until snapd is fully seeded...
Aug 21 18:51:19 zen systemd[1]: Started Wait until snapd is fully seeded.
....
但是内核仍然需要大约 35 秒才能启动,所以我采取了“傻瓜式”的方式尼尔斯-芬纳,起初没有起作用,但与第一种溶液混合后阿尼和大卫我最终设法将启动时间缩短至约 10 秒。
因此,供(我自己的)参考,这里是我解决该问题的安全路径版本:
$ cd <whatever back up folder on your machine>
# backup initial config
$ cp /etc/initramfs-tools/conf.d/resume .
# Retrieve the correct path to the swap partition (for manually configured LVMs)
$ sudo fdisk -l
... some partitions
Disk /dev/mapper/vg_zen-uswap: 4 GiB, 4294967296 bytes, 8388608 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
... some more partitions
# Update the "resume" file with the new path
# Caution "vg_zen-uswap" is for *my* machine only :)
$ echo "RESUME=/dev/mapper/vg_zen-uswap" | sudo tee /etc/initramfs-tools/conf.d/resume
RESUME=/dev/mapper/vg_zen-uswap
# Recreate initrd
$ sudo update-initramfs -u
update-initramfs: Generating /boot/initrd.img-4.15.0-32-generic
# reboot
这对我来说很管用。HTH。
答案3
似乎上面描述的第二种方法通常不起作用。此外,我建议使用更“傻瓜式”的方法,以避免意外覆盖交换 UUID。
sudo -i #become root
cd /etc/initramfs-tools/config.d
mv resume resume.uuid
echo "RESUME=/dev/mapper/YOUR UBUNTU FLAVOUR HERE--vg-swap_1" > resume
#Example: echo "RESUME=/dev/mapper/lubuntu--vg-swap_1" > resume
update-initramfs -uk all
sync && reboot
现在我们可以通过重命名这两个文件来简单地来回切换。