Hallo!
Jetzt nochmal Butter bei die Fische und ein Test für Debian "Jessie" in der aktuellen Version. Ich erstelle hier nur ein verschlüsseltes swap-Device, die root-Partition bleibt unverschlüsselt.
Code: Alles auswählen
# cat /etc/debian_version
8.4
# uname -a
Linux deb8v 3.16.0-4-amd64 #1 SMP Debian 3.16.7-ckt25-2 (2016-04-08) x86_64 GNU/Linux
Die Software wird installiert:
Code: Alles auswählen
# apt-get install cryptsetup
[...]
cryptsetup-bin (2:1.6.6-5) wird eingerichtet ...
cryptsetup (2:1.6.6-5) wird eingerichtet ...
update-initramfs: deferring update (trigger activated)
update-rc.d: warning: start and stop actions are no longer supported; falling back to defaults
update-rc.d: warning: start and stop actions are no longer supported; falling back to defaults
Trigger für systemd (215-17+deb8u4) werden verarbeitet ...
Trigger für initramfs-tools (0.120+deb8u1) werden verarbeitet ...
update-initramfs: Generating /boot/initrd.img-3.16.0-4-amd64
Hier fällt auf, das da noch nicht angepasste init-Skripte rumhängen.
Der Inhalt der "fstab" vor den Änderungen:
Code: Alles auswählen
# cat /etc/fstab
UUID=57e41b29-16c5-4632-9737-bbef97e3b0f4 / ext4 errors=remount-ro 0 1
# /boot/efi was on /dev/sda1 during installation
UUID=CAAA-CE53 /boot/efi vfat umask=0077 0 1
# swap was on /dev/sda3 during installation
UUID=46e550f5-4a5e-4fb9-9b07-1909e3bb978e none swap sw 0 0
...und danach der geänderte swap-Eintrag:
Code: Alles auswählen
# cat /etc/fstab
[...]
# swap was on /dev/sda3 during installation
# UUID=46e550f5-4a5e-4fb9-9b07-1909e3bb978e none swap sw 0 0
/dev/mapper/cryswap none swap sw 0 0
Die bis jetzt leere "crypttab" erhält einen Eintrag:
Code: Alles auswählen
# cat /etc/crypttab
# <target name> <source device> <key file> <options>
cryswap /dev/sda3 /dev/urandom swap,luks
Jetzt wird das initramfs noch aktualisiert und neu gestartet:
Code: Alles auswählen
# update-initramfs -u
update-initramfs: Generating /boot/initrd.img-3.16.0-4-amd64
# reboot
Beim Booten wird nach Grub gleich nach einem Passwort gefragt. Drückt man die Eingabetaste geht es weiter. Es wird ein zweites Mal nach einem Passwort gefragt, geht aber auch weiter wenn man nichts macht. Das swap wird nicht eingerichtet. Fehler aus dem Log:
Code: Alles auswählen
Apr 22 13:32:37 deb8v systemd-cryptsetup[263]: Set cipher aes, mode cbc-essiv:sha256, key size 256 bits for device /dev/sda3.
Apr 22 13:32:37 deb8v kernel: device-mapper: uevent: version 1.0.3
Apr 22 13:32:37 deb8v kernel: device-mapper: ioctl: 4.27.0-ioctl (2013-10-30) initialised: dm-devel@redhat.com
Apr 22 13:32:37 deb8v kernel: sha256_ssse3: Using AVX optimized SHA-256 implementation
Apr 22 13:32:37 deb8v swapon[309]: swapon: /dev/mapper/cryswap: swapon failed: Das Argument ist ungültig
Apr 22 13:32:37 deb8v systemd[1]: dev-mapper-cryswap.swap swap process exited, code=exited status=255
Apr 22 13:32:37 deb8v systemd[1]: Failed to activate swap /dev/mapper/cryswap.
Apr 22 13:32:37 deb8v systemd[1]: Unit dev-mapper-cryswap.swap entered failed state.
Die Fehlermeldung "Das Argument ist ungültig" ist mehr oder weniger hilfreich

. Also nochmal das cryptdevice von Hand starten:
Code: Alles auswählen
# cryptdisks_start cryswap
[....] Starting crypto disk...[....] cryswap: LUKS does not work with random dat[warnkey ... (warning).
[FAILap (invalid key)...failed.
# systemctl status cryptsetup.target
● cryptsetup.target - Encrypted Volumes
Loaded: loaded (/lib/systemd/system/cryptsetup.target; static)
Active: inactive (dead)
Docs: man:systemd.special(7)
Apr 22 13:32:37 deb8v systemd[1]: Dependency failed for Encrypted Volumes.
Daher weht der Wind: LUKS läuft nicht mit dem "/dev/urandom"-Device. Dann probiere ich es mal mit einem Schlüssel und ändere die crypttab:
Code: Alles auswählen
# dd if=/dev/urandom of=/root/secret.key bs=512 skip=4 count=16
# chmod o-r secret.key
# vi /etc/crypttab
# <target name> <source device> <key file> <options>
cryswap /dev/sda3 /root/secret.key swap,noearly
Das kann man jetzt von Hand mal ausprobieren:
Code: Alles auswählen
# swapoff -a
# cryptdisks_start cryswap
# blkid
/dev/sda1: UUID="CAAA-CE53" TYPE="vfat" PARTUUID="eea2d2ca-55bb-4a4f-80bb-d1e3d1b244f3"
/dev/sda2: UUID="57e41b29-16c5-4632-9737-bbef97e3b0f4" TYPE="ext4" PARTUUID="00eba288-bd0d-4498-aa70-aa4aa394b8e7"
/dev/mapper/cryswap: UUID="268c2aee-0fe8-44aa-a092-0f9f55e3471e" TYPE="swap"
/dev/sda3: PARTUUID="49d29a1b-1091-4e7b-97c2-4e231a0ae232"
# cryptsetup status cryswap
/dev/mapper/cryswap is active.
type: PLAIN
cipher: aes-cbc-essiv:sha256
keysize: 256 bits
device: /dev/sda3
offset: 0 sectors
size: 4186112 sectors
mode: read/write
# reboot
Das funktioniert jetzt, auch nach einem Neustart.
Es gibt aber immer noch Fehlermeldungen:
Code: Alles auswählen
[...]
Apr 22 13:41:37 deb8v kernel: device-mapper: uevent: version 1.0.3
Apr 22 13:41:37 deb8v kernel: device-mapper: ioctl: 4.27.0-ioctl (2013-10-30) initialised: dm-devel@redhat.com
Apr 22 13:41:37 deb8v systemd-cryptsetup[225]: Set cipher aes, mode cbc-essiv:sha256, key size 256 bits for device /dev/sda3.
Apr 22 13:41:37 deb8v swapon[224]: swapon: /dev/sda3: read swap header failed
Apr 22 13:41:37 deb8v systemd[1]: dev-sda3.swap swap process exited, code=exited status=255
[...]
Apr 22 13:41:37 deb8v systemd[1]: Failed to activate swap Swap Partition.
Apr 22 13:41:37 deb8v systemd[1]: Dependency failed for Swap.
Apr 22 13:41:37 deb8v systemd[1]: Unit dev-sda3.swap entered failed state.
Apr 22 13:41:37 deb8v kernel: sha256_ssse3: Using AVX optimized SHA-256 implementation
Apr 22 13:41:37 deb8v swapon[305]: swapon: /dev/mapper/cryswap: swapon failed: Das Argument ist ungültig
Apr 22 13:41:37 deb8v systemd[1]: dev-mapper-cryswap.swap swap process exited, code=exited status=255
Apr 22 13:41:37 deb8v systemd[1]: Failed to activate swap /dev/mapper/cryswap.
Apr 22 13:41:37 deb8v systemd[1]: Unit dev-mapper-cryswap.swap entered failed state.
Apr 22 13:41:37 deb8v mkswap[304]: mkswap: /dev/mapper/cryswap: warning: wiping old swap signature.
Apr 22 13:41:37 deb8v mkswap[304]: Setting up swapspace version 1, size = 2093052 KiB
Apr 22 13:41:37 deb8v mkswap[304]: no label, UUID=ede435e4-77b0-400e-846d-822f1e20bd73
[...]
Apr 22 13:41:37 deb8v systemd-cryptsetup[225]: Set cipher aes, mode cbc-essiv:sha256, key size 256 bits for device /dev/sda3.
Apr 22 13:41:37 deb8v swapon[224]: swapon: /dev/sda3: read swap header failed
Apr 22 13:41:37 deb8v systemd[1]: dev-sda3.swap swap process exited, code=exited status=255
[...]
Apr 22 13:41:37 deb8v systemd[1]: Failed to activate swap Swap Partition.
Apr 22 13:41:37 deb8v systemd[1]: Dependency failed for Swap.
Unsinnigerweise wird das swapon auch für /dev/sda3 mehrmals ausgeführt, aber kein einziges mkswap auf diesem Device. In der Manpage von Debian gibt es den Parameter "noearly": "With this option the device is ignored during the first invocation of the cryptsetup init scripts.". Setzt man das in der crypttab ein gibt es im Log einen Fehler:
Code: Alles auswählen
Apr 22 13:49:21 deb8v systemd-cryptsetup[227]: Encountered unknown /etc/crypttab option 'noearly', ignoring.
Aha, die Realität hat sich ein Stück von dieser Manpage entfernt, das hatte ich mir schon gedacht. In den "anderen" Manpages, von systemd, gibt es diesen Parameter ja auch nicht mehr. Wir haben also eine Version systemd[215] und eine Manpage aus einer anderen Realität.
Gruss, habakug