Ubuntu Full ZFS encrypted
Pour une installation full ZFS presque entièrement chiffrée de Ubuntu, c’est un tout petit poil plus compliqué, mais vous allez voir, rien de bien sorcier et point de magie noire.
Une installation presque entièrement chiffrée
Il s’agit d’une installation sur ordinateur portable (laptop).
1 partition EFI
1 partition SWAP chiffrable (par les procédés habituels)
1 partition ZFS bpool non chiffré pour les kernels et initramfs
1 partition ZFS rpool chiffrée pour le système et les datas
Prerequis
Nous allons commencer par booter une iso Live Ubuntu.
On lance le mode Live :
Try Ubuntu
button.
Une fois la session live démarrée, je vous suggère d’installer ssh et de permettre le root login afin de se simplifier l’édition.
$ sudo su
## passwd
New password :
Retype new passord :
passwd: password updated successfully
# apt install ssh
sed -i 's/#PermitRootLogin prohibit-password/PermitRootLogin yes/' /etc/ssh/sshd_config
# service ssh restart
Edition du script zsys-setup
Une fois tout ces prérequis effectués, connectez-vous en ssh à votre machine en cours d’installation pour éditer le fichier zsys-setup
qui se trouve dans le Live Ubuntu : /usr/share/ubiquity/zsys-setup
Dans ce script cherchez « zpool create », vérifiez que vous êtes bien sur celui qui crée le « rpool ».
Avant la commande “zpool create”, insérez :
echo MYPASSWORD |
Et avant les derniéres lignes de la commande « zpool create », ajoutez les lignes ci-dessous :
-O recordsize=1M \
-O encryption=aes-256-gcm \
-O keylocation=prompt \
-O keyformat=passphrase \
Ajuster la taille de la SWAP pour pouvoir hiberner
Avec le default Ubuntu zsys-setup
, la partition swap sera de 2GB ce qui risque de ne pas être suffisant pour votre système.
Nous devons créer une swap dont la taille est égale à la quantitée de RAM.
Il faut ajouter les 2 lignes ci-desous dans : /usr/share/ubiquity/zsys-setup
MEMSIZE=$(cat /proc/meminfo | grep MemTotal | awk -F' ' '{print $2}')
SWAPVOLSIZE=$(( MEMSIZE / 1024 ))
comme ci-dessous dans le contexte :
# Convert to MiB to align the size on the size of a block
SWAPVOLSIZE=$(( SWAPSIZE / 1024 / 1024 ))
MEMSIZE=$(cat /proc/meminfo | grep MemTotal | awk -F' ' '{print $2}')
SWAPVOLSIZE=$(( MEMSIZE / 1024 ))
prepare_target "${TARGET}"
format_disk "${DISK}" "${PARTBASE}" "${PARTESP}" "${PARTBPOOL}" "${PARTRPOOL}" "${SWAPVOLSIZE}"
init_zfs "${TARGET}" "${DISK}${PARTBASE}${PARTBPOOL}" "${DISK}${PARTBASE}${PARTRPOOL}"
init_system_partitions "${TARGET}" "${DISK}${PARTBASE}1" "${DISK}${PARTBASE}${PARTESP}"
Lancer l’installation
Dans un terminal, lancer ubiquity
, puis il suffit de suivre les points de la procédure Ubuntu Full ZFS.