Pull to refresh

Comments 12

Вещь, о которой стоило бы упомянуть

Если на файловой системе, смонтированной на чтение-запись, открыть файл, даже чисто на чтение, а потом, не закрывая, его удалить, такую файловую систему не удастся отмонтировать или перемонтировать read-only, пока все удалённые файлы не будут закрыты. До этого момента она будет busy.

На практике такое случается при обновлении системы. Разделяемые библиотеки могли обновиться (т.е., старые файлы удалились, вместо них записались новые), но запущенные процессы всё ещё держат старую версию открытой.

Дело в том, что при удалении открытого кем-то файла удаляется только ссылка на него из директории. А сам файл (i-node и данные) удаляется, когда он окончательно закрыт. До этого момента система не может отпустить файловую систему или отказаться от права записи на неё.

Справедливое замечение, но это, я думаю, больше относится к айнодам и файловым дескрипторам, подвешенность которых и вызывает Device is busy при umount. Их я подробно рассмотрел уже в отдельных статьях.

В любом случае - спасибо за комментарий и обратную связь!

Просто народ в большинстве своём не понимает, почему в таких случаях не получается перемонтировать файловую в read-only, когда она вроде как никому уже не нужна.

Ленивый umount просто спрячет точку монтирования из видимости, но грязные буферы будут висеть в памяти до закрытия дескрипторов

В линуксах исторически была папка /mnt как стандантное место для монтирования внешних дисков. Ну вроде логично и понятно, единая точка. Затем появилась /media. ХЗ зачем но появилась. А сейчас еще и /run/media . Кто нибудь знает зачем весь этот зоопарк?

Если я правильно понимаю, то /mnt используется именно для ручного монтирования. А /run/media - уже для автоматического через udisks2. Последний подход часто используется в готовых DE по типу GNOME или KDE.

Зачем такое разделение сделали - сам не знаю. Но если мне память не изменяет, /run/media не требует рута, что избавляет от лишней возни.

Для автомаунтов всяких. И чтобы не возникало вопроса, как поделить /mnt, если в компутер воткнули сразу две флешки :)

UUID же не меняется никогда

Хорошо бы понять, где именно хранится этот UUID. Для разных источников, типа HDD, флешек, карт памяти и прочих. И поменять UUID раздела можно командой вроде tune2fs /dev/sda1 -U random

Допустил ошибку, когда пытался упростить материал. Узнать UUID всех подключенных блочных устройств можно в /dev/disk/by-uuid. Но с картами памяти, вроде как, каталог другой.

Постоянного хранилища для внешних устройств в linux нет. Ядро работает с ними динамически и после отключения никуда их uuid не сохраняет.

Поменяй uuid можно, безусловно. Но как именно - зависит уже от ФС.

Спасибо за комментарий!

Очень рискованно использовать umount -f на локальных накопителях, можно повредить журнал файловой системы

В графических оболочках все это делает udisks2 в фоне, и руками консоль открывают только после сбоев

Sign up to leave a comment.

Articles