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