Как установить Arch с минимальной болью?

Как установить Arch без боли??


Предисловие


Слышал, что некоторые считают Arch сложным в установке. Отчасти они правы, но для любого человека, который способен разобраться в установке и настройке linux, установка Arch довольно проста. Также это самый гибкий дистрибутив, поэтому настроить под себя его получится лучше других дистрибутивов.


Данный гайд является сборной солянкой из всех гайдов, что я прочитал (как русскоязычные, так и иноязычные). Его цель просто и без лишней технической информации показать пошаговую установку Arch и сделать это на русском языке. Главное, что статья написана от непонимающего для непонимающих. Заранее скажу, что некоторые скрины будут уже с установленного Arch, но это никак не меняет работу команд и то, что вы увидите при их использование.


Итак, начнём с простого.


Идём на сайт и качаём ISO-файл:



Там ищем зеркало(скорее всего русское) и скачиваем образ:



Для упрощения дальнейшей жизни лучше скачать Etcher, прямо на сайте есть довольно понятная инструкция в картинках, так что справятся все.


 Установка


// начну с настройки VirtualBox, если вы используете её, то выполните следующие действия


1.Идём в настройки машины:


2.Во вкладке система ставим галочку около пункта ''Включить EFI'':



3.Далее идём во вкладку носители, там добавляем контроллер IDE и выбираем наш дистрибутив


Далее установка будет для всех одинакова.


Начинаем с запуска



Выбираем первую строку и жмём Enter


Проверим соединение с интернетом:


Это нужно, потому что Arch требует интернет для своей установки.


Такой командой можно проверить своё соединение и увидеть время ответа сайта.


ping -c 3  google.com


Если вы используете wifi на своём ПК, то используйте утилиту :


wifi-menu

Вы увидите примерно это:



Разделы диска


Для того, чтоб разбить наш диск на разделы, можно сначала узнать какие диски подключены. Скорее всего у вас будет USB флешка и HDD\SSD вашего ПК.


Команда для просмотра разделов (понадобится нам ещё много раз):


lsblk


Если у вас несколько дисков, а вы хотите установить на какой-то конкретный, то можно посмотреть диски по размерам.


fdisk -l


Время размечать наш диск. Используем команду cfdisk для этого и выбираем gpt формат :


cfdisk /dev/sda


Bажно! если во время использования команды lsblk и fdisk вы увидели что sda является не тем диском, что нужен вам, то вы дописываете в конец название другого диска, например sdb.


Используя стрелочки создаём 3 раздела на диске:


  • /dev/sda1 # размером 1G места под UEFI
  • /dev/sda2 # размером примерно 10-15 GB под root
  • /dev/sda3 # всё оставшееся место под директорию home

PS: Если вы решили переделать разметку диска, то через эту утилиту можно и удалять разделы


Для проверки используем lsblk снова. Если всё норм, что /dev/sda будет содежать в себе 3 раздела.




Далее форматируем наши разделы.


  1. Форматируем тот раздел, который мы выделили под UEFi


    mkfs.fat -F32 /dev/sda1

  2. Раздел root


    mkfs.ext4 /dev/sda2

  3. Раздел home


    mkfs.ext4 /dev/sda3


Монтируем root и создаём папку home:


mount /dev/sda2 /mnt
mkdir /mnt/home
mount /dev/sda3 /mnt/home

И снова lsblk для проверки


Установка


Начинается самая долгая часть, потому что нужно будет много скачать. Устанавливаем все основные пакеты, а также nano, чтоб редачить файлы системы. Если вдруг вы знакомы с  vim можете скачать и его (дописать в конец).


pacstrap -i /mnt base linux linux-firmware sudo nano

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


Создадим  fstab файл


genfstab -U -p /mnt >> /mnt/etc/fstab

 Настраиваем установленную систему


Chroot


Chroot (change root) нужен нам, чтобы мы могли сменить  root пользователя (как и сказано в названии команды).


arch-chroot /mnt /bin/bash


Настройка файла локали


Для начала идём в файл локали, чтоб настроить язык


nano /etc/locale.gen


Находим там #en_US.UTF-8 и стираем #, с русским языком так же. PS: можно использовать Ctrl + W для поиска языка в файле.


Чтобы всё сохранить Ctrl + O, затем Enter и Ctrl + X, затем Enter


Далее пишем команды, которые сгенерируют локаль и создаём locale.conf с нужными настройками языка.


locale-gen
echo "LANG=en_US.UTF-8" > /etc/locale.conf

Настраиваем временную зону


ln -sf /usr/share/zoneinfo/

Далее жмём 2 раза на Tab и видим список регионов, после городов.


В моём случае было так:


ln -sf /usr/share/zoneinfo/Europe/Kaliningrad /etc/localtime

Задаём время


Тут 2 команды. Одна ставит время для системы, а другая его показывает.


hwclock --systohc --utc
date

Имя хоста и адрес


Я решил назвать ПК ArchMe, поэтому используем следующую команду:


echo ArchMe > /etc/hostname

Далее идём в файл localhosts и записываем ip. Если у вас ip статический, используйте свой.


nano /etc/hosts
127.0.1.1 localhost.localdomain ArchMe

Сетевой менеджер


Качаем и включаем.


pacman -S networkmanager
systemctl enable NetworkManager 

Установка GRUB


Для начала сменим пароль root пользователя :


passwd

GRUB — это загрузчик, который нужен, чтоб запускать нашу установленную систему (в режиме EFI). Далее будет куча команд, которые нужно выполнить.


pacman -S grub efibootmgr
mkdir /boot/efi
mount /dev/sda1 /boot/efi
lsblk # для проверки всё ли норм смонтировано 
grub-install --target=x86_64-efi --bootloader-id=GRUB --efi-directory=/boot/efi --removable
grub-mkconfig -o /boot/grub/grub.cfg

Перезагрузка


Чтобы без потерь перезагрузить нашу систему используем эти команды:


exit
umount -R /mnt
reboot

После перезагрузки вы увидите следующее. Если это так, то наш GRUB установился правильно




Входим в root аккаунт и создаём  swapfile (что-то вроде доп оперативки) и задаём ему размер как у вашей ОЗУ


fallocate -l 3G /swapfile

Далее выполняем следующие команды:


chmod 600 /swapfile
mkswap /swapfile
swapon /swapfile
echo '/swapfile none swap sw 0 0' >> /etc/fstab

И проверяем, работает ли swap:


free -m

Добавим пользователя и окружение


useradd -m -g users -G wheel -s /bin/bash username
passwd username

username замените на то имя, что хотите вы)


Также нужно дать ему права суперюзера:


EDITOR=nano visudo

там ищем  и убираем #, а дальше Ctrl + O, затем Enter и Ctrl + X, затем Enter


# %wheel ALL=(ALL) ALL

Дрова

pacman -S pulseaudio pulseaudio-alsa xorg xorg-xinit xorg-server

Вам будет предложен выбор, выбирайте исходя из своей графики.


Окружение

Вначале покажу как поставить довольно простое — XFCE


pacman -S xfce4 lightdm lightdm-gtk-greeter
echo "exec startxfce4" > ~/.xinitrc
systemctl enable lightdm

И моё любимое  i3, там выбираем пакеты 2 4 5. Возможно вы увидите квадраты вместо символов, но это нормально, вам просто нужно будет скачать шрифт dejavu (pacman -S ttf-dejavu). Cписок горячих клавиш можно посмотреть  тут


echo "exec i3"  > ~/.xinitrc
sudo pacman -S i3


Если вы решите поменять своё окружение, то нужно будет менять запись в файле xinitrc.


Для запуска вашего окружения используйте


startx
AdBlock похитил этот баннер, но баннеры не зубы — отрастут

Подробнее
Реклама

Комментарии 27

    0

    Осталось ещё в графический интерфейс завернуть… но погодите… =)

      0

      Шутку про то, что визуальный инсталятор "далее-далее-далее" лет 7 назад вырезали никто не понял?

      +7
      Chroot (change root) нужен нам, чтобы мы могли сменить root пользователя (как и в название).

      Адовая чепуха.


      Ну и всё равно в Arch Wiki всё написано гораздо подробнее и понятнее и без кучи мелких ошибок.

        +8
        Как установить Arch без боли

        Установить Manjaro
        /thread
          +2
          Ну вот не понимаю, зачем тем, для кого сложно установить Arch без этих инструкций (по инструкции с официального сайта, например), нужен Arch?
          Есть много других дистрибутивов, где процесс инсталляции автоматизирован.
          И процесс установки не усложнён намеренно, он наоборот, упрощён для тех, кому нужен этот уровень контроля, который даёт процесс именно в этом виде. При том, этот контроль зачастую нужен по психологическим причинам (моё личное мнение, как и всё остальное сказанное).
          В конце концов, если нужен именно Arch, есть производные от него дистрибутивы с «классическими» инсталляторами. Почему не использовать их?

          P.S. О, сколько же людей потеряют свои файлы благодаря этой «инструкции»!
          Примечательно звучит заголовок в этом контексте
            0
            И процесс установки не усложнён намеренно, он наоборот, упрощён для тех, кому нужен этот уровень контроля, который даёт процесс именно в этом виде. При том, этот контроль зачастую нужен по психологическим причинам (моё личное мнение, как и всё остальное сказанное).

            Дело не в большем контроле, хотя и такое бывает. Тут дело в том самом KISS. Исторически Arch (как и Gentoo, и Slackware) пытался быть как можно свежее и с меньшим числом заморочек и абстракции.


            А раз целевая аудитория в целом отлично может из консоли разбираться с любым дистрибом, то зачем тратить усилия на дружелюбный инсталятор, или мастер настройки какой-нибудь?


            Помню когда я первый раз поставил Arch лет 13 назад (он как раз был на волне хайпа), а там не оказалось man pages. Тогда это мне показалось дикостью, но успех arch wiki показал, что это было очень дальновидное решение. И это было решение в духе KISS.

            0
            вопрос «зачем?» уже не стоит, я так понимаю
              +3
              GRUB — это EFI загрузчик, который нужен, чтоб запускать нашу установелнную систему

              Простите, но нет. Вообще нет. На EFI железе grub в принципе нужен разве что в каких-то очень специфичных случаях. Но я таких лично не видел.
              Ключевые слова для поиска: stub kernel, efivars, systemd-boot (опционально, для удобства).


              И это. Если у вас (не у автора, а у абстрактного "вы") установка вызывает боль и непонимание происходящего, даже в свете потрясающе подробной вики, то, наверное, этот дистрибутив пока вам не так уж и нужен. Арч не про user-friendly, он про KISS под капотом

                0
                efivars
                не подсказывайте «умельцам»!
                  +2

                  Не вижу в этом ничего такого. Все когда-то не знали что такое efivars, все в какой-то момент изучали это. Не рождалось ещё людей с изначально вложенными знаниями и умениями.

                  +1
                  я бы посоветовал для Efi вместо grub использовать gummyboot (systemd-boot).
                  гораздо легче и проще граба (например конфиги). Использовать чистый efistub не стал, т. к. неудобно каждый раз изменять boot entry в efivars для того чтобы добавить флаг загрузки ядра.
                  +1
                  А где ещё два заголовка?
                  По индукции это должны быть «Как установить Arch с удовольствием???» и «Как установить Arch с максимальным удовольствием????»
                    0

                    Один вопрос: как без боли обновить один единственный пакет в арче не обновляя всю систему и не собирая его из исходников ?

                      +1

                      Точно так же, как и установить: pacman -S имя_пакета. Пакет обновится даже в том случае, если его версия не изменилась

                        +1

                        Это может сломать систему, если новый пакет потянет новые зависимости, а они не подойдут остальным. Очень многие новички так ломают себе систему.
                        https://wiki.archlinux.org/index.php/System_maintenance#Partial_upgrades_are_unsupported
                        Вы можете на свой страх и риск так сделать, если уверены, что вышеописанное не произойдет (pacman указывает, что обновит)

                          0
                          как бы нет, если пакет зависить от библиотек отличных от установленных
                          0

                          Никак, это заложено в философию дистра
                          https://wiki.archlinux.org/index.php/System_maintenance#Partial_upgrades_are_unsupported

                            0

                            Это вообще так в любом пакетном дистрибутиве. В дистрибутивах с point release философией у вас просто версия софта +- одинаковая весь срок жизни версии дистрибутива, максимум некоторые утилиты могут обновить, если типовые библиотеки позволяют, ну и ядро в пределах совместимости. И то такое бывает нечасто.


                            По вопросу — в арче можно собрать нужный софт через ABS, благо это гораздо удобнее сборки пакетов deb или rpm. Можно вообще pacman указать снимок реп за конкретный день и годами пакеты ставить из такого замороженного источника. Можно при этом свой оверлей организовать и пересобирать нужное поверх штатных пакетов, не rocket science
                            Вариантов вагон.
                            Но официально у Арча rolling release)

                              0

                              ABS соберет пакет + десяток устаревших или сверх свежих либ разом и куда-то отдельно сложит?

                                0

                                Из abs скачаешь описание для сборки пакета и сможешь собрать его под свои текущие пакеты. Будет пакет "как в репо", но собранный с теми зависимостями, какие сейчас стоят. А используя альтернативные пакетные менеджеры это можно вообще сделать так, будто ты пакет просто ставишь (ну плюс время на компиляцию конечно). Так что как раз момент "я хочу вот это просто себе поставить" в арче проще, чем во многих дистрах (попробуй например в centos поставить свежее ядро, свежий хром и ничего не трогать остального. Из исходников поставить).

                                  0
                                  про Gentoo слышали?
                                    0
                                    В генту нет выбора, в арче ты можешь взять изначально бинарный пакет из репо, один, и пересобирать у себя его как хочется. Ну во всяком случае много лет назад, когда я выбирал между генту и арчем, там было так.
                                0
                                проблема с rolling в том, что через год без обновлений иногда проще с нуля поставить.
                                а ещё, если в пакете нужна поддержка чего-то, отличного от бинарного (mysql в exim) — наступает ад
                              0

                              Примерно та же ситуация с доустановкой пакета — захотел сегодня добавить на сервер tcpdump, а его в репах уже нету той версии, которая от моей установки. Везде 404. Только апгрейд.

                                0
                                захотел сегодня добавить на сервер tcpdump, а его в репах уже нету той версии, которая от моей установки
                                если сервер — держи рядом срез репозитория, и обновляй его, когда обновляешь все серверы. У меня обычно есть «прям продакшен», который с этого среза, а весь стейдж и всякое совсем тестовое-десктопное прям с интернета ставится. Таким образом на стейдже в любой момент обкатал весь апдейт, обновил свой локальный репо — и обновил продакшен.
                              0

                              Спасибо автору за перепечатанную с Arch Wiki инструкцию (нет)

                                0

                                Если хочется действительно без боли, быстро и без заморочек — рекомендую ctlos — https://ctlos.github.io/
                                только установщик и базовые конфиги de, без вмешательств в пакеты. (Ну в случае минималистичных i3/bspwm придётся конфиги поправить, так как хоткеи — штука очень индивидуальная)
                                При желании, можно свой образ собрать с нужными пакетами/конфигами https://ctlos.github.io/wiki/other/ctlosiso/#%D0%B1%D1%8B%D1%81%D1%82%D1%80%D0%BE%D0%B5-%D1%81%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5-iso

                                Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                                Самое читаемое