スクリプトからディスクをマウントする際に問題があります。

スクリプトからディスクをマウントする際に問題があります。

新しく追加されたディスクを分割し、システムデバイスファイルを作成してマウントする必要がある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.

これを行う方法はありますか?

ベストアンサー1

おすすめ記事