如何将 USB 磁盘安装到 Windows 的 Linux 子系统中的修复驱动器?

如何将 USB 磁盘安装到 Windows 的 Linux 子系统中的修复驱动器?

我正在使用 Windows-10,其中安装了 Windows 的 Linux 子系统(更确切地说是 Ubuntu)。

我已将 USB 驱动器映射到 D: 驱动器上,并且 Windows 认为这是一个通用磁盘:

Windows commandline prompt>wmic logicaldisk list (relevant excerpt)
Access  Availability  BlockSize  Caption  Compressed  ConfigManagerErrorCode  ConfigManagerUserConfig  Description         DeviceID  DriveType  ErrorCleared  ErrorDescription  ErrorMethodology  FileSystem  FreeSpace     InstallDate  LastErrorCode  MaximumComponentLength  MediaType  Name  NumberOfBlocks  PNPDeviceID  PowerManagementCapabilities  PowerManagementSupported  ProviderName                                 Purpose  QuotasDisabled  QuotasIncomplete  QuotasRebuilding  Size           Status  StatusInfo  SupportsDiskQuotas  SupportsFileBasedCompression  VolumeName  VolumeSerialNumber
0                                C:       FALSE                                                        Local Fixed Disk    C:        3                                                            NTFS        144074813440                              255                     12         C:                                                                                                                                                                                                  1023013810176                      FALSE               TRUE                          OSDisk      B622B231
0                                D:       FALSE                                                        Local Fixed Disk    D:        3                                                            NTFS        996483739648                              255                     12         D:                                                                                                                                                                                                  1000168484864                      FALSE               TRUE                          Elements    6CD465F5

在我的 Windows PC 上,我有两个额外的目录:

C:\Users\...\AppData\...\CanonicalGroupLimited.UbuntuonWindows_...\...\rootfs\mnt\c
C:\Users\...\AppData\...\CanonicalGroupLimited.UbuntuonWindows_...\...\rootfs\mnt\d

在我的 Linux 子系统上,/etc/mtab完成如下:

Linux Prompt>tail -n 2 /etc/mtab
C:\134 /mnt/c drvfs rw,noatime,uid=1000,gid=1000,case=off 0 0
D:\134 /mnt/d drvfs rw,noatime,uid=1000,gid=1000,case=off 0 0

然而,的结果df -hk并没有显示任何/mnt/d

Linux Prompt>df -hk
df: /mnt/d: Invalid argument
Filesystem     1K-blocks      Used Available Use% Mounted on
rootfs         999036924 858339700 140697224  86% /
...
C:\            999036924 858339700 140697224  86% /mnt/c

在互联网上,我找到了这个命令,但它并没有给出解决方案:

Linux prompt>mount -t drvfs D: /mnt/d

结果mount相当奇怪:

Linux prompt> sudo mount
rootfs on / type wslfs (rw,noatime)
...
C:\ on /mnt/c type drvfs (rw,noatime,uid=1000,gid=1000,case=off)
D:\ on /mnt/d type drvfs (rw,noatime,uid=1000,gid=1000,case=off)

然而,/mnt/d不起作用:目录存在,但无法使用。

有人知道该怎么办吗?

提前致谢

答案1

首先,假装你在下面找到的任何东西%AppData%都不存在。这很危险,使用它可能会导致 WSL 损坏(微软链接)。我知道你可能只是在 Windows 中搜索时偶然发现了它。走开吧……慢慢来。:-)

简短回答可能的解决方案:

尝试创建一个新的挂载位置:

sudo mkdir /media/d
sudo mount -t drvfs D: /media/d

或者可能:

  • wsl --shutdown
  • 重新连接 USB 驱动器
  • 启动 WSL 实例

更多详情:

以下是我思考正在发生。WSL 在启动时读取 Windows 连接的驱动器,并/init在启动实例时在每个实例中自动挂载此驱动器列表(通过)。

如果驱动器在 WSL 启动后断开连接,则子系统对此一无所知。断开并重新连接驱动器(或另一个驱动器)会导致与您看到的情况类似的情况——A /mnt/d(或其他驱动器号)不起作用。

如上所述,一个新的安装位置(/media很好,因为它通常是安装可移动驱动器的位置)或wsl --shutdown重新启动可以解决我的问题。

相关内容