Установка Arch для (почти) самых маленьких

Иконка ресурса
Краткое описание:
Краткий гайд по установке Arch Linux
624
  • Теги
    arch
  • Примечание​

    Данный гайд предполагает что у вас уже есть какой-никакой опыт установки ОС на ПК и работы с базовыми Linux командами, поэтому процесс скачивания и записи ISO образа на флешку мы опустим.
    Если вы не уверены, лучше попробуйте на виртуальной машине (VirtualBox, VMWare и т.д.)!
    Не начинайте ничего делать пока не прочитаете ПОЛНОСТЬЮ!
    ЗА ВСЕ ДЕЙСТВИЯ НЕСЁТЕ ОТВЕТСТВЕННОСТЬ ТОЛЬКО ВЫ САМИ!!!

    Установку драйверов для видеокарт NVidia также опустим, слишком уж обширная тема



    Для начала нам понадобится​

    1. Установочный образ Arch, скачать можно на официальном сайте
    2. Флешка, на которую можно будет записать этот образ. Можно использовать Ventoy если нужно иметь на флешке несколько образов или вообще устанавливать с телефона через DriveDroid (нужен ROOT)
    3. Не бояться буковок на чёрном фоне



    Приступим!​

    ШАГ 0: Загрузка в установщик

    Думаю, тут объяснять ничего такого и не нужно, всё и так понятно. Втыкаем флешку с образом, в boot меню выбираем её и грузимся

    Запускаемся и пишем archinstall.. так не интересно, будем делать всё ручками как настоящие кул хацкеры!

    ШАГ 1: Подготовка


    Как только вы увидите строку, можно писать команды. Первым делом, конечно же, нужно подключить интернеты чтобы скачать все нужные пакеты.

    И тут уже такая развилка:​

    Если у вас интернет подключен по проводу, можете пропускать этот шаг

    Если по WiFi, пишем следующее:
    1. Запускаем программу для настройки сети
      Код:
      iwctl
    2. Смотрим список адаптеров:
      Код:
      station list
    3. Смотрим список сетей:
      Код:
      station адаптер get-networks
    4. Подключаемся:
      Код:
      station адаптер connect "название сети"

    Не обязательно, но стоит сделать:​

    Если вы хотите немного ускорить процесс скачивания пакетов (что поможет в будущем), то включите параллельную загрузку в здешнем менеджере пакетов - pacman

    Код:
    nano /etc/pacman.conf
    (nano - консольный текстовый редактор)

    Убираем # перед ParallelDownloads, по желанию задаём нужное число, сохраняем через Сtrl + S и выходим через Ctrl + X



    ШАГ 2: Разметка диска - самое сложное


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

    Код:
    lsblk -f
    Эта команда выведет список всех подключенных дисков. Предположим, нужный диск - /dev/sda

    Далее, нам необходимо его разметить, ниже описано как это делать для UEFI систем:

    ВНИМАНИЕ: ПРИ РАЗМЕТКЕ ВСЕ ДАННЫЕ ДИСКА МОГУТ БЫТЬ ПОТЕРЯНЫ!!! БУДЬТЕ ВНИМАТЕЛЬНЫ И НЕ УДАЛИТЕ НУЖНЫЕ РАЗДЕЛЫ

    Код:
    cfdisk /dev/sda
    /dev/sda замените на нужный диск!
    Инструкция по использованию cfdisk - тут. Хоть программа и не сложная, но ознакомиться лишним не будет

    ЛАЙФХАК: При разметке диска создавайте для директории /home отдельный раздел диска. При переустановке системы вам это может очень помочь в переносе данных

    Поэтому, относительно хорошая разметка будет выглядеть как:

    НазначениеТип раздела (файловая система)Точка монтированияРаздел диска
    ЗагрузчикEFI/boot/efi/dev/sda1
    ROOT - корень системыLinux filesystem//dev/sda2
    Домашний разделLinux filesystem/home/dev/sda3

    Где:​

    • Загрузчик EFI В ИДЕАЛЕ 1 ГБ
    • ROOT раздел - от 10-20 до 30-40 ГБ
    • Домашний раздел - всё оставшееся место

    Дальше нужно эти разделы форматировать:​

    1. EFI раздел:
      Код:
      mkfs.vfat /dev/sda1
    2. ROOT раздел:
      Код:
      mkfs.ext4 /dev/sda2
    3. Домашний раздел:
      Код:
      mkfs.ext4 /dev/sda3

    И примонтировать (подключить):​


    Подключим ROOT раздел в папку /mnt
    Код:
    mount /dev/sda2 /mnt

    После чего создадим там папку для EFI
    Код:
    mkdir -p /mnt/boot/efi

    И подключим туда EFI раздел
    Код:
    mount /dev/sda1 /mnt/boot/efi

    Создадим папку для раздела /home
    Код:
    mkdir -p /mnt/home

    И подключим туда домашний раздел
    Код:
    mount /dev/sda3 /mnt/home



    ШАГ 3: Пакеты, пакеты...

    Диск размечен, теперь нужно выкачать саму систему и базовые пакеты (приложения, компоненты, кому как удобнее) для неё

    Для начала определимся, что нам вообще нужно:​

    1. Базовые пакеты - НУЖНЫ ОБЯЗАТЕЛЬНО:
      • base base-devel linux linux-firmware linux-headers nano vim bash-completion grub efibootmgr
    2. Графика - экран входа (выберите ТОЛЬКО ОДИН):
      • sddm, gdm, lightdm, lxdm ...
    3. Графика - оболочка (в идеале ТОЛЬКО ОДНА, доставить или поменять всегда успеете):
      • plasma, gnome, xfce4, cinnamon, budgie, lxqt, lxde, hyprland ...
    4. Шрифты (я лично не помню чтобы ставил, но почему-то советуют):
      • ttf-ubuntu-font-family ttf-hackttf-dejavu ttf-opensans

    Если вы только знакомитесь с окружениями, экранами входа и так далее, то возможно вам стоит выбрать другой дистрибутивsddm и plasma.

    Как только определимся - пишем команду для установки всего этого набора. Например, команда может выглядеть так:
    Код:
    pacstrap /mnt base base-devel linux linux-firmware linux-headers nano vim bash-completion grub efibootmgr ttf-opensans sddm plasma

    Жмём ENTER, подтверждаем загрузку кнопкой Y на клавиатуре и ждём. После этого считайте что базовая система уже на вашем диске, осталось только чуть-чуть донастроить



    ШАГ 4: Донастройка системы "под капотом"


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

    Генерируем этот самый fstab:
    Код:
    genfstab -U /mnt >> /mnt/etc/fstab

    "Чрутимся" - временно меняем корневую директорию с загрузочного образа на /mnt - диск /dev/sda, примонтированный в папку /mnt с почти установленной системой
    Код:
    arch-chroot /mnt

    Теперь все наши операции будут происходить из-под свежеустановленной системы на диске!

    Запускаем системые службы, а именно NetworkManager (менеджер сети) и выбраный вами DM выше (экран входа, в нашем случае sddm)
    Код:
    systemctl enable NetworkManager
    Код:
    systemctl enable sddm



    ШАГ 5: Настройка юзера


    Создаём пользователя (например, с именем username)
    Код:
    useradd -m username

    Устанавливаем ему пароль (имя пользователя - "username", как и указали выше)
    Код:
    passwd username

    Устанавливаем пароль для ROOT пользователя (можно пропустить, но я лично бы не стал)
    Код:
    passwd

    Дальше даём этому пользователю доступ к ROOT правам (правам администратора):

    1. Добавляем пользователя с именем username в группу администраторов wheel
    Код:
    usermod -aG wheel username

    2. Включаем права администратора для пользователей в группе wheel
    Код:
    nano /etc/sudoers

    Теперь ищем в этом файле строки
    Код:
    ## Uncomment to allow members of group wheel to execute any command
    # %wheel ALL=(ALL:ALL) ALL

    И убираем # перед строкой %wheel ALL=(ALL:ALL) ALL. Как и выше, сохраняем файл через Ctrl + S и выходим через Ctrl + X



    ШАГ 6: Донастройка системы 2 и установка загрузчика


    И так, система уже стоит, но мы в неё загрузиться всё ещё не сможем. Почему? Нужно установить загрузчик

    Устанавливаем загрузчик на диск
    Код:
    grub-install /dev/sda

    Открываем конфиг загрузчика
    Код:
    nano /etc/default/grub

    Ищем строку GRUB_CMDLINE_LINUX_DEFAULT и убираем в ней слово quiet

    Применяем конфиг загрузчика
    Код:
    grub-mkconfig -o /boot/grub/grub.cfg

    Теперь нужно сделать предпоследнее, но тоже очень важное действие: выбрать язык

    Открываем файл с локализациями
    Код:
    nano /etc/locale.gen

    Убираем # перед строкой с нужным языком

    Например:
    Код:
    # ru_RU.UTF-8 UTF-8
    станет
    Код:
    ru_RU.UTF-8 UTF-8

    Открываем файл с применённой локализацией и вписываем туда нужный язык в строке LANG="язык":
    Код:
    nano /etc/locale.conf

    Например:
    Код:
    LANG="ru_RU.UTF-8"

    Применяем локализацию
    Код:
    locale-gen



    ШАГ 7: Наконец-то!


    Вот как-то так, система готова к началу использования

    Выходим обратно из "подменённой" корневой папки
    Код:
    exit

    Отмонтируем диск
    Код:
    umount -R /mnt

    Перезагружаемся
    Код:
    reboot



    ШАГ 7.1: Настройка времени


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

    Устанавливаем часовой пояс
    Код:
    sudo timedatectl set-timezone ПОЯС

    Список часовых поясов - файлы в папке /usr/share/zoneinfo. Например, Europe/Moscow, Europe/Kiev, Europe/Minsk и т.д. Замените ПОЯС в команде на соотвествующий часовой пояс

    Включаем синхронизацию времени по сети
    Код:
    sudo timedatectl set-ntp true



    ГОТОВО!​


    Надеюсь, что для кого-то этот гайд был действительно полезен и он если не установил, то хотя бы понял как всё это работает

    Автор

    MrDrag0nXYT

    Еще ресурсы от MrDrag0nXYT

    WorldStatusPlaceholder - аддон для PlaceholderAPI на красивое отображение времени суток и погоды
    Простой аддон для PlaceholderAPI для красивого отображения времени суток и погоды
    VANILLA 1.21.X - Ванильная сборка Java/Bedrock с ресурспаком
    VANILLA 1.21.X - Ванильная сборка Java/Bedrock с ресурспаком
    Крутая кроссплатформенная сборка для начинающего ванильного сервера
    Логи - что это такое и как их читать // Руководство для самых маленьких
    Руководство для самых маленьких о том, что такое логи
    🌠 nightLobby.light - идеальное минималистичное лобби для вашего проекта 1.16.5+ 🌠
    🌠 nightLobby.light - идеальное минималистичное лобби для вашего проекта 1.16.5+ 🌠
    облегчённая минималистичная сборка лобби для Вашего проекта где нет ничего лишнего
    NightJoiner
    Добавляет вашим игрокам возможность настроить для себя сообщение при входе или выходе!
    NightChatRestricter
    Запрети новичкам писать в чат и использовать определённые команды
    NightCodes
    Добавляет вашим игрокам возможность создавать реферальные коды и получать бонусы за приглашения
    ⚡ Красивый сайт для вашего проекта
    Свёрстанный макет сайта на чистых HTML, CSS и JS для вашего проекта
    NightDart
    Добавьте на свой сервер уникальный предмет - усыпляющий дротик
    PlatformJoinAnnouncer
    Плагин, добавляющий настраиваемые сообщения при входе с разных платформ (Bedrock/Java)
    SkyBlock Spawn
    Красивый маленький спавн в виде летающего острова
    SimpleReplacer
    Генератор маленьких заглавных букв в реальном времени
    ВерхНиз