Вопрос или проблема
Я пытаюсь смонтировать rpc_pipefs с опцией nodev. Сначала я пытался сделать это, редактируя файл /etc/fstab и добавляя в него запись.
Пробовал:
sunrpc /var/lib/nfs/rpc_pipefs rpc_pipefs rw,nodev,relatime 0 0
Также:
rpc_pipefs /var/lib/nfs/rpc_pipefs rpc_pipefs rw,nodev,relatime 0 0
Обе попытки не увенчались успехом. (ошибок не было, но изменения не применялись после выполнения mount -a или перезагрузки)
После этого я почитал больше и выяснил, что файловая система монтируется с помощью systemd.
Я могу добавить нужную опцию монтирования, отредактировав файл /usr/lib/systemd/system/var-lib-nfs-rpc_pipefs.mount
и добавив следующее:
Options=nodev
Когда я выполняю следующее, раздел/фс монтируется с опцией nodev. Однако она не сохраняется после перезагрузки.
[~] systemctl daemon-reload
[~] systemctl restart var-lib-nfs-rpc_pipefs.mount
[~] systemctl enable var-lib-nfs-rpc_pipefs.mount
Также я пробовал добавить следующее в файл монтирования, но это не дало результата:
[Install]
WantedBy=local-fs.target
Окружение:
[user@ip-10-0-0-0 ~]$ cat /etc/redhat-release
CentOS Linux release 7.5.1804 (Core)
[user@ip-10-0-0-0 ~]$ uname -r
3.10.0-862.14.4.el7.x86_64
[user@ip-10-0-0-0 ~]$
Я не могу комментировать пока, поэтому пишу здесь. Можете выложить вывод systemctl status var-lib-nfs-rpc_pipefs.mount
?
Я только что добавил Option=nodev
, как было рекомендовано здесь. Я перезагрузил систему и теперь вижу опцию nodev.
[root@centoserv ~]# systemctl status var-lib-nfs-rpc_pipefs.mount
● var-lib-nfs-rpc_pipefs.mount - RPC Pipe File System
Loaded: загружен (/usr/lib/systemd/system/var-lib-nfs-rpc_pipefs.mount; статический; предварительная установка: отключена)
Active: активно (смонтировано) с Вс 2018-11-04 23:29:31 IST; 2мин 34с назад
Where: /var/lib/nfs/rpc_pipefs
What: sunrpc
Process: 597 ExecMount=/bin/mount sunrpc /var/lib/nfs/rpc_pipefs -t rpc_pipefs -o nodev (код=вышел, статус=0/УСПЕХ)
Nov 04 23:29:31 centoserv systemd[1]: Монтирование RPC Pipe File System...
Nov 04 23:29:31 centoserv systemd[1]: RPC Pipe File System смонтирована.
[root@centoserv ~]#
[root@centoserv ~]# mount|grep rpc
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw,nodev,relatime)
[root@centoserv ~]#
[root@centoserv ~]# grep rpc /proc/mounts
sunrpc /var/lib/nfs/rpc_pipefs rpc_pipefs rw,nodev,relatime 0 0
Ответ или решение
Для решения проблемы с тем, что опции монтирования rpc_pipefs
не сохраняются после перезагрузки в CentOS 7, необходимо обратить внимание на способ монтирования данной файловой системы. Поскольку rpc_pipefs
монтируется при помощи systemd
, изменения, внесенные непосредственно в файл /usr/lib/systemd/system/var-lib-nfs-rpc_pipefs.mount
, не будут сохраняться после перезагрузки из-за механизма, встроенного в systemd
.
Шаги для решения проблемы:
-
Создание override-файла для монтирования:
Вместо изменения системного файла монтирования, рекомендуется создать файл переопределения. Это позволит сохранить изменения, внесенные в настройки монтирования, которые будут применяться при следующей перезагрузке. Выполните следующие команды:mkdir -p /etc/systemd/system/var-lib-nfs-rpc_pipefs.mount.d echo -e "[Mount]\nOptions=nodev" > /etc/systemd/system/var-lib-nfs-rpc_pipefs.mount.d/override.conf
-
Перезагрузка
systemd
и монтирование:
После создания переопределяющего конфигурационного файла, выполните команду для перезагрузкиsystemd
и обновления конфигурации, а затем перезапустите точку монтирования:systemctl daemon-reload systemctl restart var-lib-nfs-rpc_pipefs.mount
-
Проверка состояния монтирования:
Вы можете проверить, чтоrpc_pipefs
настроен правильно и опцияnodev
применена:systemctl status var-lib-nfs-rpc_pipefs.mount mount | grep rpc
-
Перезагрузка системы:
После выполнения всех вышеперечисленных шагов проверьте, сохраняются ли настройки после перезагрузки:reboot
-
Финальная проверка:
Снова выполните команды для проверки статуса монтирования и убедитесь, что опцияnodev
присутствует:systemctl status var-lib-nfs-rpc_pipefs.mount mount | grep rpc
Следуя этим шагам, вы сможете успешно монтировать rpc_pipefs
с необходимыми опциями, которые будут сохраняться после перезагрузки системы.