Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save XenGi/39c1e8b023fe5bee7c924258367cd633 to your computer and use it in GitHub Desktop.
Save XenGi/39c1e8b023fe5bee7c924258367cd633 to your computer and use it in GitHub Desktop.
arch kernel update survival kit
[Trigger]
Operation = Upgrade
Type = Package
Target = linux
[Action]
Description = Restore Linux kernel modules
When = PostTransaction
Depends = coreutils
Depends = rsync
Exec = /bin/sh -xc 'KVER="${KVER:-$(uname -r)}"; if test -e "/lib/modules/backup/${KVER}"; then rsync -AHXal --ignore-existing "/lib/modules/backup/${KVER}" /lib/modules/; fi; rm -rf /lib/modules/backup'
[Trigger]
Operation = Upgrade
Type = Package
Target = linux
[Action]
Description = Save Linux kernel modules
When = PreTransaction
Depends = rsync
Exec = /bin/sh -c 'KVER="${KVER:-$(uname -r)}"; if test -e "/lib/modules/${KVER}"; then rsync -AHXal --delete-after "/lib/mo
[Unit]
Description=Clean up modules from old kernels
[Service]
Type=oneshot
ExecStart=/bin/bash -exc 'for i in /usr/lib/modules/[0-9]*; do if [[ $${i##*/} = \'%v\' ]] || pacman -Qo "$${i}"; then continue; fi; rsync -AHXal "$${i}" /usr/lib/modules/.old/; rm -rf "$${i}"; done'
[Install]
WantedBy=basic.target
R! /usr/lib/modules/.old/* - - - 4w
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment