You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何在Windows 10的WSL2 Ubuntu 20.04中禁止特定驱动器自动挂载

如何在Windows 10的WSL2 Ubuntu 20.04中禁止特定驱动器自动挂载

嘿,这个问题我之前也碰到过!WSL默认会一股脑自动挂载所有Windows盘符,碰到Google Drive(B:)这种网络驱动器或者Bitlocker加密的R:时,确实会因为访问权限或连接问题抛出那些9pnet_virtio错误。别担心,有几种靠谱的方法能解决你的问题:

方法一:修改wsl.conf(推荐,一劳永逸)

这是官方认可的配置方式,可以直接指定WSL忽略特定盘符:

  1. 打开WSL的Ubuntu终端,用sudo权限编辑/etc/wsl.conf文件:
    sudo nano /etc/wsl.conf
    
  2. 在文件中添加或修改[automount]区块的内容:
    [automount]
    enabled = true  # 保持自动挂载其他正常的驱动器
    options = "metadata,umask=22,fmask=11,ignore=B,R"  # 重点是ignore参数,逗号分隔要排除的盘符
    mountFsTab = false  # 避免和/etc/fstab的配置冲突
    
    注意:盘符大小写不敏感,写成b,r也没问题。
  3. 保存并退出编辑器:按Ctrl+O确认保存,回车,再按Ctrl+X退出。
  4. 关闭所有WSL窗口,然后在Windows的命令提示符或PowerShell里执行:
    wsl --shutdown
    
    重新启动WSL后,B:和R:就不会被自动挂载了,那些启动错误也会消失。

方法二:用启动脚本自动卸载(灵活备选)

如果wsl.conf的配置没生效,或者你需要更灵活的控制,可以用启动脚本在WSL启动时自动卸载这两个盘符:

  1. 在Ubuntu里创建一个启动脚本文件,比如~/.wsl_cleanup.sh
    nano ~/.wsl_cleanup.sh
    
  2. 写入以下内容(如果挂载点存在就卸载,忽略错误信息):
    #!/bin/bash
    # 尝试卸载可能被错误挂载的B和R驱动器
    sudo umount /mnt/b 2>/dev/null
    sudo umount /mnt/r 2>/dev/null
    
  3. 给脚本添加执行权限:
    chmod +x ~/.wsl_cleanup.sh
    
  4. 把脚本加入到你的shell启动配置里(比如用bash的话就编辑~/.bashrc):
    nano ~/.bashrc
    
    在文件末尾添加一行:
    source ~/.wsl_cleanup.sh
    
    保存退出后,下次启动WSL终端时就会自动执行卸载操作。

额外说明

如果之后你需要手动挂载某个被排除的驱动器(比如临时访问Google Drive),可以用以下命令:

sudo mount -t drvfs B: /mnt/b

不过要注意:Bitlocker加密的R:必须先在Windows里解锁后,WSL才能正常挂载访问,否则还是会报错。

备注:内容来源于stack exchange,提问作者BillieM

火山引擎 最新活动