В данной статье я покажу как установить Arch Linux в Windows 10 используя WSL. Дистрибутива Arch нет в WSL "из коробки". Я покажу как установить его вручную. Данный флоу актуален и для других дистрибутивов.
Я использовал терминал Windows: https://learn.microsoft.com/ru-ru/windows/terminal/install
Что такое WSL
Подсистема Windows для Linux позволяющая запускать среду GNU/Linux с большинством программ командной строки, служебных программ и приложений непосредственно в Windows без каких-либо изменений и необходимости использовать традиционную виртуальную машину или двойную загрузку.
Подробнее можно почитать здесь: https://learn.microsoft.com/ru-ru/windows/wsl/about
Импорт образа в WSL
Вся задача сводится к простым шагам:
1. Скачать образ Arch Linux
2. Редактировать образ
3. Импортировать образ в WSL
Шаг 1: Подготовка
Вначале нужно проверить, что WLS установлен и используется WSL2.
Для этого выполните:
wsl -l -v
У меня уже установлен WSL2 и вывод такой:
Подробнее здесь: https://learn.microsoft.com/ru-ru/windows/wsl/install
Скачать образ Arch Linux с офф. сайта: https://archlinux.org/download/
Скачиваем: archlinux-bootstrap-x86_64.tar.gz
Шаг 2: Редактирование образа
Формат .tar.gz открывает почти любой архиватор Windows,
gz хорошо сжимает один файл, поэтому сначала .tar - по-сути архив без сжатия, потом .gz
корме того, скачать можно из встроенной Ubuntu и использовать терминальные команды - как вам удобно.
Но работая с образам Arch'а в Windows вас ждут приключения. Распаковка будет выполняться с ошибками. Но есть легенда, что можно и так (не рекомендую, хотя у меня всё заработало). Ошибки связаны с именами файлов.
Файловая система NTFS не чувствительна к регистру, это значит что в NTFS файл xt_tcpmss.h и файл xt_TCPMSS.h - один и тот же файл, в то время, как в файловых системах Linux, например ext4 и btrfs, регистр имеет значение, следовательно xt_tcpmss.h и xt_TCPMSS.h - разные файлы.
Мы отредактируем образ по канону, из Ubuntu:
- открываем в папке со скаченным образом терминал
- вводим:
wsl
Запустится дистрибутив по-умолчанию, у меня это Ubuntu:
- далее распаковываем архив:
tar -zxvf archlinux-bootstrap-x86_64.tar.gz
- переходим в директорию root.x86_64:
cd root.x86_64
- собираем всё в архив:
tar -zcvf arch_bootstrap.tar.gz .
*не пропусти точку в конце!
- выходим из Ubuntu с помощью Ctrl + D
Для чего мы это делали? Почему нельзя использовать скаченный образ без смены внутренней директории?
Дело в том, что в скаченном образе, при загрузке, запускается не Arch, а установщик из корневой директории. Этот образ предназначен для установки. В нём есть сам Arch, который загружает установщик.
Шаг 3: Импорт
Импортируем отредактированный образ:
wsl --import Arch2 C:\Users\ponom\wsl\Arch2 C:\Users\ponom\Downloads\root.x86_64arch_bootstrap.tar.gz
Команда длинная, состоит из команды с ключами, пути до места парковки образа ОС, пути к источнику для импорта.
Готово! Теперь можно подключиться в наш Arch:
wsl -d arch2
Должно получится +- как на скриншоте:
Обратите внимание, что мы зашли как root пользователь.
Настройка Arch Linux
Выполните следующие действия:
Инициализируйте связку ключей, необходимую для запуска pacman:
pacman-key --init
Заполните новую связку ключей последним набором ключей Arch:
pacman-key --populate archlinux
Список зеркал Pacman уже установлен, но полностью закомментирован. Загрузите новый и перезапишите существующий:
curl "https://archlinux.org/mirrorlist/?country=US&protocol=https&ip_version=4&use_mirror_status=on" | вырезать -c 2- > /etc/pacman.d/mirrorlist
Проверьте список зеркал:
cat /etc/pacman.d/mirrorlist
*на всякий случай
Обновите репозитории и установите последние пакеты:
pacman -Syu
Также будет нужно установить несколько отсутствующих «базовых» пакетов, которые всегда полезно иметь и которые можно установить с помощью:
pacman -S base base-devel
Установите zsh или не устанавливаете если планируете использовать bash:
pacman -S zsh
Чтобы обновить всё до последних версий используйте:
pacman -Syyu
Список всего, что было установлено через pacman:
pacman -Qqe
Введём и получим список того, что установили:
Обязательно установите vim или nano:
pacman -S vim
Создание пользователя
Использовать root'а это моветон. Создадим нашего пользователя quiet.
Для создание пользователя нужно:
Добавьте группу sudo:
groupadd sudo
Включите sudoers:
vim /etc/sudoers
Нужно полистать вниз:
и раскомментируйте строки
%wheel ALL=(ALL) NOPASSWD: ALL
%sudo ALL=(ALL) ALL
как на скриншоте:
Добавьте нового пользователя-администратора: useradd -m -G wheel,sudo -s /bin/zsh <username>, используйте -s /bin/bash, если вы хотите использовать bash вместо zsh.
useradd -m -G wheel,sudo -s /bin/zsh quiet
Создадим пароль для quiet:
passwd quiet
Выходим из root'а: Ctrl + D
Заходим в quiet:
wsl -d Arch2 --user quiet
Пользователь добавлен:
Как заходить в quiet по-умолчанию
При вводе wsl -d Arch2 мы всё равно попадём в root'а, а писать всё время wsl -d Arch2 --user quiet не наш путь.
Нам поможет regedit!
Находим запись:
Компьютер\HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Lxss\{39865a42-342b-4c3b-9c71-846a537a0cc9}
Где {39865a42-342b-4c3b-9c71-846a537a0cc9} может отличаться от вашей - найдите по название импортированного дистрибутива.
Узнаем uid quiet:
Заменяем DefaultUid на ID созданного пользователя, в нашем случае это 1000.
wsl -d Arch2
Финал:
Установим neofetch и запустим его:
sudo pacman -S neofetch
Далее нужно привести zsh в человеческий вид и установить нужный для работы софт, но это уже совсем другая история.