![在 snapd 启动之前挂载 ZFS 池](https://linux22.com/image/763074/%E5%9C%A8%20snapd%20%E5%90%AF%E5%8A%A8%E4%B9%8B%E5%89%8D%E6%8C%82%E8%BD%BD%20ZFS%20%E6%B1%A0.png)
我有一个 zpool,其挂载点位于/var
。当我启动服务器时,snapd
服务总是会抛出一堆错误并且无法启动,因为它尝试挂载从/var
到 的一堆东西/snap
,但它在挂载之前尝试挂载zpool
,因此目前还没有任何内容/var
。
snapd
在挂载 zpool 之后,我该如何尝试这些挂载?
答案1
我遇到了类似的问题,libvirtd 想要在 ZFS 安装其目录之前启动,/var
并通过 systemd 插件解决了该问题。
您可以为以下内容进行等效插入snapd.service
:
ubuntu@vmtest-ubuntu2004:~$ sudo mkdir /etc/systemd/system/snapd.service.d
ubuntu@vmtest-ubuntu2004:~$ cat <<EOF | sudo tee /etc/systemd/system/snapd.service.d/zfs.conf
[Unit]
Requires=zfs.target
After=zfs.target
EOF
ubuntu@vmtest-ubuntu2004:~$ sudo systemctl daemon-reload
这会导致 systemd 等待直到 ZFS 启动完成才启动 snapd。