我有 Windows 10 和 Ubuntu 17.04 双启动系统(120Gb SSD,100 用于 Windows,其余用于 Linux)。当我在第二个分区安装 Ubuntu 时,我没有创建任何交换分区(我有 4Gb 的 RAM,大多数论坛都说 4Gb 以上就不需要交换),所以我只创建了一个根分区,/
其中所有 20gb 都可用,并选择仅加密我的主文件夹。
问题是,启动 Ubuntu 需要 1-2 分钟,而 Windows 启动大约需要 10 秒或更短时间。
我在这里看到了一些关于此问题的帖子,但大多数情况下 OP 已经创建了交换分区,而我的情况不是这样。
我该怎么办?再次安装并创建交换分区,还是采取其他方法?我对 Ubuntu 的技术不太了解,所以如果你们能向我展示一些步骤来识别问题,我将不胜感激,谢谢!
编辑#1
我的 Windows 10 没有设置快速启动,因为我可以在 Linux 内部访问 Windows 分区的所有文件/文件夹。
编辑#2
输出自sudo fdisk -l
:
Disk /dev/loop0: 80,5 MiB, 84393984 bytes, 164832 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
Disk /dev/loop1: 76 MiB, 79683584 bytes, 155632 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
Disk /dev/sda: 111,8 GiB, 120034123776 bytes, 234441648 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
Disklabel type: dos
Disk identifier: 0x39380a4e
Device Boot Start End Sectors Size Id Type
/dev/sda1 * 2048 1026047 1024000 500M 7 HPFS/NTFS/exFAT
/dev/sda2 1026048 193478655 192452608 91,8G 7 HPFS/NTFS/exFAT
/dev/sda3 193480702 234440703 40960002 19,5G 5 Extended
/dev/sda5 193480704 234440703 40960000 19,5G 83 Linux
Disk /dev/sdb: 931,5 GiB, 1000204138496 bytes, 1953523708 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
Disklabel type: dos
Disk identifier: 0x2de2a99a
Device Boot Start End Sectors Size Id Type
/dev/sdb1 2048 1953519615 1953517568 931,5G 7 HPFS/NTFS/exFAT
输出自systemd-analyze
:
Startup finished in 5.074s (kernel) + 3min 514ms (userspace) = 3min 5.588s
输出自systemd-analyze blame
:
7.518s NetworkManager-wait-online.service
3.920s fwupd.service
3.015s iio-sensor-proxy.service
1.217s dev-sda5.device
739ms apt-daily.service
编辑#3:
输出自systemd-analyze critical-chain
:
graphical.target @1min 38.007s
└─multi-user.target @1min 38.007s
└─virtualbox.service @1min 37.938s +68ms
└─network-online.target @1min 37.937s
└─NetworkManager-wait-online.service @1min 30.418s +7.518s
└─NetworkManager.service @1min 30.306s +105ms
└─dbus.service @1min 30.281s
└─basic.target @1min 30.273s
└─sockets.target @1min 30.273s
└─snapd.socket @1min 30.265s +8ms
└─sysinit.target @1min 30.264s
└─apparmor.service @193ms +264ms
└─local-fs.target @190ms
└─media-gdf897g6f9-HD\x20TOURO.mount @1min 50.061s
└─dev-sdb1.device @1.467s
编辑#4:
这是命令的图像systemd-analyze plot > test.svg
,前面有一个巨大的空白系统初始化目标,不确定这是什么意思。
答案1
我找到了 Reddit 用户发布的修复程序,它实际上是一个错误:
在 Ubuntu 17.04 中,使用主文件夹加密时安装程序中出现一个错误 - 引用了交换分区,但 17.04 现在使用交换文件。
在文本编辑器中打开 /etc/crypttab 并更改以下内容:
cryptswap1 UID=XXXXXXXX
更改为:
cryptswap1 /交换文件
现在我的 Ubuntu 启动只需 6 秒 :-)
答案2
Windows 10 花费的时间更少,因为默认情况下它不会完全关闭(如果您想从 Linux 访问 Windows 分区,则必须关闭此功能)。它会休眠并在开机时恢复。创建交换分区是一件好事,因为某些应用程序使用交换区域(如 gimp、inkscape、vmware 等)。您可以控制操作系统的交换性,这将帮助您减少 SSD 的磨损。
使用以下链接调整 swapiness
并将交换添加到您的安装使用
https://www.digitalocean.com/community/tutorials/how-to-add-swap-on-ubuntu-14-04
或者您可以从全新安装开始。
如果您确切知道您拥有什么类型的硬件,您可以从内核禁用不需要的模块。
在启动应用程序中仅保留想要的应用程序。
禁用要启动的服务,例如
- FTP 服务器
- apache 或 nginx
- 蛤蜊
- openssh-服务器
ETC。
但是您必须手动启动它们,或者您可以添加 crontabs 以在启动后启动它们。
我希望它有帮助。
答案3
我遇到了同样的问题,dmesg 上的以下条目的间隔正好是 30 秒,修复后减少到不到 1 秒 -
[ 3.675210] EXT4-fs (sda5): re-mounted. Opts: errors=remount-ro [ 3.804315] [drm] RC6 on [ 4.566877] random: crng init done [ 4.566879] random: 7 urandom warning(s) missed due to ratelimiting
我尝试了几个建议的修复方法,但都没有成功 -
- 使用“
/etc/fstab
”的输出更新“blkid
” - 安装 haveged 和 rng-tools 或 rng-tools5(虽然我的处理器支持安全密钥)
事实证明,问题在于 initramfs 尝试定位我在从实时 USB 安装时创建的交换空间。在继续启动之前,它会搜索位于 USB 上的交换分区的 UUID 30 秒。这需要在两个地方修复 -
update-initramfs -uk all
'#使用更新版本的 initramfs-tools - 0.130ubuntu3.1/etc/initramfs-tools/conf.d/resume
通过注释掉条目或标记来从“ ”中删除覆盖(如果有)RESUME=none
详细的错误修复在这里给出 - https://bugs.launchpad.net/ubuntu/+source/initramfs-tools/+bug/1771962