스크립트에서 디스크를 마운트하는 데 문제가 있습니다.

스크립트에서 디스크를 마운트하는 데 문제가 있습니다.

새로 추가된 디스크를 분할하고 이에 대한 시스템 장치 파일을 생성하여 마운트해야 하는 udev 규칙에 의해 트리거되는 스크립트가 있습니다. 그러나 설치 부분이 제대로 작동하지 않고 다음과 같은 오류가 발생하면서 실패합니다. A dependency job for mnt-volume1.mount failed. See 'journalctl -xe' for details.install 명령을 사용하여 설치하려고 해도 오류가 발생하지 않지만 스크립트 외부에서 확인하면 파티션이 마운트되지 않습니다. systemd 시작을 수동으로 실행하면 문제 없이 모든 것이 잘 작동합니다.

udev에 의해 트리거되는 스크립트는 다음과 같습니다:

#!/bin/bash -x
LOGFILE=/tmp/set-bash.log
exec > >(tee -a $LOGFILE)
exec 2>&1

device=$1
dev=${device##*/}
FS=''

[ ${dev:0:2} = "sd" ] && FS='xfs' 
[ ${dev:0:2} = "vd" ] && FS='ext4' 

[ -z "${FS}" ] && { echo "No FS specified!"; exit ; }

[ -e "${device}1" ] || {

echo ';' | sfdisk ${device}

counter=0
while true
do
        [ "${counter}" = "60" ] && { echo "Timeout reached, exiting..."; exit; }
        [ -e "${device}1" ] && { 
        /usr/sbin/mkfs.${FS} ${device}1
        break
    }
    counter=$(( counter++))
    sleep 1
done
}

for i in {1..9999}
do
  if [[ ! -e "/mnt/volume${i}" ]]
  then
    declare -g DIRECTORY="volume${i}"
    mkdir -p /mnt/$DIRECTORY
    break
  fi
done


cat << EOF > /etc/systemd/system/mnt-${DIRECTORY}.mount
[Unit]
Description=mounting /mnt/${DIRECTORY}

[Mount]
What=${device}1
Where=/mnt/${DIRECTORY}
Type=${FS}
Options=defaults

[Install]
WantedBy=multi-user.target
EOF

systemctl daemon-reload

systemctl enable mnt-${DIRECTORY}.mount
systemctl start mnt-${DIRECTORY}.mount

설치 부분에 대한 스크립트 출력은 다음과 같습니다.

+ systemctl daemon-reload
+ systemctl enable mnt-vpsie33.mount
Created symlink /etc/systemd/system/multi-user.target.wants/mnt-vpsie33.mount → /etc/systemd/system/mnt-vpsie33.mount.
+ systemctl start mnt-vpsie33.mount
A dependency job for mnt-vpsie33.mount failed. See 'journalctl -xe' for details.

이를 수행할 수 있는 방법이 있습니까?

관련 정보