在启用 timeshift 的 btrfs 文件系统上扩展 Swap 文件

在启用 timeshift 的 btrfs 文件系统上扩展 Swap 文件

想让 swapfile 变大一些?环境很复杂?不会太难的,我们一步步来。

搜索

根据我的环境,在搜索引擎搜索 swapfile 分配或扩展相关内容,可得:

分析

稍微分析一下:

  • 因为配置了 timeshift,swapfile 不应该放在根目录子卷(/@/swap/swapfile),而是应该创建一个 swap 子卷来存放 swapfile(/@swap/swapfile)以防止 timeshift 在备份根目录子卷时把 swapfile 也备份进去了。
  • Linux 发行版在开机时根据 /etc/fstab 配置的内容挂载分区,我最好在取消挂载 swapfile 或本操作系统未运行时对文件系统修改以避免对正在运行的操作系统产生未知的影响。

执行

  1. 重启到 live 系统: 我使用 Ventoy 启动了硬盘中的 Manjaro Linux 安装镜像;

  2. 初始化挂载环境:

    • 确保 /mnt 为空且未挂载任何分区: 执行:sudo findmnt -R /mnt,如果不为空,逐个手动取消挂载;
    • 创建临时文件夹: 执行:sudo mkdir /mnt/volume && sudo mkdir /mnt/subvolume
  3. 获取对应根目录的分区设备文件名: 执行:sudo fdisk -l,得到如 /dev/sda2/dev/nvme0n1p2,这里以 /dev/nvme0n1p3 为例;

  4. 挂载分区: 执行:sudo mount /dev/nvme0n1p3 /mnt/volume

  5. 获取子卷 ID: 执行:sudo btrfs subvolume list /mnt/volume

    1
    2
    3
    4
    5
    6
    ID 256 gen 272550 top level 5 path @
    ID 257 gen 272550 top level 5 path @home
    ID 258 gen 272528 top level 5 path @cache
    ID 259 gen 272550 top level 5 path @log
    ID 260 gen 260974 top level 5 path @swap
    ……

    可见子卷 @swap ID 为 260,可跳至第 7 步。

    若无 @swap 子卷,跳至第 6 步;

  6. 创建子卷: 执行:sudo btrfs subvolume create /mnt/volume/@swap; 创建完成后跳至第 5 步;

  7. 挂载子卷: 执行:sudo mount -o subvolid=260 /dev/nvme0n1p3 /mnt/subvolume

  8. 删除原有 swapfile: 执行:sudo rm /mnt/subvolume/swapfile

  9. 创建新的 swapfile,替换 48g 为其他您想要的容量: 执行:sudo btrfs filesystem mkswapfile --size 48g --uuid clear /mnt/subvolume/swapfile

  10. 配置 swapfile 自动挂载: 编辑 /etc/fstabsudo nano /mnt/volume/@/etc/fstab; 加上以下这两行保存退出(如果已有,就不用加):

    1
    2
     UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx /swap          btrfs   subvol=/@swap,defaults,noatime 0 0
    /swap/swapfile swap swap defaults 0 0

    xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx 需替换为根目录 / 前的 UUID 值;

  11. 清理并重启: 执行:sudo umount /mnt/subvolume && sudo umount /mnt/volume && sudo shutdown -r now

检查

1
swapon
1
2
NAME           TYPE SIZE USED PRIO
/swap/swapfile file 48G 0B -2

在启用 timeshift 的 btrfs 文件系统上扩展 Swap 文件

https://blog.pj568.sbs/2026/01-19-increase_swapfile_manjaro_btrfs_timeshift/

作者

PJ568

发布于

2026-01-19

更新于

2026-01-19

许可协议

评论