У мене було те саме питання, ось як я це робив на ubuntu 12.04.1 та 12.10,
- перед початком переконайтесь, що у вас є резервна копія, а також можете завантажувати вашу систему за допомогою ubuntu CD або usb; як якщо ви помилитесь, ваша система може більше не завантажуватися або ви можете втратити дані. я припускаю, що у вас зашифрована система ubuntu з LUKS, всередині LUKS у вас є 3 розділи, SYSTEM-BOOT (не зашифрований), SYSTEM-SWAP (зашифрований) та SYSTEM-OS (зашифрований) -
Вам потрібно відрегулювати UUID, SYSTEM-SWAP_crypt, SYSTEM-OS_crypt, SYSTEM-SWAP, SYSTEM-OS для варіації, використовуваної у вашій системі, будь ласка, дивіться посилання нижче мого рішення для отримання додаткової інформації
Отримати UUID:
blkid
Підготуватися>
swapoff /dev/mapper/SYSTEM-SWAP_crypt
cryptsetup luksClose SYSTEM-SWAP_crypt
Скажіть cryptsetup, щоб обчислити парольну фразу розділу swap з ключа дешифрування тома, що містить кореневу файлову систему>
/lib/cryptsetup/scripts/decrypt_derived SYSTEM-OS_crypt | cryptsetup luksFormat /dev/mapper/SYSTEM-SWAP --key-file -
/lib/cryptsetup/scripts/decrypt_derived SYSTEM-OS_crypt | cryptsetup luksOpen /dev/mapper/SYSTEM-SWAP SYSTEM-SWAP_crypt --key-file -
mkswap /dev/mapper/SYSTEM-SWAP_crypt
повідомте системі про розділ swap, відредагуйте crypttab>
nano /etc/crypttab
=? переконайтесь, що дві лінії збігаються
SYSTEM-OS_crypt UUID=uuid-of-luks-containing-osroot none luks
SYSTEM-SWAP_crypt UUID=uuid-of-luks-containing-swap SYSTEM-OS_crypt luks,keyscript=/lib/cryptsetup/scripts/decrypt_derived
повідомте системі про розділ swap, відредагуйте fstab>
nano /etc/fstab
=? переконайтеся, що у вас є цей рядок
/dev/mapper/SYSTEM-SWAP_crypt swap swap sw 0 0
повідомте системі про розділ swap, відредагуйте резюме>
nano /etc/initramfs-tools/conf.d/resume
=? переконайтеся, що у вас є цей рядок
RESUME=UUID=uuid-of-encrypted-swap-SYSTEM-SWAP_crypt
оновити initramfs на завантажувальному розділі>
update-initramfs -u -k all
Довідково
Відповідь, натхненна налаштуванням зашифрованої системи Debian (заархівоване посилання):
Якщо ви використовуєте зашифровану систему Debian, ви, ймовірно, повинні відповідати деяким вимогам безпеки. Якщо це так, ви також повинні використовувати зашифрований розділ swap.
Розділ swap можна зашифрувати двома способами:
- його можна відтворити на кожному завантаженні, використовуючи випадкову парольну фразу або
- він може бути створений як і інші зашифровані томи зі стійкою парольною фразою
Якщо ви хочете скористатися призупиненням на диск, ви не можете використовувати перший підхід, оскільки він замінить слід пам’яті, що зберігається в розділі swap. Крім того, ви не можете використовувати файл ключів, як і інші розділи, оскільки коренева файлова система не (і не повинна) монтуватися до моменту запуску процесу відновлення та потребує читання розшифрованого розділу swap.
Я вирішив це, кажучи cryptsetup обчислити парольну фразу розділу swap із ключа дешифрування тома, що містить кореневу файлову систему; пакет cryptsetup реалізує це за допомогою /lib/cryptsetup/scripts/decrypt_derived
. Таким чином, щоб налаштувати розділ swap, я виконую наступне, припускаючи hda2
, що розділ містить зашифрований swap і коренева файлова система знаходиться в hda5_crypt
:
swapoff /dev/mapper/hda2_crypt
cryptsetup luksClose hda2_crypt
dd if=/dev/urandom of=/dev/hda2
/lib/cryptsetup/scripts/decrypt_derived hda5_crypt \
| cryptsetup luksFormat /dev/hda2 --key-file -
/lib/cryptsetup/scripts/decrypt_derived hda5_crypt \
| cryptsetup luksOpen /dev/hda2 hda2_crypt --key-file -
mkswap /dev/mapper/hda2_crypt
Щоб повідомити системі про цей розділ swap, нам потрібно додати його до
/etc/crypttab
та /etc/fstab
; переконайтеся, що ці файли містять рядки, такі як:
/etc/crypttab:
hda2_crypt /dev/hda2 hda5_crypt luks,keyscript=/lib/cryptsetup/scripts/decrypt_derived
/etc/fstab:
/dev/mapper/hda2_crypt swap swap sw 0 0
З цим на місці, як тільки ви налаштуєте систему для призупинення на диск, розділ swap автоматично буде встановлений поряд із кореневою файловою системою дуже рано під час завантаження. Щоб визначити, який розділ підкачки зробити доступним у цій точці, cryptsetup перевіряє наступне: asfasfafs - рядок типу RESUME=/dev/mapper/hda2_crypt
in /etc/initramfs-tools/conf.d/resume
- налаштування пристрою відновлення /etc/uswsusp.conf
(див. uswsusp.conf(5)
) - запис у /etc/suspend.conf
- a resume=/dev/mapper/hda2_crypt
в командному рядку ядра
Ви можете перевірити, /usr/share/initramfs-tools/hooks/cryptroot
чи хочете ви дізнатися більше про це.