심볼릭 링크를 통해 볼륨을 마운트하기 위해 시스템을 구축하려고 합니다. 불행하게도 시스템 장치가 나타날 때까지 기다리려고 하면 시간이 초과됩니다.
# 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