Merge pull request #3370 from guillaumerose/swap

Create swap file only if absent
This commit is contained in:
Rolf Neugebauer 2019-06-20 12:36:38 +01:00 committed by GitHub
commit 4dc5d0a3fb
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 19 additions and 15 deletions

View File

@ -26,7 +26,7 @@ onboot:
command: ["/usr/bin/mountie", "/var/lib"] command: ["/usr/bin/mountie", "/var/lib"]
# make a swap file on the mounted disk # make a swap file on the mounted disk
- name: swap - name: swap
image: linuxkit/swap:v0.7 image: linuxkit/swap:f8b0434963b4c9114db473aab3b9409bccd4f85b
command: ["/swap.sh", "--path", "/var/lib/swap", "--size", "1024M"] command: ["/swap.sh", "--path", "/var/lib/swap", "--size", "1024M"]
# mount-vpnkit mounts the 9p share used by vpnkit to coordinate port forwarding # mount-vpnkit mounts the 9p share used by vpnkit to coordinate port forwarding
- name: mount-vpnkit - name: mount-vpnkit

View File

@ -18,7 +18,7 @@ onboot:
image: linuxkit/mount:v0.7 image: linuxkit/mount:v0.7
command: ["/usr/bin/mountie", "/var/external"] command: ["/usr/bin/mountie", "/var/external"]
- name: swap - name: swap
image: linuxkit/swap:v0.7 image: linuxkit/swap:f8b0434963b4c9114db473aab3b9409bccd4f85b
# to use unencrypted swap, use: # to use unencrypted swap, use:
# command: ["/swap.sh", "--path", "/var/external/swap", "--size", "1G"] # command: ["/swap.sh", "--path", "/var/external/swap", "--size", "1G"]
command: ["/swap.sh", "--path", "/var/external/swap", "--size", "1G", "--encrypt"] command: ["/swap.sh", "--path", "/var/external/swap", "--size", "1G", "--encrypt"]

View File

@ -115,23 +115,27 @@ done
### Required? exit 1 ### Required? exit 1
### Else? exit 0 ### Else? exit 0
## Allocate the file
dd if=/dev/zero of=$path bs=1024 count=$(disksize_to_count 1024 $size)
chmod 0600 $path
## was it encrypted? use cryptsetup and get the mapped device
if [ "$ENCRYPT" == "true" ]; then if [ "$ENCRYPT" == "true" ]; then
# might need
#loop=$(losetup -f)
#losetup ${loop} ${path}
cryptsetup open --type plain --key-file /dev/urandom --key-size=256 --cipher=aes-cbc-essiv:sha256 --offset=0 ${path} swapfile
SWAPDEV=/dev/mapper/swapfile SWAPDEV=/dev/mapper/swapfile
else else
SWAPDEV=$path SWAPDEV=$path
fi fi
## mkswap and swapon the device if [ ! -f $path ] || ! [ $(stat -c "%s" $path) == $(disksize_to_count 1 $size) ]; then
/sbin/mkswap $SWAPDEV ## Allocate the file
dd if=/dev/zero of=$path bs=1024 count=$(disksize_to_count 1024 $size)
chmod 0600 $path
## was it encrypted? use cryptsetup and get the mapped device
if [ "$ENCRYPT" == "true" ]; then
# might need
#loop=$(losetup -f)
#losetup ${loop} ${path}
cryptsetup open --type plain --key-file /dev/urandom --key-size=256 --cipher=aes-cbc-essiv:sha256 --offset=0 ${path} swapfile
fi
/sbin/mkswap $SWAPDEV
fi
/sbin/swapon $SWAPDEV /sbin/swapon $SWAPDEV