交换:从分区到文件,现在得到“没有匹配的交换设备可用”

rke*_*ing 30 resume swap uuid

运行 Ubuntu 18.04,我从交换分区更改为交换文件。

swapon -s(summary) 和 free 显示具有新大小的交换文件。/etc/fstab 已更改,交换文件的权限已更改,并且交换分区已删除。当有更新(apt-get 更新和升级)时,我收到此错误:

Setting up amd64-microcode (3.20180524.1~ubuntu0.18.04.2) ...
update-initramfs: deferring update (trigger activated)
amd64-microcode: microcode will be updated at next boot
Processing triggers for libc-bin (2.27-3ubuntu1) ...
Processing triggers for initramfs-tools (0.130ubuntu3.1) ...
update-initramfs: Generating /boot/initrd.img-4.15.0-29-generic
W: initramfs-tools configuration sets RESUME=UUID=c5a2c6f4-b67c-4d95-bc23-8333ed6c0f11
W: but no matching swap device is available.
Run Code Online (Sandbox Code Playgroud)

此处列出的 UUID 用于旧交换分区。我不认为交换文件有 UUID,但我不确定。其他一切似乎工作正常。我应该如何进行故障排除和修复?

小智 31

第1步:

$ sudo blkid
Run Code Online (Sandbox Code Playgroud)

它将列出获取系统上每个设备或分区的 UUID。复制交换分区的 UUID。

第2步:

$ sudo vim /etc/initramfs-tools/conf.d/resume
Run Code Online (Sandbox Code Playgroud)

将可用的 UUID 替换为粘贴您刚刚复制并保存的 UUID。

第 3 步:

$ sudo update-initramfs -u
Run Code Online (Sandbox Code Playgroud)

  • 这应该是公认的答案。我讨厌那些懒惰的“删除它”答案。 (3认同)
  • 这个答案对于这种情况是无效的。OP 表示:“那里列出的 UUID 用于旧交换分区。我认为交换文件没有 UUID”。他是对的。如果他不再使用交换分区,而是使用交换文件,那么就没有更多的 UUID 需要处理了。所以,这个答案在这种情况下是没有目的的。但是,它对于那些使用交换分区的人来说很有用...... (3认同)
  • 对于已转向使用交换文件的发行版来说,这是一个错误的答案。 (3认同)
  • 'sudo swaplabel /swapfile' 实际上会显示交换 **FILE** 的 UUID。`sudo blkid` 显示分区,而不是 `/swapfile`。至少我的情况是这样。您创建了“/swapfile”吗? (2认同)

ubf*_*an1 29

该行在 /etc/initramfs-tools/conf.d/resume 中,因此请尝试删除它。


有问题的文件 /etc/initramfs-tools/conf.d/resume 自 14.04 以来甚至不存在于 Ubuntu LTS 版本中。删除它包含在 18.04 系统上的一行永远不会导致问题。这是一个很好的例子,说明为什么重新安装比升级更可取,有时会留下旧的东西,以后可能会导致问题。

至于那些认为 blkid 会为交换文件生成任何东西的人,你错了,建议使用 blkid 的答案对所述问题没有响应。重读问题,不再有交换分区。

正如评论所建议的,交换文件的 UUID 可以使用交换标签生成,但留给读者作为练习,看看在不再是 Ubuntu 系统一部分的配置文件中使用该交换文件 UUID 是否会真正修复任何问题,或者只是导致另一个 UUID 查找失败。

  • +1 是的。将其删除或替换为 `RESUME=NONE` 或使其成为注释(在行首放置 **`#`**)。 (5认同)
  • `RESUME=NONE` 在 Ubuntu LTS 18.04 上不起作用。**删除该行** 或 `RESUME=` 确实有效。 (3认同)
  • 这个答案是一个糟糕的建议。请不要直接从 Linux 中删除你不理解的东西。这是如何被接受的答案令人困惑。相反,请按照其他答案中有关使用“blkid”的说明来确定正确的交换分区 UUID 并替换它! (2认同)