Detect and enable swap partitions on live

The laptops owned by SOI have 8 GB of RAM, and live systems running on
them sometimes run out of memory. To mitigate this, find and enable the
swap partition of the installed OS on the internal SSD.
This commit is contained in:
Jan Schär 2025-03-01 14:08:59 +01:00
parent 7768d84c56
commit 6b327be311
2 changed files with 27 additions and 0 deletions

View File

@ -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

View File

@ -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']])