Гарантируется ли сбой `mount -o remount, ro`, если есть файлы, открытые для записи?

Вы можете увидеть, существует ли уже докер-контейнер для вашего программного обеспечения (теперь он известен как GNU Octave). Вы сохраняете контейнер образ на USB-устройстве и запускаете его. Фактически он будет использовать вашу основную файловую систему для хранения запущенного экземпляра и виртуальной файловой системы. Чтобы иметь возможность использовать этот контейнер с вашим домашним каталогом, вы должны проинструктировать docker о привязке-монтировании вашего домашнего тома во время создания контейнера.

5
16.08.2017, 00:06
1 ответ

Да. Соответствующий код находится вsb_prepare_remount_readonly(для Linux 4.0, код может быть организован иначе в других версиях ). Логика такова:

  • Для каждого экземпляра крепления :
    • Если этот экземпляр не читается -только :
      • Предотвратить регистрацию любого нового записывающего устройства(MNT_WRITE_HOLD).
      • Если есть зарегистрированные писатели, установите флаг ошибки (returnEBUSY).
  • Если есть какие-либо файлы, которые были удалены (число инодов = 0 ), но еще не удалены (все еще присутствуют, поскольку файл открыт ), установите флаг ошибки.
  • Если флаг ошибки не установлен, пометить раздел только для чтения -.
  • Для каждого экземпляра крепления :
    • Прекратить блокировку регистрации модулей записи.

Зарегистрированные модули записи — это файлы, открытые для записи, а также текущие операции по записи метаданных (mkdir, chmodи т. д. ). Проверьте вызовы mnt_want_write, где увеличивается количество зарегистрированных писателей.

Конструкция системы гарантирует, что перемонтирование только для чтения -является барьером для регистрации записи. :Если оно завершается успешно, зарегистрированный модуль записи отсутствует, в частности, в данный момент не может быть открытого для записи файла. операции перемонтирования. После перемонтирования ни один файл не может быть открыт для записи, так что файла, открытого для записи, по-прежнему нет.

5
27.01.2020, 20:39

Теги

Похожие вопросы