如何在 Windows 10 WSL 中的 ext4 分割區上掛載 Ubuntu /home 目錄?

如何在 Windows 10 WSL 中的 ext4 分割區上掛載 Ubuntu /home 目錄?

我想將實際的 Ubuntu/home目錄(該目錄位於我的磁碟機上的 ext4 分割區上)掛載到 WSL。

基本上,我需要那裡的一切,並且我希望與 ext4 和一些工具有更好的兼容性。另請參閱這個問題有關在現有 WSL Ubuntu 目錄中編輯文件時出現問題的一些範例/home

是否可以?如何?

答案1

在提出這個問題時,這在 WSL 中是不可能的,因為無法訪問真實的ext4 分割區。

然而,Github 問題中提到的問題透過通過\\wsl$\<distroname>\.這允許安全地編輯這些文件。另請參閱當時相應的 Microsoft 部落格文章,不要使用 Windows 應用程式和工具來更改 Linux 文件

而且,在 Windows 11(但不是 Windows 10)下,您現在可以使用wsl --mount.一旦原始驅動器可供 WSL2 使用,您就可以sudo mount(或通過/etc/fstab)該驅動器上包含您的/home/.

注意事項:

  • 您必須(目前)手動wsl --mount原始分區在 WSL 中啟動發行版(例如 Ubuntu)。如果不這樣做,那麼您將無法/home啟動 WSL,並且很可能會失敗。

  • 如果我沒記錯的話,您目前無法安裝已在 Windows 中使用的磁碟機。因此 ext4 分割區至少需要位於 Windows 磁碟機以外的磁碟機上。

答案2

使用 Samba 匯出您的主分割區並將其安裝在 Windows 中(我就是這樣做的)。

為了澄清,如果您不想安裝/home到驅動器,請建立 /home符號連結\\yourmachine\home(假設您已將主驅動器匯出為/home)。

例如,我/Documents指向//Bliss/Documents
Under cygwin+bash,我看到(在我的根目錄中):Documents -> //Bliss/Documents/

在 Windows 中,使用dir,該檔案如下所示:<SYMLINKD> Documents [\\Bliss\Documents]
(Bliss 是我的伺服器的名稱)。

在 Windows 中,我透過 cd'ing 到 root 在 root 中建立它,然後:(
來自 bash - 注意 Windows 路徑名周圍的單引號和反斜線)

cmd /c mklink /d Documents '\\Bliss\Documents'

相關內容