мета-данные страницы
  •  

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Следующая версия
Предыдущая версия
guides:arch_install [2025/12/04 13:18] – создано radi0devguides:arch_install [2025/12/04 16:45] (текущий) radi0dev
Строка 1: Строка 1:
 ====== установка arch linux ====== ====== установка arch linux ======
  
 +===== Создание загрузочного диска =====
  
 +качаем iso образ с https://archlinux.org/download/
 +
 +подключаем диск, который сделаем загрузочным (проверяем в lsblk), диск не должен быть примонтирован
 +
 +записываем образ на диск (не на раздел, а на весь диск):
 +<code bash>
 +sudo dd if=archlinux.iso of=/dev/sdX bs=4M status=progress oflag=sync 
 +</code>
 +
 +загружаемся с новоиспеченного загрузочного диска
 +
 +===== Подключение к Интернету =====
 +
 +втыкаем патчкорд и проверем доступ в Интернет:
 +<code bash>
 +ping -c 3 archlinux.org
 +</code>
 +
 +если нужно подключиться по wifi:
 +<code bash>
 +# посмотреть имя Wi-Fi адаптера (например, wlan0)
 +[iwd]# device list
 +# сканирование сети
 +[iwd]# station wlan0 scan
 +# показ доступных сетей
 +[iwd]# station wlan0 get-networks
 +# подключение к открытой сети 
 +[iwd]# station wlan0 connect ИМЯ_СЕТИ
 +# подключение к защищенной сети
 +[iwd]# station wlan0 connect ИМЯ_СЕТИ passphrase=ПАРОЛЬ
 +# подключение к скрытой сети
 +[iwd]# station wlan0 connect ssid=ИМЯ_СЕТИ passphrase=ПАРОЛЬ
 +</code>
 +если ИМЯ_СЕТИ / ПАРОЛЬ содержит спецсимволы - используй кавычки
 +
 +===== Форматирование =====
 +
 +==== Разметка диска  ====
 +
 +<code bash>
 +# ищем нужный диск
 +fdisk -l
 +# начинаем интерактивную разметку
 +fdisk /dev/sdX
 +# любуемся резальтатом
 +lsblk
 +</code>
 +
 +Схемы разметки могут быть разными под разные потребности. Вот основные разделы:
 +  * (Обязательно) Системный раздел EFI размером 512 МБ, отформатированный в формате FAT32. Это обеспечивает пространство для хранения загрузчиков и других файлов, необходимых для загрузки.
 +  * (Опционально) Раздел подкачки размером RAM*2. Пространство подкачки используется для расширения виртуальной памяти за пределы установленной физической памяти (ОЗУ) или для поддержки записи на диск. Лучше использовать SWAP-файл в будущей системе, так как его размер можно будет поменять.
 +  * (Обязательно) Раздел Linux с оставшимся свободным местом на диске в формате удобной тебе файловой системы (чаще всего EXT4). Это корневой раздел (/), на котором будет храниться наша операционная система, файлы и другая информация.
 +Опционально можно создать любые другие разделы для хранения в них чего угодно, например ''/home'' в отдельном разделе.
 +
 +==== Создание ФС ====
 +
 +<code bash>
 +# для типа раздела EFI создай файловую систему FAT32
 +mkfs.fat -F32 /dev/sdXY
 +
 +# инициализирует раздел как swap
 +mkswap /dev/sdaXY
 +# активирует swap-раздел 
 +swapon /dev/sdaXY
 +
 +# для корневого раздела создай файловую систему (для примера - EXT4)
 +mkfs.ext4 /dev/sdXY
 +# таким же образом и для /home или чего-то еще такого
 +</code>
 +
 +===== Установка Arch =====
 +
 +++++удобные параметры pacman|
 +/etc/pacman.conf
 +<code>
 +#UseSyslog              # отправляет логи pacman в системный журнал (отключено)
 +Color                   # включает цветной вывод в терминале
 +ILoveCandy              # заменяет стандартный прогресс-бар на анимацию из точек (пасхалка)
 +#NoProgressBar          # отключает отображение прогресс-бара при загрузке пакетов (отключено — прогресс-бар отображается)
 +CheckSpace              # проверяет наличие достаточного места на диске перед установкой пакетов
 +#VerbosePkgLists        # выводит подробный список пакетов при операциях (отключено — используется краткий вывод)
 +ParallelDownloads = 10  # позволяет загружать до 10 пакетов одновременно для ускорения установки
 +</code>
 +++++
 +
 +<code bash>
 +# принудительно обновляет списки пакетов (+ игнорировать локальный кэш)
 +pacman -Syy
 +
 +# монтируем корневой раздел
 +mount /dev/sdXY /mnt
 +# если создавали доп.разделы - их тоже монтируем
 +mkdir /mnt/home/ && mount /dev/sdXY /mnt/home
 +
 +# юзаем pacstrap для установки необходимых пакетов 
 +pacstrap -K /mnt base linux linux-firmware
 +# пакет base включает только самое необходимое: ядро, pacman, базовые утилиты
 +# здесь же ставим пакеты драйверов, текстовых редакторов, базового софта, всего чего хотим в новой системе
 +
 +# генерирует таблицу монтирования по UUID и добавляет в fstab
 +genfstab -U /mnt >> /mnt/etc/fstab
 +</code>
 +
 +===== Пост-установочные настройки =====
 +
 +<code bash>
 +# меняет корень на /mnt и входит в новую систему
 +arch-chroot /mnt
 +
 +# устанавливает часовой пояс через симлинк
 +ln -sf /usr/share/zoneinfo/America/New_York /etc/localtime 
 +# записывает системное время в аппаратные часы
 +hwclock --systohc 
 +
 +# раскоментируем нужные строки
 +vim /etc/locale.gen
 +# en_US.UTF-8 UTF-8
 +# ru_RU.UTF-8 UTF-8
 +# генерирует локали на основе /etc/locale.gen
 +locale-gen
 +
 +# задаёт системную локаль
 +echo LANG=ru_RU.UTF-8 > /etc/locale.conf && export LANG=ru_RU.UTF-8
 +
 +# задаёт hostname
 +echo naboo > /etc/hostname
 +# открывает файл сопоставления имён и IP-адресов
 +vim /etc/hosts
 +# 127.0.0.1  localhost
 +# ::1        localhost
 +# 127.0.1.1  naboo
 +
 +# задаёт пароль root в свежеустановленной системе
 +passwd
 +</code>
 +
 +==== Непривелигированный пользователь ====
 +
 +<code bash>
 +# создаёт пользователя с домашней папкой (-m)
 +useradd -m user
 +# задаёт пароль для нового пользователя
 +passwd user
 +</code>
 +
 +===== Установка загрузчика =====
 +
 +==== GRUB2 ====
 +
 +<code bash>
 +# устанавливает GRUB и сопутствующие утилиты для UEFI
 +pacman -S grub efibootmgr os-prober mtools
 +# создаёт и монтирует точку монтирования EFI
 +mkdir /boot/efi && mount /dev/sdXY /boot/efi
 +# устанавливает GRUB в EFI-раздел
 +grub-install --target=x86_64-efi --bootloader-id=grub_uefi
 +# генерирует конфигурационный файл GRUB
 +grub-mkconfig -o /boot/grub/grub.cfg 
 +</code>
 +
 +===== Завершение установки =====
 +
 +<code bash>
 +# выходим из chroot-окружения
 +exit
 +# рекурсивно размонтируем все подмонтированные разделы в /mnt
 +umount -R /mnt
 +# перезагружаем систему
 +reboot 
 +</code>