Для начала определим вводные и техзадание.
Пользователь много путешествует и боится за сохранность своих данных. Установлена Ubuntu 22.04 на уже зашифрованный диск. Этот этап рекомендуется, т.к. автомонтирование требует наличие ключа дешифрования, который надо где-то хранить. Есть внешний usb диск, который требуется зашифровать и подключать / отключать его простым вытаскиванием из usb разъёма, без всяких манипулаций с mount / umount / cryptsetup open команд. Т.е. работа, как с обычной флешкой. Необходимо, чтобы флешка монтировалась в /opt/usb.
Итак, начнём.
1) Создалим LUKS ключ, котороый будет у нас лежать в профиле пользователя root для декодирования .
sudo dd if=/dev/urandom of=/root/lukskey bs=1024 count=4
Делаем ключ только на чтение для пользователя root
sudo chmod 0400 /root/lukskey
Находим наш внешний USB диск через команду lsblk (у нас это sdb, у Вас это может быть любое другое имя). ОСТОРОЖНО! Данные с флешки будут удалены!
Очищаем флешку, форматируя её через cryptsetup задав пароль.
sudo cryptsetup luksFormat /dev/sdb
WARNING!
========
This will overwrite data on /dev/sdb irrevocably.
Are you sure? (Type uppercase yes): YES
Enter passphrase:
Verify passphrase:
Добавим наш ключ разблокировки на зашифрованный диск:
sudo cryptsetup luksAddKey /dev/sdb /root/lukskey
После чего мы можем расшифровать диск и паролем, который задали изначально, и с помощью файла, разблокировки, который у нас лежит в /root/lukskey.
Теперь необходимо открыть запароленный диск и подключить его чтобы произвести дальнейшие манипуляции (я дам ему имя usb).
cryptsetup open /dev/sdb usb
После этого, в /dev/mapper полжен появиться наш диск usb
Двигаемся дальше. Нам необходимо теперь задать файловую систему для расшифрованного диска.
sudo mkfs.ext4 /dev/mapper/usb
После создания ФС, основная работа сделана. Займёмся автозакгрузкой.
Через blkid, вытащим UUID наших дисков:
sudo blkid | egrep 'sdb|mapper/usb'
В файл /etc/crypttab прописываем строку с UUID нашей флешки (берём sdb из вывода blkid с TYPE=»crypto_LUKS»):
usb UUID=7c100e2f-aa9e-4464-bd5b-1f945f336c3b /root/lukskey luks,noauto,nofail,x-systemd.device-timeout=5
В файл /etc/fstab прописываем строку монтирования нашего диска с UUID расшифрованного /dev/mapper/usb :
UUID=66eb5175-4522-4620-bdaf-9fd100fec80a /opt/usb ext4 noauto,lazytime,x-systemd.automount,x-systemd.idle-timeout=5min,nofail,x-systemd.device-timeout=20 0 2
Проверяем, что FSTAB мы не испортили:
sudo mount -a
На этом можно пробовать ребутиться и проверять как всё работает.
Успехов! 🙂