Estoy usando Ubuntu en un entorno corporativo, y nuestra política de seguridad establece que tenemos que usar cifrado de disco completo.
También tengo una computadora portátil con una SSD mSATA de 32 GB y 750 GB de óxido giratorio. Mi instalación actual usa bcache para aprovechar esto, instalado usando este procedimiento . Esto proporciona un aumento de rendimiento muy bienvenido sin tener que preocuparme por llenar el SSD.
Esta será una pregunta generosa. La recompensa se otorgará por:
- Un método claro y confiable para realizar una nueva instalación de Ubuntu
- Cualquier lanzamiento es aceptable pero 15.04 (Vivid) estará bien
- Todo el sistema de archivos estará encriptado
- La preferencia aquí es usar la casilla correspondiente en el programa de instalación predeterminado de Ubiquity (cifrado dm-crypt)
- El sistema de archivos se almacenará en caché en un SSD
- Por preferencia, el método kernel dm-cache / lvmcache vea aquí el método para hacer esto con Debian Jessie
- El caché también debe estar protegido (es decir, encriptado)
- Debe haber una explicación clara de por qué el caché también está encriptado
Ya he probado el método para Debian Jessie anterior, pero se niega a arrancar por mí. Hasta ahora no he probado el método descrito en los comentarios aquí .
Las soluciones publicadas se probarán en una VM VirtualBox con dos discos virtuales en blanco y una copia de lanzamiento del escritorio 15.04 (versión amd64). Bounty va a la primera solución que adopto para reinstalar mi hardware real.
Escriba su solución como si fuera a entrar en el wiki de la comunidad.
He otorgado la recompensa: creo que todavía hay potencial para una solución "LUKS-on-LVM" que combine la facilidad de la respuesta aprobada en solo tener una contraseña, con solo usar componentes del mapeador de dispositivos.

Respuestas:
LVM en LUKS en bcache
Aquí el juego de muñecas rusas es un poco más profundo con 3 pilas / capas ...
Mi idea inicial sobre esta pregunta era usar una instalación predeterminada de Ubuntu con LVM en LUKS y convertirla en un dispositivo de respaldo bcache con bloques, pero no funcionó para mí en mi prueba con LVM.
Además, el instalador de ubuntu ( ubicuidad ) es demasiado limitado para instalarlo dentro de un dispositivo bcache preparado de antemano (al menos con LUKS en LVM), por lo que recurrimos a un método para hacer las cosas manualmente.
Inicie en el CD / USB en vivo y elija "Probar Ubuntu" y abra una terminal
Preinstalar
Instalación
Mantenga la terminal abierta y ahora ejecute la instalación. Elija "Algo más" al particionar y especifique
/dev/sda2)/dev/mapper/vg-root)/dev/mapper/vg-swap)y marque la casilla de verificación para formatear sus particiones
Al final de la instalación, no reinicie, solo haga clic en "Continuar probando ubuntu"
Post-instalación
En nuestra terminal abierta
Existe un error conocido de reinicio de Ubuntu 15.04 desde Live CD / USB, por lo que es posible que deba forzar el reinicio / apagado
Cheque
Una vez arrancado, puede comprobar que,
/dev/bcache0de hecho, es una partición LUKS conEsto se debe a que es el caché de su partición LUKS, y ahora accede a sus datos a través del dispositivo
/dev/bcache0y nunca desde el dispositivo de respaldo original (/dev/sda3aquí)Referencias
http://bcache.evilpiepirate.org/
https://wiki.archlinux.org/index.php/Bcache
https://wiki.archlinux.org/index.php/Dm-crypt
bcache-status aún no se ha fusionado oficialmente en bcache-tools. Puede tenerlo aquí: https://gist.github.com/djwong/6343451
[1] Puede haber mejores formas de hacer esta limpieza
fuente
update-initramfs -uk alldespués de la creación de crypttab y siguiendo elexitcomando.LVM en LUKS + LUKS / dm-cache
El instalador de Ubuntu utiliza la configuración LVM en LUKS para su cifrado de disco completo.
Si también desea utilizar dm-cache / lvmcache para aumentar el rendimiento, deberá colocar su grupo de caché en un volumen cifrado para mantener la seguridad de sus datos.
Los pasos son
/etc/crypttabEl siguiente script proporciona un ejemplo y agregará un grupo de caché cifrado a un sistema de archivos raíz existente. Fue diseñado para sistemas que han utilizado la opción de cifrado de disco predeterminada en el instalador de Ubuntu, es decir; disco completo particionado y encriptado, sin particiones personalizadas, etc.
Tenga en cuenta que hay muy poca validación o programación defensiva en este script. Si destruye su sistema de trabajo, es su responsabilidad.
Llame así:
Los parámetros de tamaño están por defecto en MB: necesitará una proporción de 1: 1000 de espacio de metadatos por espacio de caché (por ejemplo, si su disco de caché es de 180 GB, necesitará 180 MB de espacio de metadatos y 179820 MB de espacio de datos; puede redondear el metadatos un poco para ser cautelosos. Hay un límite inferior para los metadatos de 8M.)
Se le solicitará una contraseña para su volumen de caché; se le solicitarán las contraseñas para AMBOS discos durante el arranque.
Referencias
#! / bin / bash # # # lvmcryptocache # # # Agregue un grupo de caché LVM y adjúntelo al volumen raíz # Incluyendo el cifrado LUKS # Asume que está utilizando una configuración "todo en raíz" # Si no lo eres, adáptalo si quieres # # # Script con licencia GPL3 o posterior # © Adrian Wilkins Mayo 2015 # # # Pase el nombre del dispositivo de disco que está utilizando como caché # Idealmente, esto debería estar totalmente en blanco, así que ejecute # # # dd if = / dev / zero of = / dev / $ {DISK} # # # sobre él por un momento para destruir la tabla de particiones CACHE_DISK = $ 1 META_SIZE = $ 2 DATA_SIZE = $ 3 DISK_NAME = $ (nombre base $ CACHE_DISK) CRYPT_VOLUME = $ {DISK_NAME} _crypt CACHE_PV = / dev / mapper / $ {CRYPT_VOLUME} # Crear volumen LUKS en disco sin formato cryptsetup luksFormat $ CACHE_DISK cryptsetup open --type luks $ CACHE_DISK $ CRYPT_VOLUME # Comencé a tratar de resolver el tamaño del disco, pero es complejo # Intenta si quieres, seguí quedando sin extensiones # # # DISK_SIZE = $ (fdisk -l | grep "Disco $ {CACHE_DISK}" | awk '{print $ 5}') # # # META_SIZE = $ ((DISK_SIZE / 1000)) # META_SIZE = $ ((META_SIZE + 512)) # MOD = $ ((META_SIZE% 512)) # MOD_OFFSET = $ ((512 - MOD)) # META_SIZE = $ ((META_SIZE + 512)) # META_SIZE = $ ((META_SIZE + MOD_OFFSET)) # # # DATA_SIZE = $ ((DISK_SIZE - META_SIZE)) # # # Crear nuevo PV dentro del volumen cifrado pvcreate $ CACHE_PV vgextend ubuntu-vg $ CACHE_PV lvcreate -L $ {META_SIZE} -n cachemeta ubuntu-vg $ CACHE_PV lvcreate -L $ {DATA_SIZE} -n cachedata ubuntu-vg $ CACHE_PV lvconvert --type cache-pool --poolmetadata ubuntu-vg / cachemeta --cachemode writethrough ubuntu-vg / cachedata --yes lvconvert --type cache --cachepool ubuntu-vg / cachedata ubuntu-vg / root # Ahora agregue el UUID del conjunto de caché DISCO FÍSICO (/ dev / sdb) a / etc / crypttab DISK_UUID = $ (ls -al / dev / disk / by-uuid / | grep $ DISK_NAME | awk '{print $ 9}') echo "$ {CRYPT_VOLUME} UUID = $ {DISK_UUID} ninguna suerte, descartar" >> / etc / crypttab apt-get install --yes-thin-provisioning-tools GANCHO = $ (archivo temporal) # Agregue un script de enlace a initramfs para agregar las herramientas y módulos correctos echo "#! / bin / sh"> $ GANCHO echo "PREREQ =" lvm2 "" >> $ GANCHO echo "prereqs ()" >> $ HOOK echo "{" >> $ GANCHO echo "echo \" $ PREREQ \ "" >> $ GANCHO echo "}" >> $ GANCHO echo "caso $ 1 en" >> $ GANCHO echo "prereqs)" >> $ HOOK echo "prereqs" >> $ GANCHO echo "salida 0" >> $ GANCHO eco " ;;" >> $ GANCHO echo "esac" >> $ GANCHO echo "if [! -x / usr / sbin / cache_check]; then" >> $ HOOK echo "salida 0" >> $ GANCHO echo "fi" >> $ GANCHO echo ". / usr / share / initramfs-tools / hook-functions" >> $ HOOK echo "copy_exec / usr / sbin / cache_check" >> $ HOOK echo "manual_add_modules dm_cache dm_cache_mq dm_persistent_data dm_bufio" >> $ GANCHO cp $ HOOK / etc / initramfs-tools / hooks / lvmcache chmod + x / etc / initramfs-tools / hooks / lvmcache echo "dm_cache" >> / etc / initramfs-tools / modules echo "dm_cache_mq" >> / etc / initramfs-tools / modules echo "dm_persistent_data" >> / etc / initramfs-tools / modules echo "dm_bufio" >> / etc / initramfs-tools / modules # Actualizar initramfs update-initramfs -u echo ¡Ahora reinicie!fuente
| cache_utilization_pct | 79.096846147 |. Sin embargotop, estoy viendo estados iowait 20-50% constantemente. ¿Podría ser eso un efecto secundario del almacenamiento en búfer?