Рейтинг:0

Не удается запустить Ubuntu 20.04 на WSL в VirtualBox

флаг tf

Я использую Windows 11 на VirtualBox 6.1.30 внутри Windows 11 на процессоре Core m3-6Y30 с тактовой частотой 0,90 ГГц.

Я скачал Ubuntu 20.04 из Магазина Microsoft. Когда я запустил его, появилось сообщение о том, что в Панели управления в компонентах Windows должна быть включена опция «Подсистема Windows для Linux».

Я включил эту функцию, перезагрузил компьютер и снова попытался запустить WSL Ubuntu. На этот раз было сообщение об обновлении до WSL2.

Итак, в PowerShell с правами администратора я ввел команду:

команда dism.exe/online/enable-feature/featurename: VirtualMachinePlatform/all/norestart

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

Наконец, в PowerShell с правами администратора я выполнил рекомендуемую команду:

wsl --set-по умолчанию-версия 2

После этого я перезагрузил свой компьютер и запустил Ubuntu на WSL и получил «Ошибка 0x80370102», упомянутую в этот вопрос.

Это сработало только после того, как я побежал wsl --set-default-версия 1 .

Что это может быть? Что-то не так с аппаратной виртуализацией?

Все остальное работает на VirtualBox.

Я начал с команды wsl --set-default-версия 1, то я проверил bcdedit / установить автоматический тип запуска гипервизора, но это не сработало.

Только после этого сделал wsl --set-default-версия 1 работай.

Nmath avatar
флаг ng
Я думаю, что вы предприняли какие-то неправильные действия, а некоторые вышли из строя. Пожалуйста, отредактируйте свой вопрос, ответив на следующее: Какая версия Windows 10 у вас установлена? Каким руководствам вы следовали для этих действий, которые вы предприняли? Вы действительно обновились до WSL2, как указано? Вы пытались удалить/удалить Ubuntu, чтобы переустановить его, убедившись, что WSL2 установлен в вашей системе?
P.Bak avatar
флаг tf
Я использую Windows 11 на VirtualBox. Когда дело дошло до решения этой проблемы, я использовал только это руководство, которое упоминается здесь https://askubuntu.com/questions/1264102/wsl-2-wont-run-ubuntu-error-0x80370102. Когда дело доходит до wsl, как мне проверить, какую версию я использую? Я не пытался удалить или удалить Ubuntu. Как проверить версии wsl?
P.Bak avatar
флаг tf
Я запустил команду '' wslfetch`` на виртуальном боксе, но я не знаю, сделает ли это что-нибудь? [1]: https://i.stack.imgur.com/ifyTA.png
NotTheDr01ds avatar
флаг vn
Я внес некоторые обширные изменения в ваш вопрос, чтобы попытаться сделать его более читабельным. Пожалуйста, дайте мне знать, что я сделал что-то не так. Я не изменил одну вещь, которую, возможно, нужно было бы исправить. Вы говорите, что выполнили команду `dism.exe/online/enable-feature/featurename command: VirtualMachinePlatform/all/norestart`, но это явно плохая команда (либо много опечаток, либо вы неправильно ее набрали). Это должно быть `dism.exe/online/enable-feature/featurename:VirtualMachinePlatform/all/norestart`. Не могли бы вы также подтвердить, что вы выполнили правильную команду?
NotTheDr01ds avatar
флаг vn
Также обратите внимание, что в Windows 11 стандартным способом установки/включения WSL2 является просто `wsl --install`. Это включит как WSL2, так и WSL1. Он также установит и настроит экземпляр Ubuntu 20.04 — все с помощью одной команды. Нет необходимости во всех других, старых «ручных» шагах, если только что-то не пойдет не так с `wsl --install`.
P.Bak avatar
флаг tf
Итак, что вы рекомендуете делать? Удалите wsl и установите с помощью powershella с правами администратора wsl, используя ```wsl --install```?
Рейтинг:2
флаг vn

Учитывая то, что мы обсуждали в комментариях, я лично рекомендую придерживаться WSL1. Это покрывает наиболее вариантов использования WSL2 путем создания «слоя перевода» между вызовами API ядра Linux и ядра Windows. WSL2 делает (по крайней мере) еще один шаг вперед в области виртуализации, но это хорошо работает только на поддерживаемом оборудовании.

Что касается WSL2, возможно, у вас может быть более одной проблемы, но по крайней мере одна возможность заключается в том, что вам нужно включить «вложенную виртуализацию» в VirtualBox.

WSL2 использует функции гипервизора Windows Hyper-V для создания виртуальной машины. Поскольку вы уже используете Windows 11 на виртуальной машине VirtualBox, это означает, что вы «запускаете виртуальную машину внутри виртуальной машины» — это «вложенная виртуализация».

Я полагаю, что поддержка этой функции была добавлена, начиная с VirtualBox 6.1.4, но вы должны ее включить. Видеть эта страница документа для полной информации, но подведем итог:

  • Если вы используете графический интерфейс VirtualBox Manager, перейдите на Процессор вкладку и включите Включить вложенный VT-x/AMD-V. Обратите внимание, как мы узнали из комментариев, этот параметр недоступен для вашей виртуальной машины, поскольку ваш процессор (Core m3-6Y30) не поддерживает аппаратную виртуализацию.

  • В качестве альтернативы вы должны иметь возможность установить параметр из командной строки, используя VBoxManage modifyvm vm-name --nested-hw-virt на. Сообщается, что это «принудит» виртуализацию даже на неподдерживаемом оборудовании (но я не могу подтвердить). Обратите внимание, что из комментария к этот ответ, «ожидается, что производительность будет ужасной» если ваш ЦП не поддерживает необходимые функции.

P.Bak avatar
флаг tf
Я хотел бы включить то, о чем вы говорите, но функция отключена (не могу выбрать эту опцию)[1]: https://i.stack.imgur.com/9auEm.png. Как я могу включить его?
NotTheDr01ds avatar
флаг vn
@P.Bak Ну, для начала, теперь мы знаем, что он выключен, так что (по крайней мере, одна причина), почему вы не можете включить WSL2. Какую версию VirtualBox вы используете? [В этом сообщении SO] (https://stackoverflow.com/q/54251855/11810933) упоминается, что он *был* (или, может быть, *есть*) доступен только для AMD, но я думаю, что это устаревшая информация. Согласно этой последней странице, на которую я ссылался, она должна работать и для Intel, но для этого может потребоваться более поздняя версия. Также см. ответ с наибольшим количеством голосов, в котором упоминается, как включить его из командной строки, даже если он неактивен в графическом интерфейсе, хотя обратите внимание на проблемы с производительностью.
P.Bak avatar
флаг tf
текущая версия, которую я использую, - это виртуальный бокс 6.1.30.
NotTheDr01ds avatar
флаг vn
@P.Bak Так что он должен быть там, если ваше оборудование поддерживает его. Мы не рассмотрели одну из основ, например, под какой ОС вы используете VirtualBox. Инструкции по проверке поддержки аппаратной виртуализации зависят от ОС верхнего уровня. Вы пробовали `VBoxManage modifyvm vm-name --nested-hw-virt on`? Опять же, сообщается, что это работает (но медленнее), даже если основная система не поддерживает виртуализацию.
P.Bak avatar
флаг tf
Моя операционная система — Windows 11. Она работает на неподдерживаемом оборудовании. У меня процессор Intel® Core™ m3-6Y30 с тактовой частотой 0,90 ГГц. Решение, которое вы упомянули, ```VBoxManage modifyvm vm-name --nested-hw-virt on``` я еще не проверял.
P.Bak avatar
флаг tf
Чтоб была ясность ситуации. Вы рекомендуете использовать эту команду ```VBoxManage modifyvm vm-name --nested-hw-virt on```?
NotTheDr01ds avatar
флаг vn
@P.Bak Ну, вы пытаетесь запустить виртуальную машину Linux (WSL2) * внутри * виртуальной машины Windows 11 (на VirtualBox) * инсайдерской * Windows 11 на процессоре, который в первую очередь не поддерживает аппаратную виртуализацию. . Если вам действительно нужно запустить там WSL2 (и все еще нет гарантии, что он будет работать), то да, я бы порекомендовал попробовать «форсировать» вложенную виртуализацию с помощью этой команды. Будучи виртуальной машиной, в этом нет ничего плохого, верно? Я могу только представить, что если это сработает, то будет невыносимо медленно, но я не могу говорить по опыту. Однако удачи!
P.Bak avatar
флаг tf
Я к тому, что мне как новичку wsl2 не нужен, а просто когда качаю убунту из магазина майкрософт, выдает ошибку, что у меня нет wsl2
P.Bak avatar
флаг tf
а общая производительность упадет на физической или виртуальной машине?
NotTheDr01ds avatar
флаг vn
@P.Bak Ну, вы *не можете* запустить WSL2 на *вашей* физической машине, потому что ваш процессор не поддерживает аппаратную виртуализацию. **Если** вы сможете «форсировать» виртуализацию в VirtualBox, мы ожидаем, что производительность будет ужасной, потому что *каждая* операция виртуализации будет выполняться программно, а не аппаратно.
P.Bak avatar
флаг tf
хорошо я понял. и могут ли эти изменения, которые я описал в этом посте, запускать wsl на virtualbox. Ну, потому что, если у меня что-то работает, я бы не хотел это трогать. Он придерживается принципа «если что-то работает, не двигайся», и этот пост именно для него, потому что я хотел получить в основном причины решения этой проблемы.

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

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