解决由于BTRFS文件系统引起的交换内存不生效 Failed to activate swap
Ubuntu启动过程中发现交换文件报错,虽然正常启动正常能用,但无法使用交换内存
·
报错信息
Ubuntu启动过程中发现报错信息(虽然正常启动正常能用)
[FAILED] Failed to activate swap swap.img.swap - /swap.img.

解决方案
由于用的是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
更多推荐
所有评论(0)