systemd는 장치 심볼릭 링크를 사용하여 볼륨을 마운트합니다.

systemd는 장치 심볼릭 링크를 사용하여 볼륨을 마운트합니다.

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

# 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/ephemeral0udev 규칙에 의해 생성된 심볼릭 링크이므로, 해결책은 단순히 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

관련 정보