Рейтинг:1

Ubuntu для перехода с виртуальной машины на WSL

флаг ve

Кто-нибудь пытался перенести Ubuntu (в данном конкретном случае используется 21.10) с виртуальной машины (если это работает на VirtualBox) на WSL? Миграция в пределах одного хоста.

Насколько хорошо может работать источник изображения (vm), а затем восстановление в цель (WSL)? Аппаратный слой имеет хорошие шансы отличаться.

user535733 avatar
флаг cn
Ядро Linux вашей виртуальной машины и инициализация systemd не будут работать на WSL. WSL использует проприетарное ядро ​​Microsoft и init. Во что бы то ни стало, проведите эксперимент и сообщите нам, что вы обнаружите.
NotTheDr01ds avatar
флаг vn
@user535733 user535733 Полностью согласен с тем, что инициализация Systemd — это то, на что стоит обратить внимание. Хотя это правда, что ядро ​​виртуальной машины не будет работать, я не уверен, что назвал бы ядро ​​​​WSL2 «проприетарным». Конечно, это форк основного ядра, но (а) основные отличия, насколько мне известно, только в драйверах, (б) исходный код с открытым исходным кодом, (в) насколько я знаю, изменения в нем часто внес свой вклад обратно вверх по течению
user535733 avatar
флаг cn
@ NotTheDr01ds, спасибо за уточнение. Сегодня я узнал кое-что новое.
Рейтинг:2
флаг vn

В общем, если вы можете получить tar-архив rootfs виртуальной машины, это должно быть (теоретически) довольно просто, хотя я не пробовал. Главный трюк будет заключаться в том, чтобы получить rootfs.tar "в самый раз". Соображения:

  • Он должен будет включать все «обычные» файловые системы виртуальной машины, но вы, конечно, можете игнорировать такие вещи, как /прок, /sys, /dev, и т.д.

  • Вы должны включить --xattrs отметьте tar, чтобы убедиться, что вы выбрали все расширенные атрибуты. Это не значение по умолчанию.

Если у вас есть действительный tar-архив rootfs, импортировать его в WSL несложно:

wsl --import Ubuntu2110 <каталог> <tarball> --версия 2

Первый аргумент (имя дистрибутива) может быть каким угодно, хотя я бы рекомендовал избегать Убунту так как это имя дистрибутива WSL по умолчанию и может вызвать конфликт.

Я обычно настраиваю свой «каталог» WSL:

  • Куда легко добраться из PowerShell, например ~\Документы\ВСЛ
  • Есть ~\Документы\WSL\экземпляры\Ubuntu2110 (и другие) для моих дистрибутивов
  • Есть ~\Документы\WSL\изображения\Ubuntu2110.tar (и другие) для моих образов rootfs.

Аппаратный слой имеет хорошие шансы отличаться.

Не совсем та проблема, о которой вы могли подумать. Экземпляры WSL2 на самом деле больше «контейнеры», чем виртуальные машины. Там является виртуальная машина работает, но вы не можете получить к ней доступ. Сама виртуальная машина обрабатывает импорт и запуск дистрибутивов/экземпляров/контейнеров. Все экземпляры WSL2 используют одно и то же пространство ядра, виртуальное оборудование, сеть и т. д., но у каждого есть собственное пространство имен PID, chroot и т. д. (для суммирования).


Различия между WSL и вашей виртуальной машиной

  • Запуск системы

    Самая большая разница, которую вы обнаружите, заключается в том, что виртуальная машина, конечно же, выполняет всю свою настройку через Systemd. Этого не произойдет на WSL2, так как Systemd не поддерживается. Вместо этого WSL использует собственный /в этом для начальной загрузки взаимодействия с системной ВМ и Windows.

    Это означает, что когда вы запускаете экземпляр WSL2 с импортированной виртуальной машины, ничего такого будет работать.

    Вам нужно будет запустить каждую службу вручную. Или используйте другие методы для автоматического запуска.

  • Другие системные проблемы

    Хотя вы можете запускать многие службы в Ubuntu без Systemd, все больше и больше полагаются на Systemd. Это может быть проблематично в WSL. Хотя есть обходные пути для запуска Systemd в WSL, в настоящее время они, как правило, «хакерские».

  • Приложения с графическим интерфейсом

    Кроме того, помните, что WSL в первую очередь среда командной строки. Чтобы запустить приложения с графическим интерфейсом, вам необходимо запустить:

    • Windows 11
    • Сторонний X-сервер в Windows
    • Или же xrdp
  • Среды рабочего стола

    Наконец, среда рабочего стола может быть еще более сложной из-за сочетания перечисленных выше и других причин:

    • Некоторым требуется Systemd
    • Запуск полноэкранных приложений Linux с графическим интерфейсом пользователя в Windows может вызвать проблемы с привязкой клавиш (например, Альт+Вкладка будут перехвачены Windows и удалены от вашего DE).
    • WSLg в Windows 11 использует Weston, который предоставляет собственный оконный менеджер.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.