如何将网络(Samba/CIFS)驱动器自动挂载到 WSL2?

如何将网络(Samba/CIFS)驱动器自动挂载到 WSL2?

在为新的 WSL2 安装(Ubuntu 20.04)设置 NAS 共享时,我发现了几种可以完美挂载驱动器的方法:

  1. /etc/fstab

    //nas-hostname/public /mnt/nas cifs user=$username,pass=$pass 0 0
    

    然后sudo mount -a

  2. sudo mount -t drvfs '//nas-hostname/public' /mnt/testnas

我试过了wsl.conf,但它似乎不适用于网络驱动器,只适用于本地 Windows 驱动器。

我希望在 WSL2 联机、重新启动或执行其他任何操作时自动安装此驱动器。我正在运行一些服务,这些服务要求在容器启动时存在网络驱动器。我正在尝试找出实现此目的的最佳方法。我不是 WSL(或 Linux)专家,所以我不清楚最佳途径(即最符合 WSL 习惯的方式)是cron在机器上启用服务、在任务计划程序中设置某些内容还是其他什么。

我确实也将驱动器安装到了 Windows 主机上Z:\,但我不希望以这种方式将其映射到 Linux 子系统,因为我想轻松地将其全部转移到另一台主机上。

答案1

所以我最终实现的方法虽然不是很好,但还是完成了任务。希望有人以后能提交更好的答案!

  1. 设置我的用户以允许 sudo 无需密码即可访问 mount 命令(使用 visudo)。
  2. 在我的 .bashrc 文件中添加最后一行,mount -a该文件根据我在上面的 /etc/fstab 中设置的内容进行挂载。

现在,计算机启动时所有驱动器都正确安装。没有其他问题。

答案2

您解决了问题...但是 wsl 或 nas 中的 zfs 和 zfs 共享是我使用的可行选项(以及 Windows 任务)。因此,请忽略下面未引用的简介 [更好的答案 https://www.reddit.com/r/zfs/comments/lcdxs5/zfs_in_wsl2_raw_disk_access/ 和 smb/cifs 共享我会找到..

ssh [email protected] (or... wsl --mount //?/PHYSICALDRIVEX/ --bare && wsl -d mydistro-with-zfs-wsl2-kernel..)
sudo apt install zfs-dkms zfsutils-linux samba nfs-kernel-server
sudo zpool create -o foo -O bar stank && sudo zfs create stank/DATA/usershares
Per arch-wiki or ubuntu or voidlinux wiki recommendations...
sudo rsync -haHAX /myoldfs[/] /stank/DATA/usershares
sudo zfs share
Find it in networks in file explorer

答案3

在 fstab 条目中添加 _netdev 选项,它告诉 mount 在尝试挂载它们之前等待网络。

相关内容