Wie richte ich Grub manuell auf einer separaten Bootpartition mit LVM über LUKS-Vollplattenverschlüsselung ein?

Wie richte ich Grub manuell auf einer separaten Bootpartition mit LVM über LUKS-Vollplattenverschlüsselung ein?

Ich habe Linux Mint 17.2 mit einer wie folgt partitionierten Festplatte installiert:

sdc1 - 100MB ext2 for boot
sdc2 - rest of disk as LUKS -> Physical Volume -> LVM Volume

Die logischen Datenträger sind:

/
/home
swap

Das Installationsprogramm schien ordnungsgemäß zu funktionieren, allerdings konnte es den Bootloader nicht installieren und ich war gezwungen, die Option „Bootloader später manuell installieren“ auszuwählen.

Ich habe die LiveCD ausgeführt, das LUKS-Volume geöffnet und das logische Stammvolume unter /mnt gemountet.

Frage: Wie installiere ich den Bootloader?

In den meisten Anleitungen steht etwa:

# grub-install --root-directory=/mnt/ /dev/sdc

Das Ergebnis ist jedoch:

grub-probe: error: failed to get canonical path of `/cow'.
Installing for i386-pc platform.
grub-install.real: error: attempt to install to encrypted disk without cryptodisk enabled. Set `GRUB_ENABLE_CRYPTODISK=1' in file `/etc/default/grub'..

Ich habe beides bearbeitet /etc/default/grubund beides /mnt/etc/default/grubergänzt , aber der Fehler tritt immer noch auf.GRUB_ENABLE_CRYPTODISK=1

Wie kann ich dies richtig einrichten, damit Grub auf dem unverschlüsselten sdc1 installiert wird, zur Eingabe des Kennworts auffordert und das System nach dem Entsperren bootet?

AKTUALISIEREN

Grub wird jetzt beim Booten geladen, fragt aber nicht nach dem Passwort und entschlüsselt nicht richtig. Durch Hinzufügen der folgenden Optionen /etc/default/grubkann ich dafür sorgen, dass es nach einem Passwort fragt, aber bei Eingabe des richtigen Passworts nicht entschlüsselt:

GRUB_DEFAULT=0
#GRUB_HIDDEN_TIMEOUT=0
#GRUB_HIDDEN_TIMEOUT_QUIET=true
GRUB_TIMEOUT=10
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`    
GRUB_CMDLINE_LINUX_DEFAULT="cryptopts=target=lvmbase,source=/dev/disk/by-uuid/f7ddbdb6-51c3-4c59-9d1e-7751b0438431,lvm=vg0_root"
GRUB_CMDLINE_LINUX=""

Antwort1

Normalerweise stelle ich es grubvon innen wieder her chroot. Boote also von einer Live-Distribution und ...

Öffnen Sie das LUKS-Volume:

# cryprsetup open /dev/sdc2 luks-mint

LVM-Volumes aktivieren:

# vgscan
# vgchange -a y vg_mint
# lvscan

Mount Mint und machen Sie sich bereit für chroot:

# mount /dev/mapper/vg_mint-root /mnt
# mount /dev/sdc1 /mnt/boot
# mount --rbind /dev /mnt/dev
# mount --rbind /sys /mnt/sys
# mount -t proc none /mnt/proc

chrootin Mint:

# env -i HOME=/root TERM=$TERM chroot /mnt bash -l

Konfigurieren und installieren grub, beenden chroot:

(chroot)# grub2-mkconfig > /boot/grub2/grub.cfg
(chroot)# grub2-install /dev/sdc
(chroot)# exit

Neustart.

PS: Ersetzen Sie die VG- und LV-Namen entsprechend.

PPS: Ich bin davon ausgegangen, dass Linux Minut verwendet. grub2Wenn nicht, entfernen Sie die „2“ aus beiden grubBefehlen.

verwandte Informationen