Mari saya mulai dengan mengatakan saya bukan orang baru di LUKS. Saya telah menyiapkan LUKS dengan skrip kunci beberapa kali dengan dan tanpa LVM. Saya tidak yakin apa yang sebenarnya terjadi di sini. Saya memiliki sistem yang memiliki partisi terenkripsi tunggal. Drive saya diatur sebagai berikut:
# lsblk NAMA MAJ: MIN RM UKURAN RO TYPE MOUNTPOINT sda 8: 0 0 128G 0 disk └─sda1 8: 1 0 128G 0 bagian ├─vg0-root 253: 1 0 20G 0 lvm / ├─vg0-secure 253: 6 0 100M 0 lvm │ └─secure 253: 7 0 98M 0 crypt / root / secure └─vg0-swap 253: 4 0 1G 0 lvm [SWAP]
/etc/crypttab
File saya terlihat seperti ini
# UUID tidak diperlukan di sini karena jalur ke LV tidak akan berubah secure / dev / vg0 / secure none luks, keyscript = / lib / cryptsetup / scripts / insecure
/lib/cryptsetup/scripts/insecure
File saya dapat dieksekusi dan terlihat seperti ini
#!/bin/sh
# My actual file looks somewhat different because it dumps the key file with dd.
# This accomplishes virtually the same thing though.
echo -n "my-encryption-password"
Saya telah menjalankan update-initramfs -k all -u
beberapa kali setelah mengkonfigurasi crypttab dan meletakkan file keyscript saya di tempatnya.
Sejauh yang saya tahu, file skrip saya bahkan tidak disalin ke file initrd.img. Sekarang saya berpikir tentang hal itu, saya tidak berpikir itu akan disalin ke file initrd.img karena partisi root tidak dienkripsi dan file skrip harus mudah diakses dari sana.
Setelah reboot, sistem melihat catatan dari crypttab dan meminta kata sandi (yang dalam kasus saya sebenarnya tidak ada karena satu-satunya kunci adalah file keyfile penuh bit acak) daripada menggunakan skrip kunci untuk membuka kunci partisi LUKS. Saya telah mencoba mengeluarkan LUKS dari LVM dan meletakkannya di sda2, dan hasilnya sama. Saya juga tahu bahwa naskah kunci berfungsi karena cryptsetup luksOpen /dev/vg0/secure secure -d - <<< "$(/lib/cryptsetup/scripts/insecure)"
berfungsi seperti pesona dan mendekripsi partisi LUKS saya.
Saya sudah mencoba ini di Ubuntu 16.04.2 dan Ubuntu Mate 16.04.2 dengan hasil yang sama. Saya telah menggunakan skrip kunci sebelumnya tanpa masalah. Satu-satunya perbedaan adalah bahwa, di masa lalu, partisi / saya selalu dienkripsi. Jika ada yang bisa menjelaskan, saya akan menghargainya. Saya hanya ingin partisi terenkripsi yang sangat kecil karena saya berencana untuk mengkloning sistem ini, dan saya tidak ingin mengkloningnya dengan seluruh / partisi yang dienkripsi.
PEMBARUAN 2017-04-26
Dalam menggali log, saya menemukan garis dengan kesalahan berikut yang tidak masuk akal. Sejak kapan 'keyscript = / path / to / script' merupakan opsi yang tidak diketahui untuk crypttab?
... systemd-cryptsetup [737]: Menemukan opsi yang tidak diketahui / etc / crypttab 'keyscript = / lib / cryptsetup / scripts / insecure', abaikan.
Hanya untuk iseng, saya mencoba menghapus opsi keyscript dan menggunakan keyfile, dan semuanya berhasil! Bahkan, saya mencoba opsi lain seperti keyfile-offset, dan mereka bekerja juga. Oleh karena itu, masalahnya terletak di suatu tempat dengan opsi naskah. Adakah yang tahu mengapa?