Как перемонтировать модуль монтирования Systemd с различными параметрами?

Я хочу выразить следующую последовательность команд в терминах модулей монтирования Systemd и invictations systemctl:

# mount /some/path /some/mountpoint -o ro # mount /some/mountpoint -o remount,rw # touch /some/mountpoint/foo # placeholder for write action # mount /some/mountpoint -o remount,ro 

Концептуальная проблема заключается в том, что systemd.mount (5) работает с точками монтирования. Поскольку блоки активируются путем передачи полного пути в systemctl, нельзя иметь несколько единиц монтирования для одной и той же точки монтирования. Шаблоны также не работают для модулей монтирования.

Итак, как это работает? Это вообще возможно?

  • Как получить журнал загрузки ядра с помощью журналаctctl?
  • Удаление таймера, созданного с помощью systed-run --on-calendar
  • Сценарий запуска systemd postgresql
  • Как автозапустить hostapd
  • Загрузка Debian с зашифрованными дисками: RAID не собран
  • Путаница о системных файлах, файлах среды и аргументах командной строки для исполняемого файла службы
  • Мои системные фрагменты не сообщают информацию systemd-cgtop
  • Каков наилучший способ создать uwsgi папку «/ run / uwsgi» при перезагрузке?
  • One Solution collect form web for “Как перемонтировать модуль монтирования Systemd с различными параметрами?”

    Используйте блок обслуживания вместо узла монтирования

    Простой блок обслуживания onehot с командой mount работал для моего варианта использования для повторного использования (и я предполагаю, что он будет работать для вас).

    Учитывая, что mounts часто уже определены в /etc/fstab а systemd автоматически генерирует <mountpoint>.mount для записей fstab, существует два подхода:

    1. Просто откидывайтесь на стандартный сервисный блок вместо узла монтирования и напрямую управляйте командой mount.
    2. Попробуйте использовать переопределение systemd? (Не проверено, не думайте, что это жизнеспособно)
      • У единиц монтирования есть строгое требование, чтобы устройство было названо в соответствии с точкой монтирования, поэтому, вероятно, невозможно запустить два отдельных узла монтирования для одной и той же точки монтирования (уже отмечено в вопросе).
      • Следовательно, это, вероятно, не будет работать для повторных подключений, предполагая, что оно только отменяет исходное определение единицы монтирования, сгенерированное из fstab, и не будет выполняться дважды.
      • Если попытаться, скорее всего, первоначальное монтирование, вероятно, не будет выполнено, если опция remount применяется к тому, что еще не смонтировано.

    пример

    Мне было нужно что-то подобное и наткнулся на следующую проблему, пытаясь использовать тип unit mount mount (потому что я не определял свое имя файла устройства в соответствии с точкой монтирования):

     Where= setting doesn't match unit name. Refusing. 

    Учитывая привязку привязки к dir данных с большим пространством, но с родительской точкой монтирования, имеющей набор nosuid и nodev, мне нужно было добавить suid и dev привилегии для lxc в / var / lib / lxc.

    Файл служебной единицы /etc/systemd/system/lxc-remount.service :

     [Unit] Description=Remount the /var/lib/lxc folder with suid and dev privileges Requires=var-lib-lxc.mount After=var-lib-lxc.mount Before=lxc.service [Service] Type=oneshot ExecStart=/bin/mount -o remount,rw,suid,dev,relatime,discard,data=ordered /var/lib/lxc [Install] WantedBy=lxc.service того, как [Unit] Description=Remount the /var/lib/lxc folder with suid and dev privileges Requires=var-lib-lxc.mount After=var-lib-lxc.mount Before=lxc.service [Service] Type=oneshot ExecStart=/bin/mount -o remount,rw,suid,dev,relatime,discard,data=ordered /var/lib/lxc [Install] WantedBy=lxc.service 

    Команды для его реализации:

     $ sudo systemctl daemon-reload $ sudo systemctl enable lxc-remount.service Created symlink from /etc/systemd/system/lxc.service.wants/lxc-remount.service to /etc/systemd/system/lxc-remount.service. $ sudo systemctl start lxc-remount.service 
    Interesting Posts

    vsftpd полный анонимный доступ

    Сервер ldap 389 с sssd-клиентом, не может изменять пароль

    изменение порядка элементов в списке

    Удалите функцию зашифрованного LVM, чтобы удалить введенный запрос пароля во время загрузки Ubuntu

    Проблемы с автоматическим запуском экрана при входе в SSH

    передавая переменные от 'ls' до 'tar' через 'xargs'

    Ядро не загружается после изменения параметров и образа ядра с помощью Syslinux

    Проблема с использованием Emerge для установки пакета

    Ли Linux 3.x использует планировщик процессов CFS?

    Карта DNS-запросов, поступающих с определенного клиентского MAC с помощью dnsmasq

    Как запустить прокси-сервер socks на нестандартном порту?

    как перемещать набор файлов в один слой

    Команда для удаления каталогов, содержимое которых меньше заданного размера

    Как настроить пороги зарядки аккумулятора ноутбука?

    Поиск файлов, более новых, чем другой файл в каждом подкаталоге

    Linux и Unix - лучшая ОС в мире.