Найти тему
Alexander's Studio

Arch Linux в Windows 10

Оглавление

В данной статье я покажу как установить Arch Linux в Windows 10 используя WSL. Дистрибутива Arch нет в WSL "из коробки". Я покажу как установить его вручную. Данный флоу актуален и для других дистрибутивов.

Мой Arch с bash
Мой Arch с bash

Я использовал терминал 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 и вывод такой:

Проверка версии WSL
Проверка версии WSL

Подробнее здесь: https://learn.microsoft.com/ru-ru/windows/wsl/install

Скачать образ Arch Linux с офф. сайта: https://archlinux.org/download/

Страница загрузок Arch
Страница загрузок Arch
Выбираем Worldwide
Выбираем Worldwide

Скачиваем: 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 .

*не пропусти точку в конце!

Получили образ для импорта
Получили образ для импорта
Самое время записать путь к образу в Windows
Самое время записать путь к образу в Windows
  • выходим из Ubuntu с помощью Ctrl + D

Для чего мы это делали? Почему нельзя использовать скаченный образ без смены внутренней директории?

Дело в том, что в скаченном образе, при загрузке, запускается не Arch, а установщик из корневой директории. Этот образ предназначен для установки. В нём есть сам Arch, который загружает установщик.

Шаг 3: Импорт

Импортируем отредактированный образ:

wsl --import Arch2 C:\Users\ponom\wsl\Arch2 C:\Users\ponom\Downloads\root.x86_64arch_bootstrap.tar.gz

Команда длинная, состоит из команды с ключами, пути до места парковки образа ОС, пути к источнику для импорта.

Да, я 2 раза не правильно вписал путь
Да, я 2 раза не правильно вписал путь

Готово! Теперь можно подключиться в наш Arch:

wsl -d arch2

Должно получится +- как на скриншоте:

arch2
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

*на всякий случай

mirrorlist
mirrorlist

Обновите репозитории и установите последние пакеты:

pacman -Syu

Также будет нужно установить несколько отсутствующих «базовых» пакетов, которые всегда полезно иметь и которые можно установить с помощью:

pacman -S base base-devel

Установите zsh или не устанавливаете если планируете использовать bash:

pacman -S zsh

Чтобы обновить всё до последних версий используйте:

pacman -Syyu

Список всего, что было установлено через pacman:

pacman -Qqe

Введём и получим список того, что установили:

pacman list = pacman -Qqe
pacman list = pacman -Qqe

Обязательно установите vim или nano:

pacman -S vim

Создание пользователя

Использовать root'а это моветон. Создадим нашего пользователя quiet.

Для создание пользователя нужно:

Добавьте группу sudo:

groupadd sudo

Включите sudoers:

vim /etc/sudoers

Нужно полистать вниз:

sudoers
sudoers

и раскомментируйте строки

%wheel ALL=(ALL) NOPASSWD: ALL
%sudo ALL=(ALL) ALL

как на скриншоте:

sudoers edited
sudoers edited

Добавьте нового пользователя-администратора: 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

Пользователь добавлен:

whoiam
whoiam

Как заходить в 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} может отличаться от вашей - найдите по название импортированного дистрибутива.

regedit
regedit

Узнаем uid quiet:

uid for quiet
uid for quiet

Заменяем DefaultUid на ID созданного пользователя, в нашем случае это 1000.

wsl -d Arch2

Финал:

Успех!
Успех!

Установим neofetch и запустим его:

sudo pacman -S neofetch

neofetch
neofetch

Далее нужно привести zsh в человеческий вид и установить нужный для работы софт, но это уже совсем другая история.