web-dev-qa-db-fra.com

Réinstaller sur des partitions chiffrées existantes

Ma disposition de disque est comme ceci:

  • Partition chiffrée pour /
  • Partition chiffrée pour /home
  • Partition non chiffrée pour /boot

Je l'ai configuré la dernière fois que j'ai réinstallé Ubuntu il y a quelque temps (y compris le disque effacé). Maintenant, après la mise à niveau vers la dernière Ubuntu, certaines choses ont été cassées et j'ai décidé de réinstaller à nouveau à partir de zéro. Mais, comme j'ai une partition séparée pour /home et une autre partition pour /, qui sont déjà cryptées, j'aimerais les réutiliser, au lieu de tout recommencer. Surtout pour économiser le temps nécessaire pour sauvegarder mon /home et le restaurer à nouveau après une nouvelle installation.

Avant de passer par le programme d'installation, je déverrouille les 2 partitions chiffrées. Cela me permet de les sélectionner pour / et /home pour la nouvelle installation. Je fais ce déverrouillage pré-installé car je ne parviens pas à déverrouiller les partitions à partir de l'interface utilisateur du programme d'installation.

Tout semble bien s'installer.

Mais lorsque je redémarre dans le système, je ne reçois jamais l'invite de déverrouillage. L'écran de démarrage à 5 points n'est présent que pendant un certain temps, puis il tombe sur l'invite (initramfs).

Que dois-je faire pour obtenir l'invite de déverrouillage au démarrage? Puis-je modifier certains paramètres d'un fichier quelque part dans ma partition /boot? Dois-je faire quelque chose de différent pendant l'installation? Cela ne me dérange pas de faire une autre réinstallation (car cela ne prend pas beaucoup de temps, oui!). Je ne veux tout simplement pas avoir à faire la sauvegarde/restauration de /home (car cela prend beaucoup de temps, boo!).

5
decibyte

Le problème est que /etc/crypttab n'est pas configuré correctement dans le nouveau système. Vous pouvez résoudre ce problème en démarrant dans un environnement réel, puis en installant votre nouveau système pour le réparer. Vous trouverez ci-dessous un aperçu de ce que vous devez faire, mais les noms de périphérique devront probablement être modifiés pour votre système.

$ Sudo -i
# cryptsetup open /dev/sda5 sda5_crypt # For root partition
# cryptsetup open /dev/sda6 sda6_crypt # For home partition
# lvchange -ay  # activates the logical volumes if you use llvm
# mkdir /mnt/ubuntu
# mount /dev/mapper/sda5_crypt /mnt/ubuntu
# mount /dev/mapper/sda6_crypt /mnt/ubuntu/home
# mount /dev/sda1 /mnt/ubuntu/boot
# mount --bind /dev /mnt/ubuntu/dev
# mount --bind /sys /mnt/ubuntu/sys
# mount -t proc none /mnt/ubuntu/proc

Maintenant que le système est monté, vous pouvez ajouter /mnt/ubuntu/etc/crypttab. Cela devrait ressembler un peu à ça:

sda5_crypt UUID=12345678-9abc-def012345-6789abcdef01 none luks
sda6_crypt UUID=87654321-cba9-543210fed-01fedcba9876 none luks

Vous pouvez trouver l'UUID avec ls -l /dev/disk/by-uuid. Notez que les UUID utilisés doivent être des partitions chiffrées, pas des partitions déchiffrées.

Vous devriez également jeter un œil à /mnt/ubuntu/etc/fstab et vous assurer que les partitions déchiffrées sont référencées par les noms sdaX_crypt que vous attribuez dans /mnt/ubuntu/etc/crypttab. Si vous avez décrypté les périphériques dans le programme d'installation du système d'exploitation avant de procéder à l'installation, ils pourraient être référencés sous d'autres noms que celui que vous avez attribué (par exemple luks-<uuid>). Si vous ne le faites pas, vous pourriez recevoir une erreur disant cryptsetup: lvm is not available lors du démarrage.

Enfin, vous pouvez chroot dans le nouveau système pour mettre à jour initramfs.

# chroot /mnt/ubuntu /bin/bash
# update-initramfs -u

Et vous êtes prêt à redémarrer votre nouveau système.

7
Virdal