Ubuntu 13.10 – How to disable LVM and cryptsetup? cryptsetup: evms_activate is not available

bootencryptionlukslvmUbuntu

EDIT:
This issue is now resolved. For detailed instruction how to remove full disk encryption, please see the "Can I disable full-disk encryption?" topic, there you can find a step by step instruction how to remove full-disk encryption.
https://askubuntu.com/questions/245112/can-i-disable-full-disk-encryption/412737#412737

==

I am trying to remove whole drive encryption from my Ubuntu installation.
I've run Ubuntu from Live CD, mounted crypt partition and copied it to another partition /dev/sda3.

sudo cryptsetup luksOpen /dev/sda5 crypt1
sudo dd if=/dev/ubuntu-vg/root of=/dev/sda3 bs=1M

After that I've run boot-repair: https://help.ubuntu.com/community/Boot-Repair

Added entry to /etc/fstab:

UUID=<uuid> /  ext4 errors=remount-ro 0 1

Of course I've replaced with blkid result of my /dev/sda3. I've also
deleted overlayfs and tmpfs lines from /etc/fstab. (I've just compared it to content of /etc/fstab in non-encrypted Ubuntu installation and could not find overlayfs and tmpfs).

I've chrooted from LiveCD into my system and rebuilt initramfs: http://blog.leenix.co.uk/2012/07/evmsactivate-is-not-available-on-boot.html

I've also removed cryptsetup using apt-get remove.

Basically I can easily mount my system partition from Live CD (without setting up the encryption and LVM stuff), but can not boot from it. Instead I see:

cryptsetup: evms_activate is not available

When I've chosen the Recovery mode I've seen this:

Begin: Mounting root file system ...
Begin: Running /script/local-top ...
Reading all physical volumes.
This may take a while ...
No volume groups found
cryptsetup: evms_activate is not available
Begin: Waiting for encrytpted source device ...

My /etc/crypttab is empty.

I am pretty sure that system tries to find encrypted partition, search for LVMs etc.

Do you have ideas what could be the problem or how can I fix it?

Thanks

Best Answer

I had the same problem and finally solved

The problem seems to be in update-initramfs that doesn't generate the initrd properly.

"evms_activate not found" means that the /sbin/evms_activate file is not created inside the initrd file by update-initramfs

So, my workaround consists in unpacking the not working initrd, and copy the evms_activate executable into /sbin/ from a working initrd file (probably getting one from a deb file of debian/ubuntu repositories), and packing initrd again.

In my case, I made the following steps.

We create two folders:

mkdir NOT_WORKING
mkdir WORKING

We copy the corrupted initrd to NOT_WORKING folder (in my case "initrd.img-3.4.94") and the working to WORKING (in my case "initrd.img-3.8.0-31-generic").

cp /boot/initrd.img-3.4.94 NOT_WORKING
cp initrd.img-3.8.0-31-generic WORKING

Unpack both initrd:

cd NOT_WORKING
mv initrd.img-3.4.94 initrd.img-3.4.94.gz
gzip -d initrd.img-3.4.94.gz
cpio -id < initrd.img-3.4.94
cd ..
cd WORKING
mv initrd.img-3.8.0-29-generic initrd.img-3.8.0-29-generic.gz
gzip -d initrd.img-3.8.0-29-generic.gz
cpio -id < initrd.img-3.8.0-29-generic
cd ..

We copy evms_activate

cp WORKING/sbin/evms_activate NOT_WORKING/sbin/evms_activate 

And we pack initrd again

cd NOT_WORKING
mv initrd.img-3.4.94 .. #We don't want to pack an older initrd into the newer :p
find . | cpio --quiet -H newc -o | gzip -9 -n > /boot/initrd.img-3.4.94

Now the evms_active error should dissappear :)

Related Topic