Ich versuche, eine vollständig verschlüsselte Festplatte mit einer separaten /boot
Partition einzurichten, und habe einige Probleme.
Ich schreibe die Prozedur auf, die ich bei einer Ubuntu 15.04 Live DVD-Sitzung befolgt habe.
Fülle die Diskette mit 'zufälligen Daten'
sudo dd if=/dev/urandom of=/dev/sda1 bs=4096 #ok
Erstellen Sie die Partitionen (mit gparted)
- Partitionstabelle erstellen - gpt 2.
- / dev / sda1 ext2 1.5GB #boot
- / dev / sda2 linux-swap 4GB #swap
- / dev / sda3 ext4 15 GB #root
- / dev / sda4 ext4 FREESPACE #home
- Partitionstabelle erstellen - gpt 2.
Verschlüsseln Sie Volumes
cryptsetup luksFormat --cipher twofish-xts-plain64 --key-size 512 --hash sha512 --iter-time 3000 /dev/sda1 cryptsetup luksFormat --cipher twofish-xts-plain64 --key-size 512 --hash sha512 --iter-time 3000 /dev/sda2 cryptsetup luksFormat --cipher twofish-xts-plain64 --key-size 512 --hash sha512 --iter-time 3000 /dev/sda3 cryptsetup luksFormat --cipher twofish-xts-plain64 --key-size 512 --hash sha512 --iter-time 5000 /dev/sda4
Öffnen Sie das Cryptovolume
cryptsetup luksOpen /dev/sda1 boot cryptsetup luksOpen /dev/sda2 swap cryptsetup luksOpen /dev/sda3 root cryptsetup luksOpen /dev/sda4 home
Format
mkfs.ext2 /dev/mapper/boot mkswap /dev/mapper/swap mkfs.ext4 /dev/mapper/root mkfs.ext2 /dev/mapper/home
Installieren (mit Ubiquity)
- Bootloader auf / dev / sda
- / dev / sda1 - Verwendung als ext2 - Mountpunkt / boot
- / dev / sda2 - Verwendung als ext2 - Mountpunkt / boot
- / dev / sda3 - Verwendung als ext2 - Mountpunkt / boot
- / dev / sda4 - Verwendung als ext2 - Mountpunkt / boot
Am Ende warnt das Installationsprogramm, dass die Installation von grub fehlgeschlagen ist (da das Boot-Volume verschlüsselt ist). Wählen Sie daher "ohne Bootloader fortfahren".
Reinigen Sie das Startvolume
mkfs.ext2 /dev/mapper/boot
Mount Volume
mkdir /mnt/root mount /dev/mapper/root /mnt/root mount /dev/mapper/boot /mnt/root/boot
Aktualisieren Sie fstab und crypttab
sudo blkid [/dev/sr0: UUID="2015-10-21-16-17-40-00" LABEL="Ubuntu 15.10 amd64" TYPE="iso9660" PTUUID="429817b4" PTTYPE="dos" /dev/sda1: UUID="...#1" TYPE="crypto_LUKS" PARTUUID="..." /dev/sda2: UUID="...#2" TYPE="crypto_LUKS" PARTUUID="..." /dev/sda3: UUID="...#3" TYPE="crypto_LUKS" PARTUUID="..." /dev/sda4: UUID="...#4" TYPE="crypto_LUKS" PARTUUID="..." /dev/mapper/boot: UUID="..." TYPE="ext2" /dev/mapper/swap: UUID="..." TYPE="swap" /dev/mapper/root: UUID="..." TYPE="ext4" /dev/mapper/home: UUID="..." TYPE="ext4"]
fstab
#<file system> <mount point> <type> <options> <dump> <pass> UUID=#1 /boot ext2 defaults 0 2 UUID=#2 none swap sw 0 0 UUID=#3 / ext4 errors=remount-ro 0 1 UUID=#4 /home ext4 defaults 0 2
crypttab
boot UUID=#1 luks,cipher=twofish-xts-plain64,size=512, hash=whirlpool, time=3000 swap UUID=#2 luks,swap,cipher=twofish-xts-plain64,size=512, hash=whirlpool,time=3000 root UUID=#3 luks,cipher=twofish-xts-plain64,size=512, hash=whirlpool,time=3000 home UUID=#4 luks,cipher=twofish-xts-plain64,size=512, hash=whirlpool,time=5000
Aktualisieren Sie das initramfs-Image
cd /mnt sudo chroot root mount -t proc proc /proc mount -t sysfs sys /sys mount -t devpts devpts /dev/pts update-initramfs -u #ok
Bootloader konfigurieren (
/etc/default/grub
)GRUB_ENABLE_CRYPTODISK=y GRUB_PRELOAD_MODULES="luks cryptodisk" GRUB_CMDLINE_LINUX="cryptdevice=UUID#3:root root=/dev/mapper/root resume=/dev/mapper/swap crypto=whirlpool:twofish-xts-plain64:512:0:"
Konfigurationsdatei erstellen
$ grub-mkconfig -o /boot/grub/grub.cfg [/usr/sbin/grub-probe: error: failed to get canonical path of `/dev/mapper/root'.]
draußen versuchen
$ exit $ grub-mkconfig -o /boot/grub/grub.cfg [/usr/sbin/grub-probe: error: failed to get canonical path of `/cow'.]
Habe ich vorher einen Fehler gemacht? Wie kann ich grub weiterhin richtig konfigurieren und installieren?
quelle
grub
Ihrem Titel gesucht . Ich nehme an, Sie haben Ihr Verschlüsselungsverfahren unter pavelkogan.com/2014/05/23/luks-full-disk-encryption gefunden (dies ist die erste Google-Suche zu diesem Thema). wenn nicht, hilft das vielleicht. Gute Frage! und viel Glück!/boot
als Ausgangspunkt für alles. Ich hoffe, das ist ein Tippfehler. 2. Sie haben/dev
beim Chrooten nicht gemountet , aber Devpts gemountet. OoAntworten:
Sie haben einige Fehler gemacht, aber das Hauptproblem liegt in der Allgegenwart und im Grub. Wenn Sie festlegen
/
, dass es sich um eine verschlüsselte Partition handelt, und keine separate Partition für diese Partition erstellen/boot
, gibt grub im Grunde eine Fehlermeldung aus, die wie folgt lautet:Ein Überblick über den Prozess
/boot
Partition und einem verschlüsselten BTRFS/
mit dem Standard-Installationsprogramm.chroot
einige wichtige Konfigurationsänderungen vor und installieren grub erneut auf der EFI-Systempartition und erstellen initrd neu.Die detaillierten Schritte
sudo apt update && sudo apt upgrade
den Befehl aus, um die Installationskomponenten zu aktualisierenfdisk
,gparted
oder ein anderes Tool, um 3 Partitionen zu erstellen:/boot
Bereiten Sie die verschlüsselte Partition vor
Installieren Sie Ubuntu
/dev/sda1
alsEFI System Partition
/dev/sda2
als ext2, formatiert, mit Mount-Punkt von/boot
/dev/mapper/sda3_crypt
als BTRFS mit Mount-Punkt von/
Kopieren Sie den Inhalt von
/boot
und machen Sie achroot
(Alles geschieht jetzt wie
chroot
in Ihrem neuen System.)Zeile hinzufügen zu
/etc/default/grub
Zeile hinzufügen zu
/etc/crypttab
. Sie müssen zuerst ausgeführt werdensudo blkid
, um die UUID von/dev/sda3
(NOT/dev/mapper/sda3_crypt
) zu ermitteln.Bearbeiten
/etc/fstab
und löschen Sie die Zeile für/boot
. Die anderen Einträge sind korrekt.Installieren Sie grub auf der EFI-Systempartition, generieren Sie eine neue Datei grub.cfg und bereiten Sie initrd vor.
Optionale Überprüfung: Überprüfen Sie, ob
/boot/efi/EFI/ubuntu/grub/grub.cfg
Zeilen enthalteninsmod luks
sindcryptomount -u <UUID>
, die korrekten Starteinträge usw., und überprüfen Sie, ob Ihre initrd diecryptsetup
Binärdatei enthält . Wenn diese Dinge fehlen, liegt es daran, dass grub-mkconfig und / oder update-initrd nicht herausfinden konnten, wie sich die Volumes, die Sie in fstab bereitgestellt oder angegeben haben, auf das verschlüsselte Volume in crypttab beziehen. (Es gibt eine Menge magischer Autokonfigurationen.) Dies kann passieren, wenn Sie von diesem Handbuch abweichen, indem Sie beispielsweise ZFS verwenden oder versuchen, sda3_crypt zu partitionieren.(Wenn Sie ZFS anstelle von btrfs verwenden) grub-mkconfig und update-initrd erkennen ZFS nicht. Die Problemumgehung umfasst (während chroot vor grub-mkconfig / update-initrd) das Bearbeiten
/usr/sbin/grub-mkconfig
, um|| true
zu Zeile 139 (die mit beginntGRUB_DEVICE=
), HinzufügenGRUB_DEVICE="/dev/mapper/sda3_crypt"
zu/etc/default/grub
, Erstellen von Dateien/usr/share/initramfs-tools/conf-hooks.d/forcecryptsetup
mit Inhaltenexport CRYPTSETUP=y
und Dateien/etc/initramfs-tools/conf.d/cryptroot
mit Inhalten hinzuzufügentarget=sda3_crypt,source=UUID=<UUID of sda3>,key=none,discard
. Dies alles zusätzlich zu den Schritten, die Sie ausführen würden, wenn Sie die ZFS-Partition nicht verschlüsseln würden (z. B. das Installieren von zfs-Userspace-Utils sowohl im Live-System als auch während chroot und das Löschen der/
in fstab bereitgestellten Zeile ).Beenden Sie chroot und starten Sie Ihr neues System neu
Sie sollten sehen, wie grub Sie nach Ihrem Passwort fragt. Dann erhalten Sie das Boot-Menü. Nachdem Sie Ubuntu gewählt haben, werden Sie erneut nach Ihrem Passwort gefragt. Dann sind Sie in Ihrem System. Lesen Sie mehr darüber, wie Ubuntu BTRFS verwendet .
TODO : Erstellen Sie einen verschlüsselten Swap (Hinweis: Bearbeiten von Crypttab, Fstab und erneutes Ausführen
update-initrd
).Upgrades
grub-mkconfig
Befehl ausführen .grub-install
Befehl ausführen .Weitere Hinweise
quelle
fstab
und in der Fragecrypttab
eigentlich nicht richtig sind.crypttab
sollte auf dieuuid
der rohen/dev/sdxY
Geräte zeigen;fstab
sollte auf die geöffneten Verschlüsselungsgeräte zeigen/dev/mapper/label
.grub-install
Anweisung haben Sie einen--bootloader=ubuntu
Parameter. Ich kann dieses Argument weder in Ubuntus noch in GNUs Handbüchern finden. Können Sie klarstellen, was es tut oder wo es dokumentiert ist?