Sunday, February 28, 2016

Fixing encrypted swap partition in Ubuntu 14.04

Having the message "the disk drive for /dev/mapper/cryptswap1 is not ready yet or present" error on your splash screen when booting? Swap partition not working despite having set it up when installing Ubuntu / Linux Mint?

There is an Ubuntu 14.04 bug in which the encrypted swap partition does not work if you chose to encrypt your disk or home directory when installing. All credit to the smart people that figured this out.

Fix is here, your mileage may vary:

1. sudo swapoff -a

2. Comment line(s) in /etc/crypttab , e.g. #cryptswap1 /dev/sda2 /dev/urandom swap,cipher=aes-cbc-essiv:sha256

3. Reboot.

4. sudo mkswap /dev/sdXX (where XX is your intended swap partition) and copy the UUID that is produced.

5. Edit (or create) /etc/initramfs-tools/conf.d/resume and add line:
RESUME=UUID=the uuid from step 4 

6. Run the following:
sudo update-initramfs -u
sudo swapon /dev/sdXX
sudo ecryptfs-setup-swap

7. Edit /etc/crypttab (there should be a new line added below the line you commented in step #2) to change the UUID to /dev/sdXX, and add "noauto" and "offset=8".

For example:

cryptswap1 /dev/sda2 /dev/urandom swap,noauto,offset=8,cipher=aes-cbc-essiv:sha256

8. Edit /etc/fstab and add "noauto" to swap partition line, for example:

/dev/mapper/cryptswap1 none swap noauto,sw 0 0

9. Edit (or create) /etc/init/cryptswap1.conf with:

start on started mountall
      /sbin/cryptdisks_start cryptswap1
      /sbin/swapon /dev/mapper/cryptswap1
end script

10. Reboot. Test if swap is working with swapon -s or free -h. If you're still getting the "not ready or not present" message noted above when booting, despite the fact that your swap is working upon the boot completing, edit /etc/rc.local and add the following lines above "exit 0":

sleep 5
swapon /dev/mapper/cryptswap1

No comments: