シンボリックリンクを介してボリュームをマウントするためにシステムを構築しようとしています。残念ながら、システムデバイスが表示されるまで待機しようとするとタイムアウトします。
# systemctl start mnt-ephemeral0.mount
A dependency job for mnt-ephemeral0.mount failed. See 'journalctl -xn' for details.
# journalctl -xn
Aug 04 17:02:09 i-c7a88499 systemd[1]: Expecting device dev-block-ec2-ephemeral0.device...
Aug 04 17:03:39 i-c7a88499 systemd[1]: Job dev-block-ec2-ephemeral0.device/start timed out.
Aug 04 17:03:39 i-c7a88499 systemd[1]: Timed out waiting for device dev-block-ec2-ephemeral0.device.
Aug 04 17:03:39 i-c7a88499 systemd[1]: Dependency failed for /mnt/ephemeral0.
メッセージには待っていることがわかりますdev-block-ec2-ephemeral0.device
。私のユニットファイルはWhat=/dev/block/ec2/ephemeral0
それがシンボリックリンクであることを指定します/dev/xvdb
。
man 5 systemd.device
説明する:
systemdは、「systemd」udevラベル付きのすべてのカーネルデバイスに対してデバイスユニットを動的に生成します。
ただし、/sys
パスのデバイス単位のみを生成するようです。
# systemctl list-units | grep 'xvdb\|ephemeral0'
sys-devices-vbd\x2d2064-block-xvdb.device loaded active plugged /sys/devices/vbd-2064/block/xvdb
以下はephemeral0
正しく認識されたudevシンボリックリンクです:
# udevadm info -q symlink -n /dev/xvdb
block/ec2/ephemeral0 disk/by-uuid/d57e2dd9-0062-448c-a914-0b6df045dafb
# ls -l /dev/block/ec2/ephemeral0
lrwxrwxrwx 1 root root 10 Aug 4 16:59 /dev/block/ec2/ephemeral0 -> ../../xvdb
これは現在のユニットファイルです:
[Unit]
After=ephemeral0-format.service
[Mount]
What=/dev/block/ec2/ephemeral0
Where=/mnt/ephemeral0
systemd.mountデバイスを介してマウントする方法はありますか?
systemdのように偽のユニットを作成できますかsys-devices-vbd...
?
答え1
問題は、systemdが内部のすべてを無視することです/dev/block
。
これは/dev/block/ec2/ephemeral0
udevルールによって生成されたシンボリックリンクであるため、解決策は単にudevルールを調整し、シンボリックリンクを別の場所に配置することです。に配置することにしました/dev/disk/ec2/ephemeral0
。
$ udevadm info -q symlink -n /dev/xvdb
disk/by-uuid/ae145d53-9501-419f-b9b1-7416e5c4fec9 disk/ec2/ephemeral0
$ systemctl list-units -a | grep 'xvdb\|ephemeral0'
dev-disk-ec2-ephemeral0.device loaded active plugged /dev/disk/ec2/ephemeral0
dev-xvdb.device loaded active plugged /dev/xvdb
sys-devices-vbd\x2d2064-block-xvdb.device loaded active plugged /sys/devices/vbd-2064/block/xvdb
源泉:http://lists.freedesktop.org/archives/systemd-devel/2014-August/021919.html