What to do about "the disk drive for /dev/mapper/cryptswap1 is not ready yet or not present"?
While booting Ubuntu 12.04, the disk drive for /dev/mapper/cryptswap1 is not ready yet or not present
is showing. Why is this?
This error message indicates that the the system was unable to use its encrypted swap partition.
Not being able to use swap may cause slowdown, especially if your machine doesn't have much RAM installed.
Assuming the system is booting, you should be able to fix the problem without too much hassle.
If this is happening when you boot the CD/DVD or USB flash drive to install Ubuntu, then assuming installation is still working, it can be ignored. Your installed system might or might not have the same problem once created--if it does, the problem can be addressed in the installed system.
If this is happening on a system that is installed on your hard disk, then your system might still run okay, but it's a good idea to fix it--if you have a swap partition (or swap file), you may as well use it.
Most Ubuntu systems with swap have a swap partition. Assuming that is the case, the technique described in this blog post may help:
- Ubuntu 12.04 - How to solve "The disk drive for /dev/mapper/cryptswap1 is not ready yet or not present" error at boot
Here's a summary, with some additional information that may be helpful for novices, and in my own words. I suggest taking a look at that post as well though (assuming it remains accessible), as it contains some examples and other information that I've left out for brevity.
- Open a Terminal window (Ctrl+Alt+T) or a virtual console and run:
sudo swapoff -a
- Open
/etc/crypttab
(e.g.,sudo nano -w /etc/crypttab
orsudo -H gedit /etc/cryptab
for a GUI editor) and put a#
at the beginning of the line that starts withcryptswap1
. Save the file. - Do the same thing with the line that starts with
/dev/mapper/cryptswap1
in/etc/fstab
. - Install gparted . Run it and format your swap partition as
linux-swap
. Make sure to get the right partition; if you get the wrong one, you'll lose possibly important data! The line you commented out incrypttab
should give the correct partition name (it comes right after/dev/
). - Run
sudo mkswap /dev/...
, repacing...
with that same device name. Part of that command's output should be text that saysUUID=.....
where.....
is a string of letters and numbers. - In the file
/etc/initramfs-tools/conf.d/resume
, find the line that saysRESUME=UUID=
followed by letters and numbers like (but not identical to).....
from the last step. Replace them with.....
(i.e., with the letters and numbersmkswap
gave afterUUID=
. - Run
sudo swapon /dev/...
(with the same/dev/...
as you had in steps 4 and 5 above). - Run
sudo ecryptfs-setup-swap
.
swapon -s
will check to see if swap is successfully enabled. See that blog post for more information, and example output, for checking this.
Source: http://punygeek.blogspot.com/2012/10/ubuntu-1204-how-to-solve-disk-drive-for.html (on http://punygeek.blogspot.com/) by Litmus / Puny Geek. Some commands are copied; prose is not copied, but often expresses the same ideas.
Finally, note that this might be a bug. (I believe multiple factors could cause this problem, only some of which are bugs.) In particular, it resembles Launchpad Bug #1153661. If you believe that's your situation, you might want to subscribe to that, mark yourself affected (with the green "This bug affects..." link at the top of the page), and if you have any additional information to provide, comment with it.
Piggyback on Eliah's solution along with the bug reports on ubuntu (1310058), I was able to workaround the issue where encrypted swap gets lost when rebooting ubuntu 14.04.
Credit help goes to
http://punygeek.blogspot.com/2012/10/ubuntu-1204-how-to-solve-disk-drive-for.html https://bugs.launchpad.net/ubuntu/+source/ecryptfs-utils/+bug/1310058 (comments #3, #17, and #22)
sudo swapoff -a
comment out swap config in /etc/crypttab
#cryptswap1 UUID={your uuid} /dev/urandom swap,cipher=aes-cbc-essiv:sha256
comment out swap config in /etc/fstab
#/dev/mapper/cryptswap1 none swap sw 0 0
Reboot your computer, so you can reformat the swap partition using gparted afterwards. Make the swap, and make note of the UIID mkswap
generates for you.
sudo mkswap /dev/sdXX
Update /etc/initramfs-tools/conf.d/resume
with UUID from previous mkswap
RESUME=UUID={your uuid goes here}
And enable the Swap partition:
sudo update-initramfs -u
sudo swapon /dev/sdXX
sudo ecryptfs-setup-swap
Update your /etc/crypttab
settings to include noauto
and offset=8
(bug in ubuntu 14.04) (I recommend using vim here, so tabs don't get messed up).
cryptswap1 UUID={your uuid} /dev/urandom noauto,swap,offset=8,cipher=aes-cbc-essiv:sha256
Update your /etc/fstab
with noauto
:
/dev/mapper/cryptswap1 none swap noauto,sw 0 0
Manually kickstart your swap with the following config in /etc/init/cryptswap1.conf
. Note: you may have to manually create that config file from scratch. You may use any text editor in place of VIM.
sudo vim /etc/init/cryptswap1.conf
and fill with the following content:
start on started mountall
script
/sbin/cryptdisks_start cryptswap1
/sbin/swapon /dev/mapper/cryptswap1
end script