Ubuntu 14.04 32ビットスワップファイル最大60kの問題

Ubuntu 14.04 32ビットスワップファイル最大60kの問題

奇妙な問題が発生しました。突然、すべてのスワップファイル(それぞれ1 GB)が60 kのみを使用するように切り捨てられました。などを削除/再生できますが、何をしても最大値はsyslogに次のメッセージとともに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つの1 GBのスワップファイルがあるので、スワップスペースは240kに過ぎません(無料、グランスなどで確認)。

カーネルバージョンは次のとおりです。

$ 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 緩和の一致なしに以前のカーネルバージョンの 1 つにロールバックして、スワップを再利用することもできます。もちろん、これは再度深刻なセキュリティ問題にさらされる可能性がありますので、注意して修正がリリースされるとおりに更新してください。

関連情報