В Squeeze он работал только с:
mount --bind /src /dst
тогда
mount -o remount,ro /dst
Теперь в Debian Wheezy вы должны сделать:
mount -o remount,ro,bind /dst
чтобы избавиться от сообщения: ресурс занят.
Редактировать: теперь в Debian Jessie mount пытается быть умным и монтирует вспомогательные каталоги, которые, если они уже смонтированы с помощью bind, получают рекурсивную информацию, и происходят плохие вещи :)
Существует специальная опция, которая заставляет util-linux снова «тупить». Решения таковы:
mount --bind --make-rprivate /sbin/ $prefix/sbin/
mount -o remount,ro,bind $prefix/sbin/
После этого вы можете смонтировать --bind $ prefix / sbin в другой каталог.
Со страницы руководства:
Операции с совместно используемым поддеревом. Начиная с Linux 2.6.15, можно пометить монтирование и его дополнительные монтирования как общие, частные, подчиненные или несвязываемые. Совместное монтирование предоставляет возможность создавать зеркала этого монтирования таким образом, чтобы монтирование и размонтирование в любом из зеркал распространялось на другое зеркало. Подчиненное крепление получает распространение от своего хозяина, но не наоборот. У частного маунта нет способностей к распространению. Несвязываемое монтирование - это частное монтирование, которое нельзя клонировать с помощью операции связывания. Подробная семантика задокументирована в файле Documentation / filesystems / sharedsubtree.txt в дереве исходного кода ядра. Поддерживаемые операции:
mount --make-shared mountpoint
mount --make-slave mountpoint
mount --make-private mountpoint
mount --make-unbindable mountpoint
Следующие команды позволяют рекурсивно изменять тип всех монтирований в данной точке монтирования.
mount --make-rshared mountpoint
mount --make-rslave mountpoint
mount --make-rprivate mountpoint
mount --make-runbindable mountpoint
mount (8) не читает fstab (5), когда запрашивается операция --make- *. Вся необходимая информация должна быть указана в командной строке. Обратите внимание, что ядро Linux не позволяет изменять несколько флагов распространения с помощью одного системного вызова mount (2), и эти флаги нельзя смешивать с другими параметрами монтирования.
Начиная с util-linux 2.23 команда mount позволяет использовать несколько флагов распространения вместе, а также вместе с другими операциями монтирования. Эта функция является экспериментальной. Флаги распространения применяются дополнительными системными вызовами mount (2), когда предыдущие операции монтирования были успешными. Обратите внимание, что этот вариант использования не является атомарным. Можно указать флаги распространения в fstab (5) в качестве параметров монтирования (частное, подчиненное, общее, несвязываемое, rprivate, rslave, rshared, runbindable).
bind
опции?man 2 mount
указывает, чтоbind
это необходимо: «Начиная с Linux 2.6.26,MS_REMOUNT
флаг можно использоватьMS_BIND
для изменения только флагов для каждой точки монтирования. Это особенно полезно для установки или очистки« чтения » -only "Пометить точку монтирования без изменения базовой файловой системы. Задание флагов монтирования как:MS_REMOUNT | MS_BIND | MS_RDONLY
сделает доступ через эту точку монтирования только для чтения, не затрагивая другие точки монтирования." (Из Ubuntu 19.10,man-pages
выпуск Linux 5.0.2, от 2019-08-02.)libmount
вызываютmount()
функцию дважды в течение одного вызова/usr/bin/mount
программы. Таким образом, именно версияlibmount
, а не версия ядра, будет определять, нужны ли два вызова/usr/bin/mount
.