diff --git a/os/layers/live/includes.chroot/etc/systemd/system/detect-swap.service b/os/layers/live/includes.chroot/etc/systemd/system/detect-swap.service new file mode 100644 index 0000000..912c92e --- /dev/null +++ b/os/layers/live/includes.chroot/etc/systemd/system/detect-swap.service @@ -0,0 +1,14 @@ +[Unit] +Description=detect and enable swap partitions. +Before=basic.target +After=local-fs.target systemd-tmpfiles-setup.service +DefaultDependencies=no +ConditionKernelCommandLine=boot=live + +[Service] +Type=oneshot +RemainAfterExit=yes +ExecStart=/usr/local/bin/detect-swap + +[Install] +WantedBy=basic.target diff --git a/os/layers/live/includes.chroot/usr/local/bin/detect-swap b/os/layers/live/includes.chroot/usr/local/bin/detect-swap new file mode 100644 index 0000000..19a5042 --- /dev/null +++ b/os/layers/live/includes.chroot/usr/local/bin/detect-swap @@ -0,0 +1,13 @@ +#!/usr/bin/python3 + +import subprocess +import json + +SD_GPT_SWAP = '0657fd6d-a4ab-43c4-84e5-0933c84b4f4f' + +lsblk_result = subprocess.run(['lsblk', '--json', '--output=PATH,PARTTYPE'], check=True, stdout=subprocess.PIPE) +lablk_out = json.loads(lsblk_result.stdout) +for block in lablk_out['blockdevices']: + if block['parttype'] == SD_GPT_SWAP: + print('Enabling swap on', block['path']) + subprocess.run(['swapon', block['path']])