web-dev-qa-db-fra.com

Démarrage 19.04 à partir du lecteur système LUKS

J'essaie d'installer Kubuntu 19.04 sur un lecteur système crypté avec LUKS. L'installation se termine, mais GRUB ne demande pas de mot de passe et le système ne démarre pas.

J'ai trouvé quelques autres questions à ce sujet, mais elles entraînent des liens morts ou me disent de définir CRYPTFS=y et courir update-initramfs. Je pense que c'est déjà la valeur par défaut dans Ubuntu 19.04, mais je l'ai quand même essayé et cela ne fonctionne pas.

Comment puis-je faire GRUB demander un mot de passe au démarrage?

Sommaire

  1. Disques:
    • /dev/sda1: /boot/efi, non chiffré
    • /dev/sda2: /boot, non chiffré
    • /dev/sda3, /dev/mapper/cryptroot: /, crypté
  2. Kubuntu installé en utilisant les points de montage ci-dessus
  3. Ajoutée cryptdevice=UUID=6d5b5f47-58e8-4a9c-89c8-4f503f35ff3f:cryptroot root=/dev/mapper/cryptroot à /etc/default/grub et a couru update-grub en chroot
  4. Je vois GRUB, je vois l'écran de démarrage Kubuntu et juste un trait de soulignement clignotant

Détails

  1. Démarrer à partir d'un CD live
  2. Disque de partition utilisant Sudo fdisk /dev/sda

    • /dev/sda1: Système EFI
    • /dev/sda2: Système de fichiers Linux
    • /dev/sda3: Système de fichiers Linux
    Welcome to fdisk (util-linux 2.33.1).
    Changes will remain in memory only, until you decide to write them.
    Be careful before using the write command.
    
    Device does not contain a recognized partition table.
    Created a new DOS disklabel with disk identifier 0x087d3a28.
    
    Command (m for help): g
    Created a new GPT disklabel (GUID: 73F157B8-7425-7844-AE8E-3A46EF2ED5A4).
    
    Command (m for help): n
    Partition number (1-128, default 1): 
    First sector (2048-20971486, default 2048): 
    Last sector, +/-sectors or +/-size{K,M,G,T,P} (2048-20971486, default        20971486): +128M
    
    Created a new partition 1 of type 'Linux filesystem' and of size 128 MiB.
    
    Command (m for help): t
    Selected partition 1
    Partition type (type L to list all types): 1
    Changed type of partition 'Linux filesystem' to 'EFI System'.
    
    Command (m for help): n
    Partition number (2-128, default 2): 
    First sector (264192-20971486, default 264192): 
    Last sector, +/-sectors or +/-size{K,M,G,T,P} (264192-20971486, default        20971486): +512M
    
    Created a new partition 2 of type 'Linux filesystem' and of size 512 MiB.
    
    Command (m for help): n
    Partition number (3-128, default 3): 
    First sector (1312768-20971486, default 1312768): 
    Last sector, +/-sectors or +/-size{K,M,G,T,P} (1312768-20971486, default        20971486): 
    
    Created a new partition 3 of type 'Linux filesystem' and of size 9.4 GiB.
    
    Command (m for help): w
    
    The partition table has been altered.
    Calling ioctl() to re-read partition table.
    Syncing disks.
    
  3. Crypter la partition racine à l'aide de Sudo cryptsetup -y -v luksFormat --type luks2 /dev/sda3

  4. Montez le lecteur chiffré à l'aide de Sudo cryptsetup open /dev/sda3 cryptroot
  5. Formatez les partitions:
    1. Partition EFI: Sudo mkfs.vfat /dev/sda1
    2. Partition de démarrage: Sudo mkfs.ext4 /dev/sda2
    3. Partition racine: Sudo mkfs.ext4 /dev/mapper/cryptroot
  6. Installez Kubuntu à l'aide de ces appareils (/dev/sda1, /dev/sda2 et /dev/mapper/cryptroot)
  7. Entrez dans le Kubuntu installé:

    1. Montez les appareils requis:

      Sudo mount /dev/mapper/cryptroot /mnt
      Sudo mount --bind /dev /mnt/dev
      Sudo mount --bind /sys /mnt/sys
      Sudo mount --bind /proc /mnt/proc
      Sudo mount /dev/sda2 /mnt/boot
      
    2. Entrez chroot: Sudo chroot /mnt

    3. Ajustez les paramètres du noyau (/etc/default/grub):

      GRUB_CMDLINE_LINUX="cryptdevice=UUID=6d5b5f47-58e8-4a9c-89c8-4f503f35ff3f:cryptroot root=/dev/mapper/cryptroot"
      

      J'ai aussi essayé:

      GRUB_CMDLINE_LINUX="rd.luks.name=6d5b5f47-58e8-4a9c-89c8-4f503f35ff3f=cryptroot root=/dev/mapper/cryptroot"
      
    4. Courir update-grub

    5. Étape manquante ici (voir réponse)
  8. Redémarrez, lorsque je démarre sans quiet je vois la sortie suivante:

    [some other output]
    
    Begin: Loading essential drivers ... done.
    Begin: Running /scripts/init-premount ... done.
    Begin: Mounting root file system ... Begin: Running /scripts/local-top ... done.
    Begin: Running /scripts/local-premount ... done.
    Begin: Waiting for root file system ... Begin: Running /scripts/local-block ... done.
    done.
    Gave up waiting for root file system device.  Common problems:
     - Boot args (cat /proc/cmdline)
       - Check rootdelay= (did the system wait long enough?)
     - Missing modules (cat /proc/modules; ls /dev)
    ALERT!  /dev/mapper/cryptroot does not exist.  Dropping to a Shell!
    
    [BusyBox Shell]
    
2
Louis Matthijssen

D'accord, il me manquait une seule étape, que j'ai trouvée ici .

En gros, en chroot, je devais créer /etc/crypttab avec le contenu suivant:

cryptroot UUID=6d5b5f47-58e8-4a9c-89c8-4f503f35ff3f none luks

Et puis exécutez update-initramfs -u -k all.

4
Louis Matthijssen