4.7 KiB
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