如何配置 Windows Subsystem for Linux 2 (WSL2) 以使用 fstab 自动挂载 Windows 网络文件共享?

如何配置 Windows Subsystem for Linux 2 (WSL2) 以使用 fstab 自动挂载 Windows 网络文件共享?

我正在尝试使用在 Windows 10 的 Linux 子系统上运行的 Debian 10 Linux 发行版安装 Windows 共享 (SMB/CIFS),并使用 fstab 在启动时自动安装。我的软件规格是

OS: Windows 10 Pro 21H2
OS Build: 19044.1526
    
Windows Subsystem for Linux 2 (WSL2)
Distribution: Debian 10.11

根据微软的以下文章,您可以在创建一个文本文件来/etc/wsl.conf存储 WSL2 的用户配置设置。

https://docs.microsoft.com/en-us/windows/wsl/wsl-config

我开始使用wsl.conf设置挂载文件系统键为 true。这应该确保 WSL 处理 fstab 文件。我知道设置应该无关紧要,因为它默认为 true,但我想确保它设置为 true。我的wsl.conf文件当前看起来像:

# Automatically mount Windows drive when the distribution is launched. 
[automount]
# Automatically mount the fixed drives (C:) under /mnt.
enabled = false
# Sets the `/etc/fstab` file to be processed when a WSL distribution is launched.
mountFsTab = true
        
# Network host settings that enable the DNS server used by WSL 2. This example changes the hostname, sets generateHosts to false, preventing WSL from the default behavior of auto-generating /etc/hosts, and sets generateResolvConf to false, preventing WSL from auto-generating /etc/resolv.conf, so that you can create your own (ie. nameserver 1.1.1.1).
[network] 
hostname = JTI-ITL05-DEBIAN

主机名确实成功改变了。然而,即使挂载文件系统键设置为 true,文件系统Debian WSL2 实例启动时,文件的挂载不会被应用。要测试文件系统文件,我首先尝试运行以下命令。

Sudo mount -a

该命令成功挂载了我在 中的两个条目/etc/fstab。以下是我的文件系统条目来说明结构使用驱动文件微软为 WSL 创建的文件系统插件。

#file system                    dir            type    options                         dump    pass
\\\\domain.com\\share\\path     /mnt/mountdir  drvfs   defaults,uid=1000,gid=1000      0       0
C:                              /mnt/c         drvfs   defaults,uid=1000,gid=1000      0       0

为了测试 fstab 的处理,我添加了一行来挂载本地设备,即 Windows 中的驱动器 C。挂载本地设备的行在 WSL2 实例启动时成功挂载。指向 Windows 网络共享的另一行在启动时不会挂载,但我可以在实例启动到终端 CLI 后挂载它。我可以使用韋斯特命令关闭实例并重新启动。启动时正在处理 fstab 文件。

我没有看到相关的日志文件来/var/log检查错误。到目前为止,我的所有测试都失败了,无法在 WSL2 Debian 启动时让 fstab 文件挂载 Windows 网络共享。

如何让 WSL2 实例自动挂载在 fstab 文件中找到的 Windows 网络共享?

答案1

事实证明我确实正确设置了一切。要回答最初的问题,请按照以下步骤配置 Windows Subsystem for Linux 2 (WSL2) 以使用 fstab 自动挂载 Windows 网络文件共享。

  1. 在终端中打开 WSL2。
  2. 创建一个目录来挂载文件共享。/mnt/mountdir
  3. 创建一个名为“fstab”的文件。/etc/fstab
  4. 将以下行添加到“fstab”文件。
\\\\domain.com\\share\\path    /mnt/mountdir    drvfs defaults,uid=1000,gid=1000    0    0

使用网络上的 Windows 共享填写共享路径。

我设置了一台运行 Windows 10 的新笔记本电脑,按照上述步骤操作,并确认在 WSL2 实例启动时安装了 Windows 共享。我不确定最初的问题是什么。这似乎与 Windows 10 操作系统损坏有关。如果我能找到问题的原始原因,我会更新我的答案。

答案2

您需要告诉fstab它在启动时自动挂载。

改变

\\\\domain.com\\shares\\sharename   /mnt/mntdir drvfs       uid=1000,gid=1000   0       0

\\\\domain.com\\shares\\sharename   /mnt/mntdir drvfs       defaults,uid=1000,gid=1000   0       0

虽然auto已经足够,但defaults将包含以下选项:

 defaults
          Use default options: rw, suid, dev, exec, auto, nouser, and async.

相关内容