From 3f0612b4ada4a895f29613a46acfe57a5de92418 Mon Sep 17 00:00:00 2001 From: Chrysostomus Date: Mon, 7 Dec 2020 22:30:57 +0200 Subject: [PATCH] Use different location for swapfile on btrfs root --- src/modules/fstab/main.py | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/modules/fstab/main.py b/src/modules/fstab/main.py index 6c2168a8e..8b5deecb1 100644 --- a/src/modules/fstab/main.py +++ b/src/modules/fstab/main.py @@ -319,14 +319,19 @@ def create_swapfile(root_mount_point, root_btrfs): The swapfile-creation covers progress from 0.2 to 0.5 """ libcalamares.job.setprogress(0.2) - swapfile_path = os.path.join(root_mount_point, "swapfile") - with open(swapfile_path, "wb") as f: - pass if root_btrfs: + # btrfs swapfiles must reside on a subvolume that is not snapshotted to prevent file system corruption + swapfile_path = os.path.join(root_mount_point, "swap/swapfile") + with open(swapfile_path, "wb") as f: + pass o = subprocess.check_output(["chattr", "+C", swapfile_path]) libcalamares.utils.debug("swapfile attributes: {!s}".format(o)) o = subprocess.check_output(["btrfs", "property", "set", swapfile_path, "compression", "none"]) libcalamares.utils.debug("swapfile compression: {!s}".format(o)) + else: + swapfile_path = os.path.join(root_mount_point, "swapfile") + with open(swapfile_path, "wb") as f: + pass # Create the swapfile; swapfiles are small-ish zeroes = bytes(16384) with open(swapfile_path, "wb") as f: