8. Oktober 2011
Dual-booting Arch and Ubuntu with LVM on top of LUKS
Encrypting your hard drive is generally a good idea. Yet, the encryption renders dual-booting a little more difficult. Here I briefly sketch how I installed Ubuntu in parallel to an existing Arch installation on a LUKS-encrypted drive.
The initial setup consists of an Arch installation on separate logical volumes for the home partition, root partition, and the swap partition. The volume group is placed within a LUKS-encrypted partition (here, this is /dev/sda2). Here is the partition table before installing Ubuntu:
Name Flags Part Type FS Type [Label] Size (MB) --------------------------------------------------------- sda1 Boot Primary ext4 [boot] 246.76 sda2 Primary crypto_LUKS 319823.57 Pri/Log Free Space 2.62*
Here is the layout of the LVM volume group contained in /dev/sda2
before installing Ubuntu:
home vgroup 268.45g root vgroup 25.00g swap vgroup 2.20g
The challenge is now to find out how to install Ubuntu into newly created logical volumes in this LUKS-encrypted volume group. This burns down to two major problems that need to be solved: First, how can one install Ubuntu into already encrypted volumes? Second, how can one make sure that the encrypted volumes are mounted correctly at booting time?
The first step is to set up the logical volumes. Here, one can resize the file systems and the logical volumes to obtain enough space for the Ubuntu root partition and Ubuntu home partition.
The crucial step is to install Ubuntu using the recovery option on the alternate installation CD, as described here: http://ubuntuforums.org/showthread.php?t=1034910. This permits one to install Ubuntu into already encrypted logical volumes. Just follow the installation process, but make sure you do the partitioning manually such that you can choose to use the logical volumes for the Ubuntu installation.
Later in the installation process, it is probably best to leave the master boot record as it is, and skip this step. Editing the Arch grub menu afterwards is enough. Unfortunately, after installing Ubuntu, it cannot yet be booted. After loading the initramfs, the system will abort the booting process because the root partition is encrypted and cannot be mounted. One needs to tell the system that there is an encryption in place and how to open the encrypted partition. Also here, follow the advice on http://ubuntuforums.org/showthread.php?t=1034910 to edit the /etc/crypttab file in the BusyBox shell. Later this should be made permanent in Ubuntu, and the initramfs newly created.
Here is the final partition table:
Name Flags Part Type FS Type [Label] Size (MB) --------------------------------------------------------------- sda1 Boot Primary ext4 [boot] 139.83 sda3 Primary ext2 [boot-ubuntu] 106.93 sda2 Primary crypto_LUKS 319823.57 Pri/Log Free Space 2.62*
Final layout of volume group vgroup in /dev/sda2:
home vgroup 210.65g home-ubuntu vgroup 47.80g root vgroup 25.00g root-ubuntu vgroup 10.00g swap vgroup 2.20g
Now both Arch and Ubuntu coexist peacefully on a LUKS-encrypted LVM-controlled partition.