У меня есть файловая система NFS, содержащая образы файловой системы ext4. Коробка Linux монтирует один из них с помощью неявного /dev/loop<n>
. Но когда systemd перезагружается, он, очевидно, выключает NFS перед попыткой размонтировать дочернюю файловую систему loopback. Ему не удается размонтировать шлейф и, следовательно, не удается перезагрузить, оставляя серию этих сообщений на консоли:
systemd-journald: Failed to send WATCHDOG=1 notification message: Transport endpoint is not connected
Я хочу, чтобы эта система перезагружалась без нажатия аппаратного выключателя питания. Я думаю, что это было бы так, если бы я мог сообщить systemd о зависимости между loopback и родительской файловой системой. Это возможно? Я попытался systemctl set-property dev-loop0.device After=rawparents-1.mount
, но он говорит Unknown assignment After=rawparents-1.mount.
Этот отчет об ошибке говорит, что systemd не распознает автоматически зависимости, включающие устройства с обратной связью, и не получит возможности делать это.
Я думаю, у вас должна быть возможность определять добавляемые файлы, даже если у устройства нет файлов конфигурации. То есть:
mkdir -p /etc/systemd/system/dev-loop0.device.d/
cat > /etc/systemd/system/dev-loop0.device.d/after.conf << 'EOF'
[Unit]
After=rawparents-1.mount
EOF
systemctl daemon-reload
После этого убедитесь, что файл был обработан с помощью systemctl show -p After dev-loop0.device
.
Я никогда не использовал подкоманду set-property, но вы можете сделать systemctl edit SERVICE
для добавления переопределений в единицу.
Так же, systemctl cat SERVICE
очень полезно, а также включает комментарии относительно задействованных файлов.