解决由于BTRFS文件系统引起的交换内存不生效 Failed to activate swap

报错信息

Ubuntu启动过程中发现报错信息(虽然正常启动正常能用)

[FAILED] Failed to activate swap swap.img.swap - /swap.img.

解决由于BTRFS文件系统引起的交换内存不生效 Failed to activate swap_第1张图片

解决方案

由于用的是BTRFS文件系统,交换文件需禁用 COW(Copy-on-Write)

# 0. 检查交换文件是否生效
sudo swapon --show
# 预期输出
# NAME      TYPE SIZE USED PRIO
# /swap.img file   8G   0B   -2

# 1. 删除旧交换文件
sudo rm -f swap.img

# 2. 创建空文件并立即禁用 COW(关键!)
sudo touch swap.img
sudo chattr +C swap.img      # 必须在写入数据前执行
sudo lsattr swap.img	# 检查文件属性
# 预期输出
# ---------------C------ /swap.img

# 3. 用 dd 填充文件(避免 fallocate 产生稀疏文件)
sudo dd if=/dev/zero of=swap.img bs=1M count=8192 status=progress

# 4. 设置权限
sudo chmod 0600 swap.img

# 5. 格式化为交换文件
sudo mkswap swap.img
# 预期输出
# Setting up swapspace version 1, size = 8 GiB (8589930496 bytes)
# no label, UUID=d324fc95-7a43-46bc-967d-1f89d7bc53c6

# 6. 激活交换文件
sudo swapon swap.img

# 7. 检查是否激活成功
sudo swapon --show
# 预期输出
# NAME      TYPE SIZE USED PRIO
# /swap.img file   8G   0B   -2

你可能感兴趣的:(Linux,BTRFS,交换内存,交换文件,写时复制,Linux)