hyperion/10-linux/90-stories/arch-installing.md
2025-12-28 19:00:03 +03:00

4.7 KiB
Raw Permalink Blame History

cfdisk...

512M, EFI остальное - Linux Filesystem

mkfs.fat -F 32 /dev/vda1
mkfs.ext4 /dev/vda2

mount /dev/vda2 /mnt
mkdir -p /mnt/boot
mount /dev/vda1 /mnt/boot

# проверяем монтирование
findmnt /mnt
findmnt /mnt/boot

# устанавливаем
pacstrap -K /mnt base linux linux-firmware sudo openssh

# если упало с ошибкой
mkdir -p /mnt/etc echo 'KEYMAP=us' > /mnt/etc/vconsole.conf
arch-chroot /mnt
mkinitcpio -P
exit

mount | grep '/mnt'

Установка базовой системы

Дальше делаем базовую установку в /mnt через pacstrap, потом генерируем fstab и переходим в установленную систему через arch-chroot — это прям “хребет” официального Installation guide.[1]

Команды:

pacstrap -K /mnt base linux linux-firmware sudo openssh
genfstab -U /mnt >> /mnt/etc/fstab
arch-chroot /mnt

Настройка в chroot (минимум)

Внутри arch-chroot сделай базовые вещи: timezone/clock, locale, hostname, пароль root и (желательно) обычного пользователя — это следует общему порядку из Installation guide.[1]

Команды-шаблон:

ln -sf /usr/share/zoneinfo/Europe/Moscow /etc/localtime
hwclock --systohc

# locale
sed -i 's/^#\(en_US.UTF-8\)/\1/' /etc/locale.gen
locale-gen
printf "LANG=en_US.UTF-8\n" > /etc/locale.conf

# hostname + hosts
echo "archvm" > /etc/hostname
cat > /etc/hosts <<'EOF'
127.0.0.1 localhost
::1       localhost
127.0.1.1 archvm.localdomain archvm
EOF

passwd
useradd -m -G wheel -s /bin/bash rori
passwd rori
EDITOR=vi visudo   # раскомментируй строку про %wheel ALL=(ALL:ALL) ALL

Загрузчик + сеть + SSH + ребут

Раз у тебя UEFI и ESP смонтирован в /boot, можно ставить systemd-boot через bootctl install, а затем добавить загрузочную entry в /boot/loader/entries/ — это ровно то, что описывает ArchWiki по systemd-boot. Чтобы после первого ребута продолжить работать по SSH, поставленный openssh нужно включить как сервис sshd.service на автозапуск.[3][4][5]

Команды (всё ещё внутри chroot):

bootctl install

ROOT_PARTUUID="$(blkid -s PARTUUID -o value /dev/vda2)"
cat > /boot/loader/entries/arch.conf <<EOF
title   Arch Linux
linux   /vmlinuz-linux
initrd  /initramfs-linux.img
options root=PARTUUID=${ROOT_PARTUUID} rw
EOF

# Чтобы сеть поднялась после перезагрузки (самый простой вариант)
pacman -S --noconfirm networkmanager
systemctl enable NetworkManager

# SSH после ребута
systemctl enable sshd

Выход и перезагрузка:

exit
umount -R /mnt
reboot

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21

docker autostart

sudo systemctl enable --now docker.service

base-devel

sudo pacman -S --needed base-devel