Какое ядро ​​Linux установлено в WSL?

Какое ядро ​​Linux установлено в WSL?

Я установил WSL 2 с Ubuntu 22.04.

Когда я пытаюсь проверить ядро ​​WSL в PowerShell, я получаю следующий результат:

PS C:\Users\user> wsl --status
Default Distribution: Ubuntu-22.04
Default Version: 2

Windows Subsystem for Linux was last updated on 6/7/2022
WSL automatic updates are on.

Kernel version: 5.10.102.1

Из приведенного выше сообщения я предполагаю, что использую ядро ​​Linux 5.10.102.1.

Но когда я запускаю Ubuntu и использую uname -a, я получаю другое ядро ​​Linux:

user@DESKTOP-:/mnt/c/Users/user$ uname -a
Linux DESKTOP-VMP6T3Q 4.4.0-19041-Microsoft #1237-Microsoft Sat Sep 11 14:32:00 PST 2021 x86_64 x86_64 x86_64 GNU/Linux

Что говорит о том, что ядро ​​Linux — 4.4.0.

Мои вопросы:

  1. Какую версию ядра Linux я использую?
  2. Если это 4.4.0, как мне обновить ее до 5.x?
  3. Если это 5.10, как я могу убедиться, что это именно та версия?

решение1

Хотя WSL2 является версией по умолчанию для новых устанавливаемых вами дистрибутивов, судя по всему, ваш дистрибутив Ubuntu изначально был установлен как WSL1.

Вы можете подтвердить это с помощью:

wsl.exe -l -v

При работе uname -aпод управлением WSL1 псевдоядро выдаст следующий отчет:

  • "Линукс"
  • Имя хоста
  • "4.4.0-"
  • Номер сборки Windows (в вашем случае — 19041)
  • "-Майкрософт"
  • ...

В WSL2 ядро ​​будет сообщать следующее:

  • "Линукс"
  • Имя хоста
  • Версия ядра
  • "-microsoft-стандарт-WSL2"

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

Вы можете (и должны) преобразовать дистрибутив, выйдя из него, а затем из PowerShell:

wsl --set-version Ubuntu-22.04 2

Если хотите, вы можете сначала сделать резервную копию:

wsl --export Ubuntu-22.04 Ubuntu2204_backup.tar

Я говорю «должен», потому что в Ubuntu 22.04 есть некоторые существенные проблемы с WSL1, в частности, эта unzipкоманда не работает.

решение2

Хотя версия WSL по умолчанию установлена ​​на уровне 2, используемый вами дистрибутив WSL — WSL 1. Он вообще не использует ядро ​​Linux.

WSL1 (Windows 10):

$ uname -a
Linux db-d-18 4.4.0-19041-Microsoft #1237-Microsoft Sat Sep 11 14:32:00 PST 2021 x86_64 GNU/Linux

ВСЛ 2:

# uname -a
Linux db-d-18 5.4.72-microsoft-standard-WSL2 #1 SMP Wed Oct 28 23:40:43 UTC 2020 x86_64 GNU/Linux

WSL 1 и 2 обслуживают разные потребности. WSL 1 предлагает высокопроизводительное взаимодействие программного обеспечения и файлов Windows. WSL 2 предлагает настоящее ядро ​​Linux, позволяющее использовать контейнеры и более быстрые файловые системы Linux, среди прочего, за счет ограниченной производительности при доступе к файловым системам хоста Windows.

Как правило, не следует основывать свой выбор на версии ядра.

Связанный контент