我正在尝试使用在 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 网络文件共享。
- 在终端中打开 WSL2。
- 创建一个目录来挂载文件共享。
/mnt/mountdir
- 创建一个名为“fstab”的文件。
/etc/fstab
- 将以下行添加到“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.