Как стать автором
Поиск
Написать публикацию
Обновить

Linux для начинающих: WSL — это читерство. Как Microsoft дал нам Linux без головной боли. Часть 2

Уровень сложностиПростой
Время на прочтение8 мин
Количество просмотров23K
Всего голосов 12: ↑10 и ↓2+13
Комментарии50

Комментарии 50

пробовал wsl, оказалось что virtualbox+ubuntu работает быстрее, стабильнее, удобнее чем это решение.

Здравствуйте! Я с вами согласен, мне тоже так кажется. Но для меня важно ускорение GPU, а с этим у VirtualBox есть проблемы

Не знаю, не сталкивался. Если уж, ну уж прям надо, можно физическую видеокарту пробросить в виртуалбокс.

Можно, но это мягко говоря не удобно. В таком случае лучше уж дуалбут

Для этого нужно отдельное GPU в системе, разве нет?

Можно и так

Здравствуйте! Я тоже считал, что нужны две GPU. Я знаю, что можно виртуализировать Nvidia, но это обычно только в серверных решениях, и это не всем доступно. Если вы знаете способ организовать это на одной видеокарте, подскажите, пожалуйста, было бы очень интересно как это можно сделать)

У меня за последние три года противоположный опыт вышел с той же связкой, VBox помедленее(ощущениями) и даже ненадёжней в итоге оказался. То есть пока 2-ая версия WSL была новьём - бокс был получше. А потом майки подкрутили, обновили - и оказалось что с WSL проще, удобней.
Видимо, зависит от того какой патч на VBox выпустят, он тоже то лучше-то хуже становится.

У меня как бы и то и то, но vb удобнее

А вы wsl при этом обновляете? Меня особенно порадовало, когда у WSL 2 вышла версия 2. Сейчас актуальная 2.5

Попробуем при случае

вышел wsl2, да ещё и с systemd

Со всем могу согласиться, кроме удобства.

Попросту ничто не может быть в принципе удобнее, когда ты вводишь в любом поле (адрес в Проводнике, окно "Выполнить", Windows Terminal, VS Code - you name it) условный ubuntu - и ты, собственно, в ubuntu. И в этом WSL - сила.

Одна команда против десятка ходов через GUI.

WSL2 реально костыль, но удобный

Здравствуйте! Полностью с вами согласен 💯

Мне WSL2 сначала понравился, а потом не очень.

Во-первых, проблема с пробросом DNS. В win имена серверов резолвились, в wsl нет. Добавлял имена руками в хост файл, а это не очень весело, когда серверов много.

Во-вторых, проблема с сетью. В win я работаю через vpn, а в wsl я не могу воспользоваться этим подключением, мне надо vpn подключение поднимать в самом wsl.

Здравствуйте! Подскажите, как давно вы пользовались? Насколько я знаю, эти проблемы были исправлены. Я могу сказать точно: у меня с VPN проблем вообще нет

Не исправлено. Пришлось костылить руками неделю назад.

Кажется это нерешаемые проблемы

wsl-vpnkit , пару минут на поставить и запустить, работает с amneziaWG и Xray

сам wsl2 на win10, после 4.7 работает отлично, докер, сеть, dns.. отличный инструмент на привычном окружении. забыл уже, когда под линухом загружался.

не уверен, что поможет, но попробую, спасибо

Самое интересное что я тоже работаю с впн, но с такими приколами .... Вру, сталкивался, но только на vpn от Cisco. На openVPN всё работает без проблем

вот у меня vpn от Cisco

Если проблема с резолвом, просто пропишите 8.8.8.8 в resolv.conf

Я многое перепробовал - как застопорить это ?)

так 8.8.8.8 ничего не знает про сервер с именем srv-pg-1.мояконтора.local, а тот кто знает, похоже не хочет делиться инфой с чёрт-те знает кем

Попробуйте wsl update, а потом в настройках изменить эту опцию.

https://github.com/microsoft/WSL/issues/10380#issuecomment-2627611177

wsl-vpnkit. Утилита, созданная для решения большинства проблем. Прокидывает vpn с хоста (windows) в wsl. И при этом работают все резолвы с dns, который используется в vpn. Ставится либо как сервис в основной дистрибутив wls, либо рядом в отдельном дистрибутиве (виртуалке).

Microsoft уже несколько лет обещает это поправить, даже в описании нескольких патчей были пункты с инфой что они "на этот раз уж точно починили". Но нет, ничего не поменялось.

Самое главное забыл добавить в раздел плюшек под vscode создать софт линк на ехе в винде

В смысле - запускать экзешник вскода на wsl?

Не так - заставить запустится vscode в указанной директории Linux a . Файловая система видна из експлорера. Explorer.exe /home/username

Для вскода я обычно использую плагин remote development, который умеет и к wsl цепляться, и по ssh и что-то еще. А так - есть ощущение что из винды работать с путями wsl выходит сильно медленнее, чем из самого wsl

Так и есть, и наоборот тоже - WSL медленно работает с хостовыми путями

Linux для начинающих: WSL — это читерство. Как Microsoft дал нам Linux без головной боли. Часть 2

А я-то всегда думал что головная боль это про Виндовс, а оказывается наоборот...

WSL шляпа но выручает пока на snapdragon x1e не завезли нормальную поддержку ядра

В какой-то момент у меня отпал WSL/WSL2, абсолютно перестал запускаться, похоронив "в себе" всю нужную инфу. Гайды в интернете не помогали, ни один так не помог. С тех пор держу виртуалку с линухом и горя не знаю. Никаких проблем больше не встретил от слова совсем. Конкретно в моем случае виртуалка еще и быстрее работает. Медленнее, чем рабочая станция, но основательно быстрее, чем WSL2. Почему-то код под условный STM32 на WSL2 компилился с десяток минут, хотя откровенно нечему там было столько собираться. Виртуалка собирала до десяти секунд.

В какой-то момент у меня отпал WSL/WSL2, абсолютно перестал запускаться, похоронив "в себе" всю нужную инфу. Гайды в интернете не помогали, ни один так не помог.

А надо было вместо гайдов читать документацию по архитектуре wsl, и разбираться самому. Все данные, скорее всего, лежат в %userprofile%\AppData\Local\wsl. Если их там нет - надо смотреть реестр, HKCU:\Software\Microsoft\Windows\CurrentVersion\Lxss.

Формат данных - vhdx, виртуальный диск hyper-v. Напрямую его не прочитать, но можно подключить к виртуалке если она под hyper-v создана.

Всмысле vhdx напрямую не подключить? Оно, емнип, с win8 штатным образом прекрасно монтируется и работает как отдельный раздел. А ещё можно 7zip'ом открыть....

Это если NTFS внутри. А в данном случае внутри ext4, с этой ФС винда работать не умеет.

Для поддержки ext* можно поставить драйвер ext2fs, отлично работает, бонусом помогает работать с одноплатниками - можно воткнуть microSD карту, и поправить, что нужно, прямо в ФС.

Проблем с драйвером не наблюдал.

Три года сидел на VBox, в апреле попробовал wsl2, полёт идеальный👍. Единственное пришлось перенести vhdx с системного диска и переопределить путь. (*от VBox не отказался, изменились только приоритеты использования☝️)

Мои потребности в linux-окружении достаточно скромные и ограничиваются запуском headless-приложений, поэтому WSL2 для меня оказался достаточно удобен. Но изредка сжимаю утилитой его файл хранилища виртуальной машины, чтобы вернуть место на диске после чистки.

2. Неконтролируемый рост диска >

Перенос диска

wsl --list
# запоминаем имена дисков
# пример
Распределения подсистемы Windows для Linux:
rancher-desktop-data (по умолчанию)
rancher-desktop
wsl --export rancher-desktop-data $RancherDataDirectory\rancher-desktop-data.tar
wsl --export rancher-desktop $RancherDirectory\rancher-desktop.tar
wsl --unregister rancher-desktop-data
wsl --unregister rancher-desktop

wsl --import rancher-desktop $RancherDirectory $RancherDirectory\rancher-desktop.tar --version 2 
wsl --import rancher-desktop-data $RancherDataDirectory $RancherDataDirectory\rancher-desktop-data.tar --version 2

#где $RancherDirectory - путь к каталогу wsl дисков на другом диске.

Можно проще

wsl --manage rancher-desktop --move E:\WSL

где: E:\WSL это каталог где будет сохранен образ диска (vhdx)

Я года два назад пересел с Линукса на Винду (после 23 лет на Линуксе). По началу тоже в основном пользовался WSL2. И проекты в ней держал, и запускал там же. А потом постепенно отошёл от этого. Теперь все исходники непосредственно в винде, Powershell теперь в качестве основного shell-а. Проекты java/nodejs запускаю локально и так, и в докере. Wsl пользуюсь только если что то сделать с большими текстовыми файлами, поискать что то, скриптами обработать. Все же привычнее. В переходный период wsl помогла очень. Мне в винде пользовательский интерфейс нравится, удобнее чем гном или кде, по моему личному мнению. Скриптовать конечно в Линуксе удобнее для меня, Powershell конечно мощный, но уж совсем другой. Быстрее и понятнее какой нибудь bash скрипт написать.

Хорошая статья, но я предпочитаю linux без эмулятора. Думаю про гит и android studio пригодится, спасибо :)

Добавьте, пожалуйста, в самом начале ссылку на первую часть руководства. ИМХО, для большинства читателей это будет удобно.

Ставить Docker внутри WSL2 выглядит как-то несколько извращенно. Разве нельзя просто поставить на "родительскую" Windows Docker Desktop с опцией "Use the WSL2 based engine" в настройках? Мне, кажется, что под ним тогда все должно тогда работать точно так же.

Если читать лицензии - то Docker Desktop не всегда льзя. Например, в среднем и более бизнесе, который не может оплатить бизнес-лицензию по любой причине.

Docker Desktop requires a paid subscription for:

  • Professional use in larger organizations

  • Government entities

  • Commercial use beyond the free tier limits

Зарегистрируйтесь на Хабре, чтобы оставить комментарий