Ubuntu 14.04 32 位交换文件最大 60k 问题

Ubuntu 14.04 32 位交换文件最大 60k 问题

有一个奇怪的问题,突然我的所有交换文件(每个 1gb)被截断为仅使用 60k 。我可以删除/重新创建等,但无论我做什么,最大值似乎限制为 60k,并在系统日志中显示以下消息:

Truncating oversized swap area, only using 60k out of 1048572k
kernel: [  406.348815] Adding 60k swap on /mnt/swapfile.  Priority:-1 extents:1 across:60k FS

如果我使用分区或文件没有区别。

用于创建新交换的程序:

> dd if=/dev/zero of=/swapfile bs=1M count=1000
> mkswap /swapfile
Setting up swapspace version 1, size = 1023996 KiB
no label, UUID=ba344dc1-61aa-4847-bbc4-0a78cbf05546
> swapon /swapfile

它创建了一个 1GB 文件,然后用 swapon -s 检查显示:

Filename                Type        Size    Used    Priority

/mnt/swapfile           file        60  60  -1

现在总共有 4 x 1GB 交换文件,仅产生 240k 交换空间(通过 free、glances 等确认)

内核版本是:

$ uname -rvmpi
3.13.0-157-generic #207-Ubuntu SMP Mon Aug 20 23:17:45 UTC 2018 i686 i686 i686

编辑:安装/恢复到最后一个工作内核版本 3.13.0-153。它似乎与下面 Byte Commander 建议的 L1TF 缓解措施有关。

答案1

在我看来,您可能遇到了由最近的 L1TF 缓解措施引起的内核回归,这现在使您的最大交换大小值溢出并重置为零或某个小数字。

我的猜测是基于上周的 Linux 内核邮件列表条目:https://lkml.org/lkml/2018/8/20/172

From    Vlastimil Babka <>
Subject [PATCH] x86/speculation/l1tf: fix overflow on l1tf_pfn_limit() on 32bit
Date    Mon, 20 Aug 2018 11:58:35 +0200

On 32bit PAE kernels on 64bit hardware with enough physical bits,
l1tf_pfn_limit() will overflow unsigned long. This in turn affects
max_swapfile_size() and can lead to swapon returning -EINVAL. This has been
observed in a 32bit guest with 42 bits physical address size, where
max_swapfile_size() overflows exactly to 1 << 32, thus zero, and produces the
following warning to dmesg:

[    6.396845] Truncating oversized swap area, only using 0k out of 2047996k

Fix this by using unsigned long long instead.

Reported-by: Dominique Leuenberger <[email protected]>
Reported-by: Adrian Schroeter <[email protected]>
Fixes: 17dbca119312 ("x86/speculation/l1tf: Add sysfs reporting for l1tf")
Fixes: 377eeaa8e11f ("x86/speculation/l1tf: Limit swap file size to MAX_PA/2")
[...]

恐怕除了等待这个内核错误被修复并且补丁版本发布到 Ubuntu 之外,你可能无能为力。

编辑:或者,您当然可以回滚到以前的内核版本之一,而无需任何 L1TF 缓解匹配,以便能够再次使用交换。请记住,这当然会让您再次面临严重的安全问题,因此请务必小心,并在修复程序发布后立即再次更新。

相关内容