如何將 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重新啟動可以解決我的問題。

相關內容