🙌
WSL Read-onlyになった時の対処
原因
使用中のディストロのファイルシステムに障害が発生している。
障害により、ファイルシステム上のすべてのフォルダでRead-only状態になっている。まさに何もできない。touchもmkdirも不可。apt でインストールも不可、Docker起動はもちろん不可。
対処方法
e2fsck -p /dev/sdc を行い、ファイルシステムを修復する。ext4 が /dev/sdc にmount されているとする。
手順
別のディストロをインストールする。UbuntuだったらDebianをインストールすれば良い。
- wsl -d {新ディストロの名前} --mount --vhd --bare "元のディストロのext4.vhdx"
- sudo e2fsck -p /dev/sdc
解説
元ディストロが /dev/sdc にマウントされ、新ディストロは/dev/sddにマウントされるとする。元ディストロのみの状態だと、/dev/sdcが使用中になってしまい、e2fsckが実行できない。この時、/dev/sdcのマウントを外しても、e2fsck実行時にはどこかで使用中 (Warning : in use)となってしまい、修復できない。
新ディストロをインストールし、起動することによって、/dev/sdcは使用もされず、どこからもマウントもされていない状態になるため、/dev/sdcに対してe2fsckが実行可能となる。
Discussion