LINUX.ORG.RU
решено ФорумAdmin

Форсированное отключение шифрованного раздела

 ,


0

1

Имеется смонтированный шифрованный раздел (cryptsetup open + mount, внутри ext4 с журналированием!), ищется способ его немедленного размонтирования и закрытия устройства невзирая на файловые блокировки (открытые файлы/каталоги) и несохраненные файловые транзакции (должны отбрасываться). Debian 9.
Наличие файловых блокировок (samba пользователи, шара не чисто на точку монтирования - общая) препятствует как размонтированию, так и закрытию устройства. Отрубать всё - нельзя, ребут - тоже. Требуется просто закрыть раздел со сбросом висящих io и потерей данных.
Можно конечно через dmsetup форсированно закрыть /dev/mapper/ ссылку, но тогда остаются висящие ядерные jbd2 процессы на dm устройство, которые не убить и которые не дают закрыть устройство.


Ответ на: комментарий от Zhbert

Кэп, это вы? Не узнал! :)
Весьма советую почитать для чего этот ключик применим.
Так что данная команда закономерно выводит:

# umount --force /dev/mapper/disk2
umount: xxxx: target is busy
        (In some cases useful info about processes that
         use the device is found by lsof(8) or fuser(1).)

Специально же акцентировал, что есть блокировки ФС - открытые файлы/каталоги. Процесс, который держит файлы на этом устройстве - smbd, но его убивать нельзя, данные файлы лишь малая часть открытых им - другие трогать нельзя. Бывает еще и jbd2 держит.
p.s.
Да, отложенное отмонтирование тут тоже без толку, т.к. то, что уже открыто - продолжает висеть и удерживать устройство.

sptim
() автор топика

Пока что, как костыль, можно использовать:

# umount -l /dev/mapper/disk2
# dmsetup remove --deferred disk2

По крайней мере это освобождает точку монтирования (как следствие - скрывает шифрованные данные), а также не даёт смонтировать повторно (хотя х.з., сильно не копал - может и можно как-то исхитриться).

НО! Устройство остаётся видно среди /dev/dm* и /dev/mapper/*, а также в процессах висят используемые файлы, чего в идеале хотелось бы избежать, т.е. закрыть полностью.

sptim
() автор топика
Последнее исправление: sptim (всего исправлений: 1)
Ответ на: комментарий от sptim

Да, если повторно монтировать после этих команд устройство напрямую из /dev/dm*, то смонтирует без проблем! Т.е. цель не достигнута.

sptim
() автор топика

Можно, например, через lsof определить, какое ПО использует файл и с каким файловым дескриптором, затем подключиться к процессам через gdb и закрыть их, после чего отмонтировать раздел и dm.

ValdikSS ★★★★★
()
Ответ на: комментарий от ValdikSS

Разумеется можно, если конечно процесс не уровня ядра (например процесс jbd2 - журналирование ext4, но это отбросим). Но, как я указал выше, неприемлемо ради «отпускания» нескольких нужных файлов грохать процесс самбы (smbd), где в этот момент работают десятки пользователей и открыты тысячи файлов.
Если бы стандартные методы (а грохнуть процессы - это классика) подходили - я бы не спрашивал. :)
В общем-то весь затык именно в размонтировании (остальное всё закрылось бы штатно - именно неотпускание монтирования всё держит).

sptim
() автор топика

а вынести шифрованый диск на отдельный хост и гасить его пиропатроном - не вариант, да? :)

aol ★★★★★
()

Можно проксировать раздел через fuse. Убиваешь/демонтируешь fuse-процесс, потом демонтируешь раздел. Надежность и производительность соответствующая, то есть никакая.

anonymous
()
Ответ на: комментарий от sptim

Причем здесь завершение процесса? Я говорил о закрытии конкретных дескрипторов в конкретных процессах, через gdb.

ValdikSS ★★★★★
()
Ответ на: комментарий от ValdikSS

Гм, прошу прощения, действительно, видимо между строк глянул...
Хотя и c gdb тоже так себе решение, когда несколько файлов и вручную делаешь - да, можно, и вполне годно сработает.
У меня же отключение делает скрипт, который выполняется удаленно через ssh. В общем, пока остановился на том, что после выполнения ленивого отмонтирования и отложенного закрытия устройства - просто тупо удаляю и ссылку маппинга и сам файл устройства.
Таким образом конечная цель достигнута - устройство не видно и исключена (ну, в пределах здоровой паранои) возможность переподключения.
Большего, к сожалению, не сделать - такая уж парадигма монтирования/размонтирования - не предусматривает нарушения целостности, если есть ссылки.

sptim
() автор топика
Последнее исправление: sptim (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.