Установите дистрибутив CentOS в WSL2.
Установите дистрибутив CentOS в WSL2.

Обзор

Вообще говоря, есть три метода:

1. Импортируйте напрямую через файлы GitHub.

2. Импортируйте через образ докера.

3、Установить через LxRunOffline

Импортируйте образ докера в дистрибутив Linux.

Любой дистрибутив Linux можно использовать в подсистеме Windows для Linux (WSL), импортировав его с помощью файла tar (даже если он недоступен в Microsoft Store).

Язык кода:javascript
копировать
-- отконтейнерсередина экспорт
docker pull centos:7.9.2009
docker run -d --name lhrcentos79 -h lhrcentos79 --privileged=true centos:7.9.2009 /usr/sbin/init
docker export lhrcentos79 > /mnt/f/lhrcentos79.tar



wsl --import centos79 F:\wsl2centos79 f:\lhrcentos79.tar

wsl --set-default centos79
wsl -d centos79



-- Решить не удалось to get D-Bus connection: Operation not permitted
mkdir -p /opt/distrod
cd /opt/distrod
wget https://github.com/nullpo-head/wsl-distrod/releases/latest/download/opt_distrod.tar.gz
tar xvf opt_distrod.tar.gz
rm -rf opt_distrod.tar.gz
/opt/distrod/bin/distrod enable --start-on-windows-boot

wsl --shutdown
wsl
systemctl status | cat

ссылка

https://learn.microsoft.com/zh-cn/windows/wsl/use-custom-distro

Импортируйте напрямую через пакет с открытым исходным кодом github.

ссылкаадрес: https://www.how2shout.com/how-to/install-centos-on-windows-10-subsystem-for-linux.html

Загрузите пакет образа CentOS Вот проект с открытым исходным кодом на Github, который обеспечивает загрузку CentOS, подсистемы Windows для Linux. https://github.com/mishamosher/CentOS-WSL

  1. После распаковки пакета зеркала вы получите следующие два файла: Они есть:rootfs.tar.gz , CentOS.exe
  1. Установите и запустите Щелкните правой кнопкой мыши CentOS.exeдокумент, Запуск от имени администратора
  1. Установка завершена Установка завершенаназад,Вы будетесуществовать CentOS Заказ получил сообщение на экране. Нажмите сейчас существовать Enter клавиша выхода из настроек.
  2. бегать CentOS 7 Один из них: найти в каталоге установки CentOS7.exe Дважды щелкните проект, чтобы войти linux система Другой способ: в cmd середина входить wsl,Введите систему Linux
  3. обновить ням
Язык кода:javascript
копировать
yum -y update

Чтобы удалить его, измените PowerShell Переключиться от имени администратора CentOS Оглавление, ./CentOS.exe clean

Установить через LxRunOffline

После установки системы CentOS в WSL2 не могут запускаться службы, основанные на systemctl или служебных командах, например докер nginx php-fpm mysql и т. д.

1. Установите шоколадный и LxRunOffline.

Chocolatey — это инструмент управления пакетами Windows, а LxRunOffline — программное обеспечение для управления WSL. Используйте choco для установки LxRunOffine, а затем используйте LxRunOffline для установки различных версий образов Linux.

NuGet (произносится как New Get) — это менеджер пакетов программного обеспечения для платформы разработки Microsoft .NET и расширения Visual Studio. Chocolatey — это менеджер пакетов, основанный на NuGet. Как и yum или apt в Linux, вы также можете использовать командную строку для установки программ в Windows 10.

Щелкните правой кнопкой мыши меню «Пуск», выберите Windows PowerShell (Администратор), откройте окно PowerShell с правами администратора, введите команду и нажмите Enter:

Язык кода:javascript
копировать
Set-ExecutionPolicy Bypass -Scope Process -Force; iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))

-- или
Set-ExecutionPolicy Bypass -Scope Process -Force; iex ((New-Object System.Net.WebClient).DownloadString('https://community.chocolatey.org/install.ps1'))

После завершения,входить Заказ:choco , если номер версии отображается правильно, установка прошла успешно.

LxRunOffline — очень практичное программное обеспечение для управления WSL. Оно может выполнять резервное копирование, создавать, восстанавливать и экспортировать подсистему WSL. Оно также может устанавливать любой дистрибутив Linux, адаптируемый к WSL. Оно может устанавливать подсистему WSL в любой каталог.

Введите команду в окне PowerShell, чтобы установить LxRunOffline, и перезапустите PowerShell после завершения установки.

Язык кода:javascript
копировать
choco install lxrunoffline -y

-- обновление
choco upgrade lxrunoffline

Если его невозможно установить и появляется следующая ошибка, вы можете загрузить пакет автономной установки: https://github.com/DDoSolitary/LxRunOffline/releases/download/v3.5.0/LxRunOffline-v3.5.0-msvc.zip

Язык кода:javascript
копировать
PS C:\Users\lhr> choco install lxrunoffline -y
Chocolatey v1.1.0
Installing the following packages:
lxrunoffline
By installing, you accept licenses for the packages.
Error retrieving packages from source 'https://community.chocolatey.org/api/v2/':
 Основное подключение выполнено: При отправке произошла ошибка.
lxrunoffline not installed. The package was not found with the source(s) listed.
 Source(s): 'https://community.chocolatey.org/api/v2/'
 NOTE: When you specify explicit sources, it overrides default sources.
If the package version is a prerelease and you didn't specify `--pre`,
 the package may not be found.
Please see https://docs.chocolatey.org/en-us/troubleshooting for more
 assistance.

Chocolatey installed 0/1 packages. 1 packages failed.
 See the log for details (C:\ProgramData\chocolatey\logs\chocolatey.log).

Failures
 - lxrunoffline - lxrunoffline not installed. The package was not found with the source(s) listed.
 Source(s): 'https://community.chocolatey.org/api/v2/'
 NOTE: When you specify explicit sources, it overrides default sources.
If the package version is a prerelease and you didn't specify `--pre`,
 the package may not be found.
Please see https://docs.chocolatey.org/en-us/troubleshooting for more
 assistance.

И настройте переменные среды:

Язык кода:javascript
копировать
setx PATH  "%path%;F:\LxRunOffline-v3.5.0-msvc"

исследовать:

Язык кода:javascript
копировать
C:\Users\lhr>LxRunoffline version
LxRunOffline v3.5.0

В окне командной строки используйте команду «LxRunoffline version», если номер версии успешно отображается, это означает, что установка прошла успешно.

Другие команды choco следующие:

choco -v Посмотреть версию choco choco list -li Просмотр локально установленного программного обеспечения choco выполните поиск nodejs, чтобы найти установочный пакет choco установить sublimetext3 скачать удаление choco, удаление sublimetext3 обновление choco обновление sublimetext3 обновление (обновление) Шоколадное обновление, шоколадное обновление, обновление шоколадного самостоятельно

2. Загрузите образ дистрибутива Linux для WSL.

Linux Изображение релиза доступно по адресу http://hub.docker.com иди найди,ссылка:https://github.com/RoliSoft/WSL-Distribution-Switcher

На примере CentOS откройте https://hub.docker.com/_/centos/.

Загрузите образ CentOS8:

https://raw.githubusercontent.com/CentOS/sig-cloud-instance-images/CentOS-8-x86_64/docker/centos-8-x86_64.tar.xz

Загрузите образ CentOS7:

https://raw.githubusercontent.com/CentOS/sig-cloud-instance-images/CentOS-7-x86_64/docker/centos-7-x86_64-docker.tar.xz

Другие адреса изображений: https://github.com/CentOS/sig-cloud-instance-images.

3. Установите образ CentOS.

Формат командной строки для установки подсистемы WSL:

Язык кода:javascript
копировать
LxRunOffline install -n Настроить имя системы -d Установитьпуть к каталогу -f Установитьпуть к пакету.tar.xz

Перезапустите PowerShell и введите команду для установки образа CentOS:

Язык кода:javascript
копировать
LxRunOffline install -n CentOS8   -d f:/CentOS8  -f f:\centos-8-x86_64.tar.xz
LxRunOffline install -n CentOS7   -d f:/CentOS7  -f f:\centos-7-x86_64-docker.tar.xz

Эта строка команд означает, что CentOS Система установлена ​​на ехать centos папку и назовите ее CentOS8. Примечание: Окна Путь к файлу в командной строке системы и Linux Система другая, вот каталог установки f:/ Хотите использовать Linux Обозначение режима обратной косой чертой предназначено для WSL Используйте и путь к установочному пакету; f:\ для LxRunOffline Используйте, да Windows путь вниз.

Просмотрите все установленные образы. Если Centos установлен, это означает, что установка прошла успешно.

Язык кода:javascript
копировать
LxRunOffline.exe list

Он также появится, если установка не удалась. centos Оглавление,Установитьне удалось повторно Установитькогда это необходимоудалитьзеркало,кроме того Установить Оглавлениесуществовать C При удалении диска могут возникнуть проблемы с разрешениями. Если каталог не удаляется после удаления, его можно удалить вручную.

Удалить образ системы WSL командой:

Язык кода:javascript
копировать
LxRunOffline.exe uninstall -n centos

Другие команды LxRunOffline:

Язык кода:javascript
копировать
//уже УстановитьизWSL
LxRunOffline list 
//Восстанавливаем WSL
LxRunOffline install -n <wsl_name> -d <res_path> -f <back_path>
//удалитьWSL
LxRunOffline uninstall -n <wsl_name>
//Резервное копирование WSL
LxRunOffline export -n <wsl_name> -f <back_path>
eg:LxRunOffline export -n CentOS -f D:\LinuxSubSystem\WSL\centos7-diy-20210430.tar.xz
//запускатьодинWSL
LxRunOffline run -n <wslname>


`l` , `list` - Перечислить все Установитьиз Дистрибутив.
`gd` , `get-default` - получать bash.exe Используйте Дистрибутив по умолчанию.
`sd` , `set-default` - настраивать bash.exe Используйте Дистрибутив по умолчанию.
`i` , `install` - Установитьновыйиз Дистрибутив。
`sd` , `set-default` - настраивать bash.exe Используйте Дистрибутив по умолчанию.
`ui` , `uninstall` - удалить Дистрибутив。
`rg` , `register` - Зарегистрировать существующий каталог из Установить.
`ur` , `unregister` - Отмените регистрацию Дистрибутива, не удаляя каталог «Установить».
`m` , `move` - Переместите Дистрибутив в новый каталог.
`d` ,`duplicate` - существоватьновый Оглавлениесерединакопироватьсуществующий Дистрибутив。
`e`, `export` - Экспортировать файловую систему Дистрибутива в `.tar.gz` файл, который можно передать `install` Заказ Установить。
`r` , `run` - существовать Дистрибутивсерединабегать Заказ。
`di` , `get-dir` - получать Дистрибутивиз Установить Оглавление。
`gv` , `get-version` - получать Дистрибутивиздокументсистема Версия。
`ge` , `get-env` - получать Дистрибутивиз Переменные среды по умолчанию。
`se` , `set-env` - настраивать Дистрибутивиз Переменные среды по умолчанию。
`ae` , `add-env` - Добавлены переменные среды Дистрибутивиз по умолчанию.
`re` , `remove-env` - Из Дистрибутивиза переменная среды по умолчанию серединаудалить.
`gu` , `get-uid` - получать Дистрибутивиз Пользователь по умолчаниюиз UID。
`su` , `set-uid` - настраивать Дистрибутивиз Пользователь по умолчаниюиз UID。
`gk` , `get-kernelcmd` - получать Дистрибутивизядро по умолчанию Заказ ХОРОШО。
`sk` , `set-kernelcmd` - настраивать Дистрибутивизядро по умолчанию Заказ ХОРОШО。
`gf` , `get-flags` - получать Дистрибутивизнекоторые знаки。
`sf` , `set-flags` - настраивать Дистрибутивизнекоторые знаки。
`s` , `shortcut` - Создать запуск дистрибутива из ярлыка.
`ec` , `export-config` - Экспорт конфигурации дистрибутива в XML документ.
`ic` , `import-config` - от XML Импорт файлов конфигурации дистрибутива.
`sm` , `summary` - получать Дистрибутивиз Общая информация。

4. Преобразование в WSL2

Введите команду и нажмите Enter, чтобы просмотреть установленную информацию WSL.

Язык кода:javascript
копировать
wsl -l -v

Установите соответствующую версию дистрибутива WSL на WSL2, формат команды:

Язык кода:javascript
копировать
wsl --set-version <Distro> 2

Информация должна соответствовать информации, запрошенной выше. В этом примере это centos. Введите следующую команду и нажмите Enter:

Язык кода:javascript
копировать
wsl --set-version centos 2

Введите следующую команду и нажмите Enter, чтобы установить дистрибутив по умолчанию:

Язык кода:javascript
копировать
wsl -d centos

В это время снова используйте команду wsl -l -v, чтобы проверить. Вы можете видеть, что ВЕРСИЯ centos изменилась на 2, а перед именем добавлен знак * (то есть система WSL по умолчанию).

5. Установите общие инструменты в CentOS.

1. Установите wget vim и другие инструменты.
Язык кода:javascript
копировать
-- Ошибка: Ошибка: Failed to download metadata for repo 'appstream': Cannot prepare internal mirrorlist: No URLs in mirrorlist
sed -i 's/mirrorlist/#mirrorlist/g' /etc/yum.repos.d/CentOS-*
sed -i 's|#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g' /etc/yum.repos.d/CentOS-*

cd ~ #Перейти в каталог пользователя
dnf -y install vim wget
dnf -y install net-tools #давать возможность ifconfig,netstat Подождите сети Заказ
dnf -y install git
dnf -y install make
dnf -y install initscripts #давать возможность service Заказ
2. Заменить внутренние источники

(1) Создайте резервную копию исходного источника yum.

Язык кода:javascript
копировать
cd /etc/yum.repos.d
mv CentOS-Base.repo CentOS-Base.repo.bak
mv CentOS-Extras.repo CentOS-Extras.repo.bak
mv CentOS-centosplus.repo CentOS-centosplus.repo.bak
mv CentOS-PowerTools.repo CentOS-PowerTools.repo.bak
mv CentOS-AppStream.repo CentOS-AppStream.repo.bak

(2) Загрузите репо-файл соответствующей версии.

Язык кода:javascript
копировать
# wget -O CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-8.repo
vim CentOS-Base.repo

Вы можете видеть, что исходный код aliyun содержит следующие элементы: [base] [extras] [centosplus] [PowerTools] [AppStream], поэтому резервные копии этих источников были предварительно зарезервированы.

(3) Очистите старый кеш и создайте новый кеш.

Язык кода:javascript
копировать
# dnf clean all 
# dnf makecache
6. WSL2 и системный процесс

Сам WSL2 запускается под управлением Windows, поэтому при использовании команды Tree или ps вы увидите, что корневой процесс не является systemd, что приведет к невозможности запуска демона системной службы Linux. Когда мы выполним команду systemctl, будет показано, что наша система инициализации (PID 1) не systemd, а /init, предоставленная Microsoft.

Язык кода:javascript
копировать
$ systemctl
System has not been booted with systemd as init system (PID 1). Can't operate.
Failed to connect to bus: Host is down
$ ps u -q 1
USER         PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root           1  0.0  0.0    908   592 ?        Sl   10:31   0:00 /init

Возможно, в будущем будет реализован собственный systemd WSL, но что нам делать, если мы хотим иметь среду systemd сейчас?

Поскольку systemd должен выполняться с PID 1, systemd не может быть запущен напрямую, но использование пространства имен Linux позволяет нам создать новое пространство имен в WSL2 и выполнять systemd с PID 1. То есть добавление еще одного уровня пространства имен PID в WSL2 позволяет нам запускать среду systemd в этом новом пространстве имен.

7. Настройте genie и запустите команду systemctl.

1. Установите .NET Core SDK 3.1.
Язык кода:javascript
копировать
dnf install dotnet-sdk-3.1
2. Установите зависимости daemonize
Язык кода:javascript
копировать
cd /home
wget http://repo.okay.com.mx/centos/8/x86_64/release/daemonize-1.7.8-1.el8.x86_64.rpm
rpm -ivh daemonize-1.7.8-1.el8.x86_64.rpm

Если он не установлен, при запуске genie будет сообщено об ошибке: daemonize не может быть найден.

3. Установите джинна
Язык кода:javascript
копировать
git clone https://github.com/arkane-systems/genie.git
cd genie/genie
make
make install
ln -s /usr/libexec/genie/main/genie /usr/local/bin/genie

vim Makefile Просмотрите сценарий установки. Каталог установки по умолчанию — /usr/libexec/genie. Программная ссылка не настроена, поэтому используйте команду ln, чтобы добавить программную ссылку на последнем шаге.

Теперь вы можете запустить команду systemctl с помощью genie.

Вы также можете напрямую загрузить пакет rpm для установки:

https://github.com/arkane-systems/genie/tags

Язык кода:javascript
копировать
wget  https://github.com/arkane-systems/genie/releases/download/v1.44/genie-1.44-1.fc34.x86_64.rpm
dnf install -y genie-1.44-1.fc34.x86_64.rpm

cat >> /root/.bashrc <<"EOF"
if [ "`ps -eo pid,lstart,cmd | grep systemd | grep -v -e grep -e systemd- | sort -n -k2 | awk 'NR==1 { print $1 }'`" != "1" ]; then
  genie -s
fi
EOF

Последняя версия 2.4 требует Python 3.7 и libc.so.6 (GLIBC_2.34), в противном случае будет сообщено об ошибке:

Язык кода:javascript
копировать
-- Проверятьglibcиз Версия
strings /lib64/libc.so.6 | egrep ^GLIBC_
Язык кода:javascript
копировать
[root@lhrxxt soft]# dnf install genie-2.4-1.fc36.x86_64.rpm
Last metadata expiration check: 0:04:55 ago on Thu 22 Sep 2022 10:31:26 AM CST.
Error:
 Problem: conflicting requests
  - nothing provides libc.so.6(GLIBC_2.34)(64bit) needed by genie-2.4-1.fc36.x86_64
  - nothing provides python3 >= 3.7 needed by genie-2.4-1.fc36.x86_64
(try to add '--skip-broken' to skip uninstallable packages or '--nobest' to use not only best candidate packages)
[root@lhrxxt soft]#
[root@lhrxxt soft]# strings /lib64/libc.so.6 | egrep ^GLIBC_
GLIBC_2.2.5
GLIBC_2.2.6
GLIBC_2.3
GLIBC_2.3.2
GLIBC_2.3.3
GLIBC_2.3.4
GLIBC_2.4
GLIBC_2.5
GLIBC_2.6
GLIBC_2.7
GLIBC_2.8
GLIBC_2.9
GLIBC_2.10
GLIBC_2.11
GLIBC_2.12
GLIBC_2.13
GLIBC_2.14
GLIBC_2.15
GLIBC_2.16
GLIBC_2.17
GLIBC_2.18
GLIBC_2.22
GLIBC_2.23
GLIBC_2.24
GLIBC_2.25
GLIBC_2.26
GLIBC_2.27
GLIBC_2.28
GLIBC_PRIVATE
GLIBC_2.26
GLIBC_2.25
GLIBC_2.28
GLIBC_2.23
GLIBC_2.8
GLIBC_2.5
GLIBC_2.9
GLIBC_2.7
GLIBC_2.6
GLIBC_2.18
GLIBC_2.11
GLIBC_2.16
GLIBC_2.13
GLIBC_2.2.6
[root@lhrxxt soft]#
[root@lhrxxt soft]# cat /etc/redhat-release
CentOS Linux release 8.4.2105
4. Использование джинна

У джинна есть три инструкции:

Язык кода:javascript
копировать
genie -i запускать systemd процесс
genie -s запускать systemd процесс и войдите в терминал среды
genie -c <command> запускать systemd процесс и выполнить соответствующие инструкции

Пример: установите openssh и запустите

Язык кода:javascript
копировать
dnf install openssh-server
genie -c systemctl start sshd
5. Используйте команду pstree для просмотра дерева процессов.
Язык кода:javascript
копировать
dnf -y install psmisc #Установитьpstree 
pstree -ap #Проверятьпроцесс Дерево

Вы можете видеть, что пространство systemd, не используемое демоном, будет запускать все процессы systemd.

На этом этапе вы можете войти в эту систему CentOS с помощью ssh-клиента.

Кроме того, используйте команду: genie systemctl Enable sshd, которую нельзя запустить при загрузке.

Использование команды systemctl в WSL2

Связанные отчеты об ошибках:

Язык кода:javascript
копировать
-- Невозможно запустить systemctl Ошибка заказа
System has not been booted with systemd as init system (PID 1). Can't operate.
Failed to connect to bus: Host is down


Failed to get D-Bus connection: Operation not permitted


Authorization not available. Check if polkit service is running or see debug message for more information.

failed to start daemon: Error initializing network controller: error obtaining controller instance: failed to create NAT chain DOCKER: iptables failed: iptables --wait -t nat -N DOCKER: iptables v1.8.4 (nf_tables):  CHAIN_ADD failed (No such file or directory): chain PREROUTING
 (exit status 4)

Есть как минимум три способа включить systemd в wsl2:

  1. genie
  2. subsystemctl
  3. wsl-distrod

Способ 1. Замените исходную команду systemctl.

ссылка:https://github.com/gdraheim/docker-systemctl-replacement/blob/master/files/docker/systemctl.py

Язык кода:javascript
копировать
mv /usr/bin/systemctl /usr/bin/systemctl.old
curl https://raw.githubusercontent.com/gdraheim/docker-systemctl-replacement/master/files/docker/systemctl.py > /usr/bin/systemctl
chmod +x /usr/bin/systemctl

Если сообщается об ошибке, скопируйте содержимое вручную.

Я запустил docker на centOS8 и получил ошибку:

Язык кода:javascript
копировать
failed to start daemon: Error initializing network controller: error obtaining controller instance: failed to create NAT chain DOCKER: iptables failed: iptables --wait -t nat -N DOCKER: iptables v1.8.4 (nf_tables):  CHAIN_ADD failed (No such file or directory): chain PREROUTING
 (exit status 4)

Решение не найдено.

недостаток: 1. Содержимое, возвращаемое этим методом, намного меньше, чем у обычных команд, и при самостоятельном тестировании возникает множество проблем.

ссылка:https://blog.csdn.net/m0_55155505/article/details/122995993

https://www.jianshu.com/p/e670ae82e97a

Способ 2: установить Distrod (рекомендуется)

GitHub:https://github.com/nullpo-head/wsl-distrod

Distrod — это метадистрибутив WSL2 на базе systemd, который позволяет за минуту установить Ubuntu, Arch Linux, Gentoo и многие другие дистрибутивы с помощью systemd или запустить текущий дистрибутив с помощью systemd.

Distrod также предоставляет встроенную функцию автозапуска и услуги переадресации портов. Это позволяет запускать управляемую службу systemd при запуске Windows и делать ее доступной из-за пределов Windows.

  • Применимо из Дистрибутив:к Вниз Дистрибутив Постоянно тестируется
  • Ubuntu, Debian, Arch Linux, Fedora, CentOS, AlmaLinux, Rocky Linux, Kali Linux, Linux Mint, openSUSE, Amazon Linux, Oracle Linux, Gentoo Linux

(См. Интеграционный тест в Linux (имя_дистрибутива))

  • Другой Дистрибутив может работать, а может и не работать
Ситуация 1, установите новую систему: Установите новый дистрибутив.
  1. Убедитесь, что по умолчанию вы используете WSL версии 2.
Язык кода:javascript
копировать
wsl --set-default-version 2
  1. Загрузите и разархивируйте https://github.com/nullpo-head/wsl-distrod/releases/latest/download/distrod_wsl_launcher-x86_64.zip и дважды щелкните exe-файл.
  2. Следуйте за мастером Установитьновыйиз Дистрибутив。
  3. [Необязательный]Сделать Дистрибутивсуществовать Windows Начать при загрузке,пожалуйстабегатьк Вниз Заказ。
Язык кода:javascript
копировать
sudo /opt/distrod/bin/distrod enable --start-on-windows-boot
Случай 2: установка в существующей системе: запустите текущий дистрибутив Systemd.

При этой установке systemd включен в дистрибутиве WSL 2.

  1. скачатьибегатьбольшинствоновыйиз Установитьсценарий программы。
Язык кода:javascript
копировать
curl -L -O "https://raw.githubusercontent.com/nullpo-head/wsl-distrod/main/install.sh"
chmod +x install.sh
sudo ./install.sh install

Этот скрипт устанавливает дистрибутив, но еще не включает его.

Если его не удается установить нормально, вы можете использовать следующие методы:

Язык кода:javascript
копировать
mkdir -p /opt/distrod
cd /opt/distrod
wget https://github.com/nullpo-head/wsl-distrod/releases/latest/download/opt_distrod.tar.gz
tar xvf opt_distrod.tar.gz
rm -rf opt_distrod.tar.gz
  1. существовать Дистрибутивсерединадавать возможность Дистрибутив

У вас есть два варианта. Если вы хотите, чтобы дистрибутив запускался автоматически при запуске Windows, включите дистрибутив с помощью следующей команды

Язык кода:javascript
копировать
/opt/distrod/bin/distrod enable --start-on-windows-boot

в противном случае

Язык кода:javascript
копировать
/opt/distrod/bin/distrod enable

Если вы захотите включить автозапуск в будущем, вы можете запустить его еще раз. with 。enable--start-on-windows-boot

  1. Перезапуск Дистрибутив

Закройте терминал WSL. Откройте новое окно командной строки и выполните следующие команды.

Язык кода:javascript
копировать
wsl --terminate Distrod

После повторного открытия нового окна WSL оболочка запустится в сеансе systemd.

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

Язык кода:javascript
копировать
systemctl status | cat
Сравнение с другими методами

В официальной документации Distrod описывает, как это работает:

Короче говоря, Distrod — это двоичный файл, который создает простой контейнер с systemd в качестве процесса инициализации и запускает ваш сеанс wsl в этом контейнере. Для этого Distrod делает следующее:

  1. Исправлятьспецифический Дистрибутивиз rootfs, сделай это и wsl и systemd совместимый.
  2. Исправлять systemd Подавайте и wsl совместимый.
  3. Пучок/opt/distrod/bin/distrodи Вложите другие ресурсы в rootfs。
  4. Пучок Distrod Двоичный файл зарегистрирован как логин shell。
  5. когда Distrod Войдите как shell одеяло wsl из init процессзапускатьчас,Distrod:
  6. существовать Простойизконтейнерсерединазапускать systemd
  7. существоватьэтотконтейнерсерединазапускатьты практичныйиз shell
  8. существовать systemd разговор и wsl Создавайте мосты между интерактивными средами.

Фактически, Distrod работает аналогично genie и subsystemctl: создайте контейнер, запустите в контейнере systemd с pid 1 и используйте оболочку. Это также упоминается в официальной документации:

Пучок Distrod какодиннезависимыйиз Одноразовый Заказ:в этом случае, distrod работает как genie и subsystemctl。

Однако Distrod делает больше с автозапуском. Посредством вышеуказанных операций Дистрод выполнил:

  1. После установки и включения запуск wsl автоматически запустит systmed.
  2. добавить в--start-on-windows-bootпараметрназад,Distrod Зарегистрирую один windows задача, сделать wsl существовать windows run появится при загрузке.

По сравнению с другими методами, требующими ручного написания сценариев оболочки для автоматического запуска, Distrod, который проще в установке и удобнее использовать, несомненно, пользуется большей популярностью среди пользователей.

Способ 3: используйте джинна

Подвести итог

1、рекомендоватьDistrodиз Оффлайн Установить,ужесуществоватьcentOS7、CentOS8、CentOS Stream release Тест пройден на 9, большинство норм, но пакетов много не бывает, в противном этот случай может привести к зависанию запуска systemctl,Какая это сумка?,я тоже не знаю

Язык кода:javascript
копировать
mkdir -p /opt/distrod
cd /opt/distrod
wget https://github.com/nullpo-head/wsl-distrod/releases/latest/download/opt_distrod.tar.gz
tar xvf opt_distrod.tar.gz
rm -rf opt_distrod.tar.gz
/opt/distrod/bin/distrod enable

2、рекомендоватьбольшинство低использоватьCentOS 7.9.2009Версия,Другая версия может сообщать об ошибке

3. Также бывают проблемы во время использования.,Иногда systemctl работает неправильно и sshd зависает.,иметьчасждатьdf -hвстречазастрявший

4、использоватьCentOS Stream release 9изпроцесс,Я чувствую, что нет никаких проблем

5、о Использование команды systemctl в WSL2, рекомендуется подождать, пока Microsoft поддержит его. Фактически, Ubuntu. Это очень хорошо

CentOS 8 ням проблема

Язык кода:javascript
копировать
-- Ошибка: Ошибка: Failed to download metadata for repo 'appstream': Cannot prepare internal mirrorlist: No URLs in mirrorlist
sed -i 's/mirrorlist/#mirrorlist/g' /etc/yum.repos.d/CentOS-*
sed -i 's|#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g' /etc/yum.repos.d/CentOS-*

ссылка

https://github.com/mishamosher/CentOS-WSL https://github.com/CentOS/sig-cloud-instance-images

https://github.com/wsldl-pg/CentWSL/releases https://github.com/nullpo-head/wsl-distrod/ https://github.com/arkane-systems/genie/releases

https://github.com/systemd/systemd/issues/8036

boy illustration
Неразрушающее увеличение изображений одним щелчком мыши, чтобы сделать их более четкими артефактами искусственного интеллекта, включая руководства по установке и использованию.
boy illustration
Копикодер: этот инструмент отлично работает с Cursor, Bolt и V0! Предоставьте более качественные подсказки для разработки интерфейса (создание навигационного веб-сайта с использованием искусственного интеллекта).
boy illustration
Новый бесплатный RooCline превосходит Cline v3.1? ! Быстрее, умнее и лучше вилка Cline! (Независимое программирование AI, порог 0)
boy illustration
Разработав более 10 проектов с помощью Cursor, я собрал 10 примеров и 60 подсказок.
boy illustration
Я потратил 72 часа на изучение курсорных агентов, и вот неоспоримые факты, которыми я должен поделиться!
boy illustration
Идеальная интеграция Cursor и DeepSeek API
boy illustration
DeepSeek V3 снижает затраты на обучение больших моделей
boy illustration
Артефакт, увеличивающий количество очков: на основе улучшения характеристик препятствия малым целям Yolov8 (SEAM, MultiSEAM).
boy illustration
DeepSeek V3 раскручивался уже три дня. Сегодня я попробовал самопровозглашенную модель «ChatGPT».
boy illustration
Open Devin — инженер-программист искусственного интеллекта с открытым исходным кодом, который меньше программирует и больше создает.
boy illustration
Эксклюзивное оригинальное улучшение YOLOv8: собственная разработка SPPF | SPPF сочетается с воспринимаемой большой сверткой ядра UniRepLK, а свертка с большим ядром + без расширения улучшает восприимчивое поле
boy illustration
Популярное и подробное объяснение DeepSeek-V3: от его появления до преимуществ и сравнения с GPT-4o.
boy illustration
9 основных словесных инструкций по доработке академических работ с помощью ChatGPT, эффективных и практичных, которые стоит собрать
boy illustration
Вызовите deepseek в vscode для реализации программирования с помощью искусственного интеллекта.
boy illustration
Познакомьтесь с принципами сверточных нейронных сетей (CNN) в одной статье (суперподробно)
boy illustration
50,3 тыс. звезд! Immich: автономное решение для резервного копирования фотографий и видео, которое экономит деньги и избавляет от беспокойства.
boy illustration
Cloud Native|Практика: установка Dashbaord для K8s, графика неплохая
boy illustration
Краткий обзор статьи — использование синтетических данных при обучении больших моделей и оптимизации производительности
boy illustration
MiniPerplx: новая поисковая система искусственного интеллекта с открытым исходным кодом, спонсируемая xAI и Vercel.
boy illustration
Конструкция сервиса Synology Drive сочетает проникновение в интрасеть и синхронизацию папок заметок Obsidian в облаке.
boy illustration
Центр конфигурации————Накос
boy illustration
Начинаем с нуля при разработке в облаке Copilot: начать разработку с минимальным использованием кода стало проще
boy illustration
[Серия Docker] Docker создает мультиплатформенные образы: практика архитектуры Arm64
boy illustration
Обновление новых возможностей coze | Я использовал coze для создания апплета помощника по исправлению домашних заданий по математике
boy illustration
Советы по развертыванию Nginx: практическое создание статических веб-сайтов на облачных серверах
boy illustration
Feiniu fnos использует Docker для развертывания личного блокнота Notepad
boy illustration
Сверточная нейронная сеть VGG реализует классификацию изображений Cifar10 — практический опыт Pytorch
boy illustration
Начало работы с EdgeonePages — новым недорогим решением для хостинга веб-сайтов
boy illustration
[Зона легкого облачного игрового сервера] Управление игровыми архивами
boy illustration
Развертывание SpringCloud-проекта на базе Docker и Docker-Compose