個人用備忘録
- モチベ:
wsl上の各projectで重複したデータセットを使用し、Cドライブのストレージ容量を圧迫している。対策として、シンボリックリンクを作成し、データセットを一か所で管理することによりストレージの圧迫を防ぐ。
また、wslの空いたストレージを解放する。
シンボリックリンク作成
シンボリックとは
実際にファイルが存在しているかのようにファイルやフォルダを参照できるリンクのこと
以下はwslから、Cドライブのデスクトップ上に保管しているデータセットを参照するcode
ln -s "/mnt/c/Users/---/Desktop/dataset/" "/home/---/project/---/Datasets/"
-
ln -s "参照先" "参照元": シンボリックリンク作成
注意
シンボリックリンクの特性として、シンボリックリンクで実在しないファイルが側で、指定したフォルダ(上記でいうとdataset)を削除しても実在側は残りますが、dataset内の何かを削除した場合は編集したのと同じで削除されます。逆に追加した場合は実在側にも反映されます。
wslメモリ解放
wslで使用しているメモリはCドライブから拝借している。
だが、wsl上でデータの削除を行っても、解放されずに保持するらしい。
なので、定期的にこちらから解放の操作を行う必要がある。
以下はWindows powershell上での操作である。
準備
-
wslをおとす
wsl --shutdown -
ext4.vhdxのパスを取得する
C:\Users\---\AppData\Local\wsl\{----}\ext4.vhdxに入っていた。
使用する環境によって保存される箇所に多少変更はあるらしいが、LocalかAppDataまでは同じ。
全然見つからなかったので、aiを使用し以下で取得
(Get-ChildItem -Path "C:\Users" -Filter "ext4.vhdx" -Recurse -Force).FullName-
-Recurse: サブフォルダまで探す -
-Force:システムや隠しフォルダも確認
-
解放
- vhdxの圧縮
- DISKPARTインタプリタ起動
diskpart - 選択
select vdisk file="C:\Users\---\AppData\Local\wsl\{----}\ext4.vhdx" - 以下解放
attach vdisk readonly
compact vdisk
detach vdisk - 終了
exit
上記をもって、Cドライブのストレージ圧迫問題を解決。