Шифрование LUKS на уже установленном Linux.

Имеем Linux Mint Cinnamon Edition v21.3 система уже установлена и нужно добавить шифрование домашнего раздела.
Как показала практика в моем случе не было LVM и это усложнило ситуацию. С LVM мы просто отрезаем кусок от рабочей системы без каких либо сложностей, я опишу свою ситуацию.

Разбивка диска

1 Делаем бэкап своих данных на внешний носитель.
2 Грузимся с флешки в Linux
3 Проверяем диск на ошибки sudo e2fsck -f /dev/sda1
4 Теперь надо решить, сколько оставляем под систему и сколько под свой раздел. я выделил под систему 100GB, а себе забрал все остальное и далее нужно ужать файловую систему и партицию до нужного объема. Но тут есть тонкость, что реально угадать на сколько ужимать и как изменять диск довольно сложно, поэтому я пошел другим путем.

Урезаем размер файловой системы до 80ГБ.
resize2fs /dev/sda2 80G
Заходим в parted набираем print all ищем номер нашей партиции и меняем размер уже до 100GB
resizepart 2 100GB
И под конец запускаем еще раз resize2fs /dev/sda2, но уже без размера. Так fs будет увеличена на максимум, у меня получилось где то 91GB.
Под свои размеры и нужды адаптируйте сами, самое главное смотрите, что бы свободного места было больше чем занимают данные и я бы сделал как минимум на 10% больше диск в parted чем выделил в файловой системе. Ибо на разметку диска уходит довольно много пространства.
5 На этом этапе можно перезагрузиться в рабочую систему. я не стал сильно замарачиваться с консольной програмкой parted ибо он попросил меня начало и конец блока при создании новой партиции и просто поставил gparted и сделал нужную партицию через него.

Шифруем

Следующей командой включаем шифрование на нужном разделе. Сначала она попросит вас удостовериться, что вы этого хотите, а в вашем случе еще раз проверьте верная ли партиция указана и потом введите YES большими буквами. Ну и конечно пароль, который я надеюсь вы надежно сохраните и запомните...
sudo cryptsetup luksFormat /dev/sda3

Инитим диск
cryptsetup open /dev/sda3 my-crypto-home

Создаем файловую систему
sudo mkfs.ext4 /dev/mapper/my-crypto-home

Далее редактируем файл /etc/crypttab, где UUID мы смотрим командой blkid. Это нужно для того что бы при загрузке системы диск был инициирован и запрошен пароль. Будте внимательны и берите UUID именно /dev/sda3, а не /dev/mapper/my-crypto-home

cryptHome     UUID=12345678-abcd-1234-5678-1234567890ab    none    luks,timeout=30

Ну и конечно добавляем в /etc/fstab, где username ваше имя или же можете смонтировать например /home, сразу для всех пользователей.

/dev/mapper/cryptHome         /home/username    ext4   defaults    0    2

Так же обязательно делаем бэкап заголовка на случай краха и сохраняем его в надежном месте. Иначе есть риск потерять все данные. Как пишут в руководстве, такое случается...

cryptsetup luksHeaderBackup /dev/sda3 --header-backup-file luksHeaderBackup.bin

Для восстановления используем опцию luksHeaderRestore

На конец переходим в init 3. Переименовываем свой каталог и создаем на его месте пустой. Перезагружаемся, если пароль был запрошен и все прошло, хорошо, переходим в консоль, копируем свои данные уже в зашифрованный диск и запускаем графический сеанс.

Возможные проблемы

Если при загрузке система не грузится и не запрашивает пароль, проверьте верный ли вы ввели UUID.

Материалы при наприсании статьи

Разбивка диска
https://losst.pro/kak-izmenit-razmer-ext4

LUKS
https://cobertos.com/blog/post/linux-mint-luks-encrypted-user-home-directory
https://askubuntu.com/questions/1335006/what-is-the-recommended-method-to-encrypt-the-home-directory-in-ubuntu-21-04

[ Править ]

@kiranananda