# Установка Arch Linux (на виртуалбокс пока что)
>После того, как я обсирался в процессе установки и настройки и переустанавливал арч **3 раза** из-за этого, я таки решил запилить нормальный гайд для себя и учесть возможные ошибки
## Установка
После загрузки установочного окружения неофит попадает в виртуальный терминал с zsh. Первым делом нужно проверить режим загрузки.
```bash=
ls /sys/firmware/efi/efivars
```
Если команда выполнилась без ошибки, то это значит, что система загрузилась в UEFI режиме
Далее проверяем подключение к интернету:
```bash=
ip a
ping archlinux.org
```
Настраиваем *системные часы* (о да, самое важное)
```bash=
timedatectl set-ntp true
```
И приступаем к разделке диска. Первым делом выведем информацию о существующих разделах
```bash=
fdisk -l
```
Эта команда выведет информацию и сразу выйдет из fdisk. Теперь можно создать разделы в **cfdisk** (у него есть крутая гуя), запускаем в режиме GPT (тк у нас используется EFI)
```bash=
cfdisk
```
Создаем **три** раздела:
1) Раздел для EFI (минимум 300мб)
2) Раздел подкачки (минимум 500мб)
3) Linux Filesystem (остальное место)
> Я не нашел нормального объяснения в чем разница между Linux Filesystem и Linux root, но при загрузке системы fstab спотыкается, если установлена вторая, поэтому лучше ставить Filesystem
Записываем изменения и присутпаем к форматированию разделов:
- EFI раздел должен быть отформатирован как Fat-32:
```bash=
mkfs.fat -F32 /dev/*раздел EFI*
```
- Linux Filesystem может быть отформатирован чем только можно, я выбираю Btrfs
```bash=
mkfs.btrfs /dev/*раздел Linux Filesystem*
```
- Создать и включить раздел подкачки
```bash=
mkswap /dev/*Swap partition*
swapon /dev/*Swap partition*
```
Далее, монтируем свежесозданный рут к нашей нынешней системе в качестве /mnt:
```bash=
mount /dev/*root partition* /mnt
```
Теперь устанавливаем с помощью pacstrap базовую систему и еще neovim и sudo чтобы они сразу были потом **в /mnt**
```bash=
pacstrap /mnt base linux linux-firmware sudo neovim
```
Теперь генериуем fstab файл (файл, нужный для того чтобы ядро при загрузке системы монтировала нужные разделы и распознавала ФС)
```bash=
genfstab -U /mnt >> /mnt/etc/fstab
```
Теперь меняем рут на наш новый созданный рут в /mnt
```bash=
arch-chroot /mnt
```
Теперь мы находимся в bash консоли установленной системы. Первым делом *установим ~~часы~~ часовой пояс* (почему это так смешно ахахахаха)
```bash=
ln -sf /usr/share/zoneinfo/Europe/Moscow /etc/localtime
```
И hardware clock:
```bash=
hwclock --systohc
```
Настраиваем локали. Сначала окрываем файл /etc/locale.gen и раскомментируем нужные нам локали. **Обязательная: en_US.UTF-8 UTF-8**
Далее генерируем файл локалей
```bash=
locale-gen
```
Теперь создаем файл locale.conf и записываем в переменную LANG выбранные нами локали.
```bash=
echo LANG=en_US.UTF-8 > /etc/locale.conf
```
Установим лейаут для клавиатуры: создадим файл /etc/vconsole.conf и добавим туда ту же строку "LANG=en_US.UTF-8"
Настроим хостнеймы для сети:
```bash=
echo *your hostname* > /etc/hostname
```
Открываем файл /etc/hosts и туда добавляем строки:
```
127.0.0.1 localhost
::1 localhost
127.0.1.1 myhostname.localdomain myhostname
```
Установим пароль для рута:
```bash=
passwd
```
Теперь установим загрузчик GRUB
```bash=
pacman -S grub efibootmgr
mkdir /boot/efi
mount /dev/*EFI partition* /boot/efi
grub-install
grub-mkconfig -o /boot/grub/grub.cfg
```
Установим самый важный компонент - **Steam Locomotive**, чтобы при ошибке в написании команды ls консоль переезжал поезд
```bash=
pacman -S sl
```
И, наконец, установим NetworkManager, заэнейблим его и выйдем из системы
```bash=
pacman -S networkmanager
systemctl enable NetworkManager
exit
```
Отмонтируем /mnt и ребутнемся
```bash=
umount -R /mnt
reboot
```
## Поздравляю, ты поставил голый арч. Впереди у тебя еще минимум месяц веселья перед тем как ты сможешь его нормально использовать =)

> Йе уагарет над тобой, так как знает, что тебя ждет