Я использую тестирование Debian, и у меня есть файл, это контейнер LUKS с файловой системой ext4. Моя система монтирует его при каждой загрузке. Для этого мне пришлось использовать три следующих файла:
/ И т.д. / crypttab
sda2_crypt UUID=727fa348-8804-4773-ae3d-f3e176d12dac none luks crypt_dropbox /media/Server/Dropbox/luks_dropbox sda2_crypt luks,keyscript=/lib/cryptsetup/scripts/decrypt_derived,noauto
/ И т.д. / Fstab
# dropbox UUID=0d959e74-ec19-43bf-b779-60134c676aef /media/Dropbox ext4 defaults,noauto,user,nofail,noatime,commit=20 0 2
/etc/rc.local
cryptdisks_start crypt_dropbox mount /media/Dropbox
Контейнер не может быть открыт и смонтирован автоматически при загрузке через /etc/crypttab
+ /etc/fstab
потому что том dropbox находится в разделе и должен быть открыт перед монтированием раздела. Итак, вот почему есть noauto
в / и /etc/crypttab
Файловая система внутри этого контейнера также не может быть смонтирована с помощью mount -a
(по крайней мере, при загрузке), потому что устройства пока нет. Опция nofail
существует для подавления ошибки "нет устройства". И первый этап завершен. Второй этап - когда загрузка завершена, поэтому я использовал /etc/rc.local
. Первая строка открывает без пароля (из-за настроек в / etc / crypttab) том dropbox, вторая монтирует его через / etc / fstab. И это работает.
Ошибка возникает, когда система пытается размонтировать раздел, на котором находится том Dropbox. Я не знаю точно, почему, но это может быть из-за того, что файловая система тома dropbox заблокирована, или, возможно, контейнер открыт, или даже потому, что устройство loop0 все еще активно. Чтобы полностью закрыть том Dropbox, я должен использовать следующие команды:
umount /media/Dropbox cryptdisks_stop crypt_dropbox losetup -d /dev/loop0
Есть ли способ сделать это только когда система выключается, но перед размонтированием любого другого раздела? Есть ли файл, куда я могу вставить эти команды, похожий на /etc/rc.local?