在使用 Raspbian 的 Raspberry Pi Zero 2(zero2w)上启动 NFS 服务器之前,是否要等待 USB 挂载?

在使用 Raspbian 的 Raspberry Pi Zero 2(zero2w)上启动 NFS 服务器之前,是否要等待 USB 挂载?

我有安装了 Raspbian x32 的 Raspberry Pi Zero 2(zero2w)并连接了 USB SSD 驱动器,其主要用途是充当其他几个设备(所有 Raspberry Pi - Linux)的网络(图像)备份服务器。

真正让我无法正确实现我的想法的原因是 nfs-server ( nfs-kernel-server.service) 显然无法在此小型备份服务器上正确启动(重新)启动,并出现以下错误

systemctl status nfs-kernel-server.service
nfs-server.service - NFS server and services
Loaded: loaded (/lib/systemd/system/nfs-server.service; enabled; vendor preset: enabled)
Active: failed (Result: exit-code)
Process: 434 ExecStartPre=/usr/sbin/exportfs -r (code=exited, status=1/FAILURE)
Process: 437 ExecStopPost=/usr/sbin/exportfs -au (code=exited, status=0/SUCCESS)
Process: 438 ExecStopPost=/usr/sbin/exportfs -f (code=exited, status=0/SUCCESS)

Jan 10 16:13:47 zero2w-ImageBackupper systemd[1]: Starting NFS server and services...
Jan 10 16:13:47 zero2w-ImageBackupper exportfs[434]: exportfs: Failed to stat <NFSSHAREPATH1>
Jan 10 16:13:47 zero2w-ImageBackupper exportfs[434]: exportfs: Failed to stat <NFSSHAREPATH2>
Jan 10 16:13:47 zero2w-ImageBackupper systemd[1]: nfs-server.service: Control process exited, code=exited, status=1/FAIL
Jan 10 16:13:47 zero2w-ImageBackupper systemd[1]: nfs-server.service: Failed with result 'exit-code'.
Jan 10 16:13:47 zero2w-ImageBackupper systemd[1]: Stopped NFS server and services.

我四处搜索并找到了几种可能的解决方案,包括:

  1. 使用以下方法查找 USB 安装单元的名称systemctl list-units --type=mount

  2. 将以下内容添加到/lib/systemd/system/nfs-kernel-server.service(一次一个)

    After=multi-user.target <MOUNTUNITNAME>.mount
    After=network.target <MOUNTUNITNAME>.mount
    After=storage.mount
    RequiresMountsFor=<NFSSHAREPATH>
    
  3. 我在Unix 和 Linux SE网站上有人遇到了同样的问题并显然通过编辑data.mount文件解决了它,但我根本无法在 Raspbian 上找到这个文件。

  4. 尝试搜索<MOUNTUNITNAME>.mount(步骤 1 的输出)文件,因为 systemctl show<MOUNTUNITNAME>.mount返回了很多,但我根本找不到它(我不是那种专家,但我猜这是即时生成的东西?)

    但以上这些都不起作用!

  5. 还没有尝试过,但也报告说不起作用(由上面提供的链接上的同一个人报告)正在/etc/fstab编辑x-system.d.before=nfs-server.service in fstab file: UUID=<UUID> /data auto nosuid,nodev,nofail,x-gvfs-show,x-system.d.before=nfs-server.service 0 0 and x-system.d.before=nfs-kernel-server.service

有人能帮我弄清楚如何nfs-kernel-server.service在启动之前等待 USB SSD 安装完成,以便客户端可以正确获取网络安装点并正确处理备份吗?

相关内容