Что хочется: отмонтировать ФС даже в случае, если к ней имеют доступ приложения или ядро.
Многие мне сейчас ткнут на необходимость юзать скрипт, который смотрить на lsof, убивает процессы, после чего ФС можно отмонтировать. Но не всё так просто: из-за losetup дескриптор в VFS может открыть само ядро. Его уже так просто не убъёшь. Плюс бывают разные баги.
Как вариант: можно юзать fsfreeze: сделал fsfreeze нужной ФС, она синхронизировалась, подожал 10 секунд окончания сброса блочных кэшей, после этого через SCSI-подсистему форсированно отключаешь блочное устройство от ведра.
Но это чревато подвисанием ведра в ряде случаев.
Есть ли нормальные способы?
Из того, что у меня сейчас получилось сделать: нужны две машины (можно использовать виртуализацию): одна будет NFS-клиентом с приложениями, другая NFS-сервером с ФС.
Работает костыль так: 1(Приложения->VFS->NFS-клиент)->сеть->2(NFS-сервер->VFS->EXT4). В такой ситуации можно «потушить» NFS-сервер, после чего 2VFS освободиться и можно будет отмонтировать EXT4. Замечен интересный факт: 1Прилоежния повиснут на IO, однако продолжать работать после запуска NFS-сервера и автоматического переподключения NFS-клиента. Причём я пробовать прерывать на половине копирования файла в mc, так всё потом докопировалось и хэши сошлись.
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.
Похожие темы
- Форум Как размонтировать занятую фс? (2008)
- Форум Lazy (2007)
- Форум unmount (2006)
- Форум unmount??? (2004)
- Форум Отмонтировать корневую фс в systemd-based дистрибутиве (2015)
- Форум Laziness WAT (2017)
- Форум lazy loading (2006)
- Форум отмонтировать неотмонтируемое (2010)
- Форум Отмонтировать дискету (2004)
- Форум отмонтировать устройство (2005)