Всем привет.
Внезапно отключили электричество и моя виртуалка в wsl перешла в режим чтения. Хочу описать путь решения такой проблемы. Руководство взято с офф. документации microsoft (ссылка) + личные дополнения. По шагам:
1. Устанавливаем еще один дистрибутив и выбираем его дефолтным.
# установка дистрибутива Ubuntu-22.04 для примера
wsl --install --distribution Ubuntu-22.04
# выбираем Ubuntu-22.04, как дефолтный
wsl --setdefault Ubuntu-22.04
2. Останавливаем все дистрибутивы.
wsl --shutdown
3. Потребуется узнать путь к VHDX файлу дистрибутива, который выдал ошибку "Read-only file system".
Ubuntu-20.04 - имя дистрибутива
(Get-ChildItem -Path HKCU:\Software\Microsoft\Windows\CurrentVersion\Lxss | Where-Object { $_.GetValue("DistributionName") -eq 'Ubuntu-20.04' }).GetValue("BasePath") + "\ext4.vhdx"
4. Монтируем файл VHDX без привязки.
E:\WSL\ext4.vhdx - путь к файлу из 3 шага, в моем случае такой.
wsl --mount E:\WSL\ext4.vhdx --vhd --bare
5. Узнаем под каким именем примонтировался файл.
wsl lsblk
6. Выполним проверку файловой системы.
sdb - имя из 5 шага.
можно указать флаг -y, отвечает на все вопросы утвердительно
wsl sudo e2fsck -f /dev/sdb
7. Уберем монтирование.
wsl --unmount
8. Возвращаем дефолтный дистрибутив.
wsl --setdefault Ubuntu-20.04
После проделанных действий проблема ушла.