Недавно я создал системный модуль, который запускает простой скрипт bash для устранения ошибки в драйвере монтирования NTFS. раздел делится с окнами, так что если он спячку я не могу установить его rw И он не обрабатывает должным образом параметр errors=--remount-ro (в разделе опций fstab), поэтому я написал скрипт для этого (временно).

за исключением того, что systemd, кажется, размонтирует "смонтированный вручную" раздел при запуске службы. Это стандартная функциональность systemd? как мне это отключить?

релевантная информация:

systemctl status SHAREDFILES-mount.service

    ● SHAREDFILES-mount.service - mount SHAREDFILES on boot
   Loaded: loaded (/etc/systemd/system/SHAREDFILES-mount.service; enabled; vendor preset: enabled)
   Active: inactive (dead) since Tue 2019-01-29 13:15:15 -02; 2h 23min ago
 Main PID: 992 (code=exited, status=0/SUCCESS)

jan 29 13:15:09 hosthame systemd[1]: Starting mount SHAREDFILES on boot...
jan 29 13:15:13 hosthame ntfs-3g[1302]: Version 2017.3.23 integrated FUSE 28
jan 29 13:15:13 hosthame ntfs-3g[1302]: Mounted /dev/sda4 (Read-Write, label "SHAREDFILES", NTFS 3.1)
jan 29 13:15:13 hosthame ntfs-3g[1302]: Cmdline options: rw,uid=1000,guid=username,umask=002
jan 29 13:15:13 hosthame ntfs-3g[1302]: Mount options: rw,guid=username,allow_other,nonempty,relatime,default_permissions,fsname=/dev/sda4,blkdev,blksize=4096
jan 29 13:15:13 hosthame ntfs-3g[1302]: Global ownership and permissions enforced, configuration type 7
jan 29 13:15:14 hosthame ntfs-3g[1302]: Unmounting /dev/sda4 (SHAREDFILES)
jan 29 13:15:15 hosthame systemd[1]: Started mount SHAREDFILES on boot

сценарий:

#try mounting normally (windows not hibernated)
mount -U 'disk-uid' --target /path/to/mountpoint -o uid=username,guid=username,umask=002 && exit;
 #mount as ro (windows hibernated)
    sudo mount -ro --source $( eval $(blkid | grep SHAREDFILES | grep -Eo "UUID=\"\w+\"" ) && blkid -U "$UUID" ) --target /path/to/mountpoint -o uid=username,guid=username,umask=0002 && exit;
lsb_release  -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 18.04.1 LTS
Release:    18.04
Codename:   bionic

1 ответ1

0

Вас может заинтересовать функция automount :

https://www.freedesktop.org/software/systemd/man/systemd.automount.html#

Системный и монтаж

Название вопроса вводит в заблуждение. Давайте начнем там.

Systemd не несет прямой ответственности за монтаж дисков. Он был предназначен для планирования других служб, таких как mount .

С незапамятных времен постоянные точки монтирования записывались вручную в файл /etc/fstab .

mount -a загружает каждую точку монтирования, указанную в /etc/fstab , поэтому systemd вызывает mount -a при загрузке (документы не говорят иначе).

Для редактирования запустите sudo nano /etc/fstab или sudo gedit /etc/fstab .

  • Для тех, у кого на компьютере нет sudo : используйте su -c=/usr/bin/nano /etc/fstab . Если этот путь к нано не работает, найдите, где ваш, where nano .

Смонтировать файлы

Systemd также имеет функцию, позволяющую вам поместить файл <filename>.mount в system каталог systemd. Пример:

/etc/systemd/system/var-lib-docker.mount

Имя файла должно быть отформатировано определенным образом:

Устройства монтирования должны называться в соответствии с каталогами точек монтирования, которыми они управляют. Например: точка монтирования /var/lib/docker должна быть настроена в файле модуля var-lib-docker.mount . Подробнее о логике экранирования, используемой для преобразования пути файловой системы в имя модуля, см. Man-страницу systemd.unit.

От: https://www.thegeekdiary.com/how-to-auto-mount-a-filesystem-using-systemd/

Однако официальная документация гласит, что /etc/fstab является рекомендуемым подходом.

Fstab

Модули монтирования могут быть сконфигурированы либо через файлы модулей, либо через /etc /fstab (подробнее см. Fstab (5)). Монтирования, перечисленные в /etc /fstab, будут динамически преобразовываться в собственные модули при загрузке и при перезагрузке конфигурации системного менеджера. В общем, настройка точек монтирования через /etc /fstab является предпочтительным подходом.

документы: https://www.freedesktop.org/software/systemd/man/systemd.mount.html

Вы говорите, что использовали опцию fstab для перемонтирования как доступного только для чтения после неудачного монтирования как чтение / запись, и это не работает. Я не рекомендую использовать скриптовые хаки. Это позволяет избежать решения проблемы. Если описанные выше действия не помогли решить проблему, обратитесь к сопровождающему пакета или разработчикам проекта. Смотрите в нижней части страницы отладки FreeDesktop ссылки на сообщения об ошибках systemd и описание того, что прикреплять к отчету об ошибках:

https://freedesktop.org/wiki/Software/systemd/Debugging/

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .