ディスクをマウントするUdevルールが機能しない


9

/etc/udev/rules.d/81-external-disk.rulesに次のコンテンツがあります。

ENV{ID_FS_UUID}=="6826692e-79f4-4423-8467-cef4d5e840c5", RUN{program}+="/bin/mount -o nofail,x-systemd.device-timeout=1 -t ext4 -U 6826692e-79f4-4423-8467-cef4d5e840c5 /backup/external"

実行後:

udevadm control --reload ; udevadm trigger /dev/sdb1

何もしません。ただし、IIが/ bin / touch / tmp / xyzなどのマウントコマンドを変更した場合、動作します。

バージョン:

[root@helsinki rules.d]# rpm -qa | grep udev
libgudev1-219-19.el7_2.12.x86_64
python-pyudev-0.15-7.el7_2.1.noarch
[root@helsinki rules.d]# rpm -qa | grep systemd
systemd-libs-219-19.el7_2.12.x86_64
systemd-219-19.el7_2.12.x86_64
systemd-sysv-219-19.el7_2.12.x86_64
[root@helsinki rules.d]# cat /etc/redhat-release 
CentOS Linux release 7.2.1511 (Core) 

回答:


18

これはsystemdの機能です。元のudevコマンドは置き換えられましたsystemd-udevd(そのmanページを参照)。違いの1つは、独自のファイルシステム名前空間を作成するため、マウントは行われますが、プリンシパル名前空間には表示されません。(これをチェックしてsystemctl status systemd-udevd、サービスのメインPIDを取得/proc/<pid>/mountinfoし、ファイルシステムの内容を確認することができます)。

プライベートファイルシステムの名前空間ではなく共有に戻す場合は/etc/systemd/system/systemd-udevd.service、コンテンツを含むファイルを作成します

.include /usr/lib/systemd/system/systemd-udevd.service
[Service]
MountFlags=shared 

または、/etc/systemd/system/systemd-udevd.service.d/myoverride.conf最後の2行だけを含む新しいディレクトリとファイル、つまり

[Service]
MountFlags=shared

そして、systemd-udevdサービスを再起動します。私はこれを行うことの意味を見つけていません。


はい、私はそのような回避策を適用しました。セキュリティにも影響があるのでしょうか。
sebelk 16

1
この[Service]2つの行の間に追加するまで、これはうまくいきませんでした。
ゴルディロックス2017年

1
@goldilocksあなたはおそらく正しいです。回答にこれを追加しました。ありがとうございます。これは、インクルードファイルの最後のセクションが何であったかによって異なりますが、systemdは*.d/*.conf.include文書化されていないように、変更方法を使用することを好むようです。
meuh

12

この同じ問題は、同じ根本的な原因でUbuntu 18.04でも発生します。これを修正するために、次のオーバーライドファイルを作成しますsystemd-udevd

sudo systemctl edit systemd-udevd

そしてそれに挿入します:

[Service]
MountFlags=shared

ファイルを保存して実行します。

sudo systemctl daemon-reload
sudo service systemd-udevd --full-restart

Raspberry(Raspbian 9 "ストレッチ")の魅力のように機能しました。ありがとう!
Maxwel Leite 2018

2
私のUbuntu 18.04では、USBドライブの自動マウントがないという問題を解決できませんでした。
Yu Shen

Ubuntu 18.04で働いていました。@YuShen、あなたはあなたのudevルールをチェックしたいかもしれません。
グレッグベル
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.