Ubuntu 14.04 32비트 스왑 파일 최대 60k 문제

Ubuntu 14.04 32비트 스왑 파일 최대 60k 문제

이상한 문제가 발생했습니다. 갑자기 모든 스왑 파일(각각 1GB)이 60k만 사용하도록 잘렸습니다. 등을 삭제/재생성할 수 있지만 무엇을 하든 최대 값은 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개의 1GB 스왑 파일이 있으므로 스왑 공간은 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 완화로 인해 커널 회귀가 발생하여 최대 스왑 크기 값이 오버플로되어 0 또는 일부 작은 숫자로 재설정되는 것 같습니다.

내 추측은 지난 주의 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 완화 일치 없이 이전 커널 버전 중 하나로 롤백하여 스왑을 다시 사용할 수도 있습니다. 물론 이로 인해 다시 심각한 보안 문제에 노출될 수 있으니 주의하시고 수정 사항이 출시되는 대로 다시 업데이트하시기 바랍니다.

관련 정보