Windows 10 WSL の ext4 パーティションに Ubuntu /home ディレクトリをマウントする方法は?

Windows 10 WSL の ext4 パーティションに Ubuntu /home ディレクトリをマウントする方法は?

/homeドライブ上の ext4 パーティションにある実際の Ubuntu ディレクトリを WSL にマウントしたいと思います。

基本的に、そこからすべてが必要であり、ext4やいくつかのツールとの互換性を高めたいと考えています。この問題既存の WSL Ubuntu ディレクトリ内のファイルを編集するときに発生する問題の例をいくつか示します/home

それは可能ですか? どうやって?

答え1

この質問が出された時点では、WSLではアクセスできなかったため、これは不可能でした。本物ext4 パーティション。

しかし、そのGithubの問題で言及されていた問題は、を介してWSL(当時はWSL1、その後はWSL2)ファイルシステムへのアクセスを提供することで解決されました\\wsl$\<distroname>\。これにより、それらのファイルを安全に編集できます。また、その頃の対応するMicrosoftブログ投稿も参照してください。Windowsアプリやツールを使用してLinuxファイルを変更しないでください

また、Windows 11 (Windows 10 ではありません) では、 を使用して WSL2 に raw ドライブをマウントできるようになりました。raw ドライブが WSL2 で使用できるようになると、を含むドライブ上の実際の ext4 パーティションに(または 経由で) アクセスwsl --mountできるようになります。sudo mount/etc/fstab/home/

注意:

  • (現時点では)手動でwsl --mountrawパーティションを作成する必要があります前にWSL でディストリビューション (Ubuntu など) を起動します。そうしないと、WSL を起動するときに がない/homeため、失敗する可能性があります。

  • 私の記憶が正しければ、現在 Windows で既に使用されているドライブをマウントすることはできません。したがって、ext4 パーティションは、少なくとも Windows ドライブ以外のドライブ上に存在する必要があります。

答え2

Samba を使用してホーム パーティションをエクスポートし、それを Windows にマウントします (これが私のやり方です)。

/home明確に言うと、ドライブに マウントしたくない場合は、/homeへのシンボリックリンクを作成します\\yourmachine\home(ホームドライブを としてエクスポートしていると仮定します/home)。

たとえば、 cygwin+bash の下に次/Documentsのように表示されています//Bliss/Documents
(ルート ディレクトリ内)。Documents -> //Bliss/Documents/

Windows では、dirそのファイルは次のようになります<SYMLINKD> Documents [\\Bliss\Documents]
(Bliss は私のサーバーの名前です)。

Windows では、ルートに cd してルートに作成します。次に、次の操作を実行します。
(bash から -- Windows パス名をバックスラッシュ付きの単一引用符で囲むことに注意してください)

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

関連情報