Много добра операционна система, обаче изисква повече знание спрямо популярните Debian, Ubuntu, CentOS и т.н. Тук ще се постарая да покажа как се инсталира базисния модел, без графична среда и приложения. Освен това ще се постарая да покажа логиката на инсталиране (все пак има множество вариации на самата инсталация). Започваме със смъкване на самия образ. Избираме от някой български сайт, като https://mirror.telepoint.bg/archlinux/iso/, или от оригиналния https://archlinux.org/download/. В оригиналния има линкове към множество сайтове на различни държави и всички могат да се ползват. Но да се върнем на нашия. Гледате коя е последната версия. В моя случай на текущия момент е 2025.05.01. Влизаме там и теглим https://mirror.telepoint.bg/archlinux/iso/2025.05.01/archlinux-2025.05.01-x86_64.iso. Имаме ISO файла и го правим на инсталационна флашка, диск или там каквото ползвате. В случая ще го ползвам във виртуална машина. Виртуалната машина е със следните параметри: CPU: 4 ядра RAM: 4096MB HDD: 111GB BIOS: UEFI Стартираме виртуалната машина.
Първото меню е за стартиране на инсталацията.
От горния екран виждаме, че трябва да имаме Интернет на системата за да може да продължим с инсталацията. За целта можем да ползваме iwctl, ако ползваме WiFi за връзка или mmcli, ако ползваме модем. В нашия случай ползваме Ethernet с DHCP и не трябва да настройваме нищо, но проверка ще направим чрез ping.
ping dir.bg Pinging dir.bg [172.67.71.201] with 32 bytes of data: 64 bytes from 172.67.71.201: icmp_seq=1 ttl=06 time=13.5 ms 64 bytes from 172.67.71.201: icmp_seq=2 ttl=06 time=14.2 ms 64 bytes from 172.67.71.201: icmp_seq=3 ttl=06 time=14.5 ms 64 bytes from 172.67.71.201: icmp_seq=4 ttl=06 time=13.7 ms
Интернет имаме, може да продължим с инсталацията. Между другото да сменим шрифта, че е много ситен.
cd /usr/share/kbd/consolefonts ls setfont ter-128n setfont ter-v32n setfont ter-v22n find / |grep ter-128n
Ще покажа начин как да инсталирате системата ползвайки терминален прозорец. Голяма част от командите са дълги за да се избегне грешно въвеждане можете да ги копирате през терминален прозорец. За целта трябва да достъпите машината по мрежата през SSH. За да се случи това разрешаваме на системата да влизаме като ROOT.
nano /etc/ssh/sshd_config #LoginGraceTime 2m #PermitRootLogin prohibit-password PermitRootLogin yes #StrictModes yes #MaxAuthTries 6 #MaxSessions 10 ### Рестартираме услугата SSH с новите настройки systemctl restart sshd.service ### Даваме парола на главния потребител passwd New password: NewPa$$ Retype new password: NewPa$$ passwd: password updated successfully ### Проверяваме IP адреса на мрежовия интерфейс. ip a 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host noprefixroute valid_lft forever preferred_lft forever 2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000 link/ether 08:00:27:f7:16:ce brd ff:ff:ff:ff:ff:ff altname enx080027f716ce inet 192.168.1.31/24 metric 100 brd 192.168.1.255 scope global dynamic enp0s3 valid_lft 84948sec preferred_lft 84948sec inet6 fe80::a00:27ff:fef7:16ce/64 scope link proto kernel_ll valid_lft forever preferred_lft forever
Вече можем да се подключим към системата през SSH. За начало да синхронизираме времето.
timedatectl set-ntp true timedatectl status Local time: Wed 2025-05-14 16:33:32 UTC Universal time: Wed 2025-05-14 16:33:32 UTC RTC time: Wed 2025-05-14 16:33:31 Time zone: UTC (UTC, +0000) System clock synchronized: yes NTP service: active RTC in local TZ: no
Да проверим какви дискове имаме и какви дялове.
lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS loop0 7:0 0 846.7M 1 loop /run/archiso/airootfs sda 8:0 0 111G 0 disk sr0 11:0 1 1.2G 0 rom /run/archiso/bootmnt
Имаме 1 диск sda с размер 111GB. Да го занулим. Да премахнем всичко от него, примерно ако е имал някакви дялове и тип на диска.
wipefs --all /dev/sda
Да го проверим сега.
fdisk -l /dev/sda Disk /dev/sda: 111 GiB, 119185342464 bytes, 232783872 sectors Disk model: VMware Virtual I Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes
Освен размера на диска, нищо друго не се вижда. Значи е чист. Да го дефинираме. Диска трябва да бъде във формат GPT. Ще му създадем следните дялове: EFI: 512MB, ако ползвате няколко ядра то размера трябва да е минимум 512МВ SWAP: 2GB, 1/2 от оперативната памет която ползвате /: 20-30GB, ако имате място на диска най-добре сложете 60GB. /HOME: всичко което остане го оставете за домашни папки Внимание!!! SWAP дяла не е задължителен. Може SWAP-a да го създадете във вид на файл.
fdisk /dev/sda Welcome to fdisk (util-linux 2.41). Changes will remain in memory only, until you decide to write them. Be careful before using the write command. Device does not contain a recognized partition table. Created a new DOS (MBR) disklabel with disk identifier 0x08aa1d9e. Command (m for help): g Created a new GPT disklabel (GUID: 2984E951-43A9-47AE-8ECA-C5828FB9865C). Command (m for help): n Partition number (1-128, default 1): 1 First sector (2048-232783838, default 2048): Enter Last sector, +/-sectors or +/-size{K,M,G,T,P} (2048-232783838, default 232781823): +512M Created a new partition 1 of type 'Linux filesystem' and of size 512 MiB. Command (m for help): n Partition number (2-128, default 2): Enter First sector (1050624-232783838, default 1050624): Enter Last sector, +/-sectors or +/-size{K,M,G,T,P} (1050624-232783838, default 232781823): +2G Created a new partition 2 of type 'Linux filesystem' and of size 2 GiB. Command (m for help): n Partition number (3-128, default 3): Enter First sector (5244928-232783838, default 5244928): Enter Last sector, +/-sectors or +/-size{K,M,G,T,P} (5244928-232783838, default 232781823): +55G Created a new partition 3 of type 'Linux filesystem' and of size 55 GiB. Command (m for help): n Partition number (4-128, default 4): Enter First sector (120588288-232783838, default 120588288): Enter Last sector, +/-sectors or +/-size{K,M,G,T,P} (120588288-232783838, default 232781823): Enter Created a new partition 4 of type 'Linux filesystem' and of size 53.5 GiB. Command (m for help): t Partition number (1-4, default 4): 1 Partition type or alias (type L to list all): 1 Changed type of partition 'Linux filesystem' to 'EFI System'. Command (m for help): t Partition number (1-4, default 4): 2 Partition type or alias (type L to list all): 19 Changed type of partition 'Linux filesystem' to 'Linux swap'. Command (m for help): p Disk /dev/sda: 111 GiB, 119185342464 bytes, 232783872 sectors Disk model: VMware Virtual I Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disklabel type: gpt Disk identifier: 700AB395-6232-464A-BE8C-C63FA1FDB0BE Device Start End Sectors Size Type /dev/sda1 2048 1050623 1048576 512M EFI System /dev/sda2 1050624 5244927 4194304 2G Linux swap /dev/sda3 5244928 120588287 115343360 55G Linux filesystem /dev/sda4 120588288 232781823 112193536 53.5G Linux filesystem Command (m for help): w The partition table has been altered. Calling ioctl() to re-read partition table. Syncing disks.
Да проверим какво създадохме:
lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS loop0 7:0 0 846.7M 1 loop /run/archiso/airootfs sda 8:0 0 111G 0 disk ├─sda1 8:1 0 512M 0 part ├─sda2 8:2 0 2G 0 part ├─sda3 8:3 0 55G 0 part └─sda4 8:4 0 53.5G 0 part sr0 11:0 1 1.2G 0 rom /run/archiso/bootmnt
До тук имаме: /dev/sda1 - дял за EFI /dev/sda2 - дял за SWAP /dev/sda3 - дял за / /dev/sda4 - дял за /home Дяловете не са форматирани.
mkfs.fat -F32 /dev/sda1 mkfs.fat 4.2 (2021-01-31)
Форматирахме EFI дяла във формат FAT32. Да дефинираме и SWAP-a.
mkswap /dev/sda2 Setting up swapspace version 1, size = 2 GiB (2147479552 bytes) no label, UUID=5743448f-7257-4787-9547-9ba7a60d5743 swapon /dev/sda2
Да форматираме дяла за корена на системата, както и дяла за домашните папки.
mkfs.ext4 /dev/sda3 mke2fs 1.47.2 (1-Jan-2025) Creating filesystem with 14417920 4k blocks and 3604480 inodes Filesystem UUID: dd9d5607-a1a1-48c4-9474-a3616993a13f Superblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 4096000, 7962624, 11239424 Allocating group tables: done Writing inode tables: done Creating journal (65536 blocks): done Writing superblocks and filesystem accounting information: done mkfs.ext4 /dev/sda4 mke2fs 1.47.2 (1-Jan-2025) Creating filesystem with 14024192 4k blocks and 3506176 inodes Filesystem UUID: b7f1481f-130a-4ef4-b280-5afe9d99f2c7 Superblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 4096000, 7962624, 11239424 Allocating group tables: done Writing inode tables: done Creating journal (65536 blocks): done Writing superblocks and filesystem accounting information: done
Да проверим какво направихме до тук:
fdisk -l /dev/sda Disk /dev/sda: 111 GiB, 119185342464 bytes, 232783872 sectors Disk model: VMware Virtual I Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disklabel type: gpt Disk identifier: 700AB395-6232-464A-BE8C-C63FA1FDB0BE Device Start End Sectors Size Type /dev/sda1 2048 1050623 1048576 512M EFI System /dev/sda2 1050624 5244927 4194304 2G Linux swap /dev/sda3 5244928 120588287 115343360 55G Linux filesystem /dev/sda4 120588288 232781823 112193536 53.5G Linux filesystem
Готово диска е разделен на дялове. Също така последните са форматирани в съответната файлова система.
За да можем да инсталираме Arch Linux върху диска, първо ще монтираме създадените дялове. Отново да напомня: /dev/sda1 - това е EFI дяла /dev/sda2 - това е SWAP дяла /dev/sda3 - това е основния дял на системата която ще инсталираме /dev/sda4 - това е дяла за потребителите. EFI дяла съответно се намира в основния дял в папка /boot. От горе казаното ще монтираме първо /dev/sda3.
mount /dev/sda3 /mnt/
Така можем да инсталираме системата в /mnt или по-точно казано в диска който разделихме, в основния дял. Както знаем EFI дяла се намира в основния дял в папка /boot. Да монтираме и EFI дяла, като първо създаваме папката /boot. Проверяваме какво сме монтирали и създаваме папка /boot
mount mount | grep sda /dev/sda3 on /mnt type ext4 (rw,relatime)
Да създадем папката /boot/efi
mkdir -p /mnt/boot
Монтираме EFI дяла в /mnt/boot.
mount /dev/sda1 /mnt/boot mount |grep sda /dev/sda3 on /mnt type ext4 (rw,relatime) /dev/sda1 on /mnt/boot/efi type vfat (rw,relatime,fmask=0022,dmask=0022,codepage=437,iocharset=ascii,shortname=mixed,utf8,errors=remount-ro)
Да създадем и папката /mnt/home.
mkdir -p /mnt/home
Да монтираме HOME дяла (/dev/sda4).
mount /dev/sda4 /mnt/home/ mount |grep sda /dev/sda3 on /mnt type ext4 (rw,relatime) /dev/sda1 on /mnt/boot/efi type vfat (rw,relatime,fmask=0022,dmask=0022,codepage=437,iocharset=ascii,shortname=mixed,utf8,errors=remount-ro) /dev/sda4 on /mnt/home type ext4 (rw,relatime)
Да видим какво получихме.
lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS loop0 7:0 0 846.7M 1 loop /run/archiso/airootfs sda 8:0 0 111G 0 disk ├─sda1 8:1 0 512M 0 part /mnt/boot ├─sda2 8:2 0 2G 0 part [SWAP] ├─sda3 8:3 0 55G 0 part /mnt └─sda4 8:4 0 53.5G 0 part /mnt/home sr0 11:0 1 1.2G 0 rom /run/archiso/bootmnt
Да проверим за налични репозитори от които ще инсталираме.
nano /etc/pacman.d/mirrorlist ################################################################################ ################# Arch Linux mirrorlist generated by Reflector ################# ################################################################################ # With: reflector @/etc/xdg/reflector/reflector.conf # When: 2025-05-14 16:02:01 UTC # From: https://archlinux.org/mirrors/status/json/ # Retrieved: 2025-05-14 16:01:11 UTC # Last Check: 2025-05-14 15:55:53 UTC Server = https://cdnmirror.com/archlinux/$repo/os/$arch Server = https://mirror.osbeck.com/archlinux/$repo/os/$arch Server = https://mirror.sunred.org/archlinux/$repo/os/$arch Server = https://berlin.mirror.pkgbuild.com/$repo/os/$arch Server = https://mirror.ubrco.de/archlinux/$repo/os/$arch Server = https://de.arch.niranjan.co/$repo/os/$arch Server = https://at.arch.niranjan.co/$repo/os/$arch Server = https://london.mirror.pkgbuild.com/$repo/os/$arch Server = https://mirror.raiolanetworks.com/archlinux/$repo/os/$arch Server = https://al.arch.niranjan.co/$repo/os/$arch ......................... ......................... .........................
Имаме налични репозитори от които можем да инсталираме системата.
Следва инсталиране на базови компоненти.
pacstrap /mnt base base-devel linux linux-firmware nano bash-completion
base - базови компоненти на системата base-devel - базови компоненти и помощни програми на системата за създаване на други програми, ппримерно make и т.н. linux - ядро на linux linux-firmware - файлов фърмуер на Linux, драйвери на ядрото за мрежови устройства, видеокарти и т.н. Примерно тук е и btrfs. nano - терминален текстов редактор bash-completion - допълнение към BASH за автоматично допълване на командите Инсталацията протича определено време. Изчакваме да се получи следния кран:
==> Initcpio image generation successful (13/15) Reloading system bus configuration... Skipped: Running in chroot. (14/15) Checking for old perl modules... (15/15) Updating the info directory file... pacstrap /mnt base base-devel linux linux-firmware nano bash-completion 69.06s user 46.03s system 68% cpu 2:47.55 total
Пакетите са инсталирани.
Точките на монтиране се дефинират във файла fstab.
genfstab /mnt # UUID=4b41a072-665e-4218-b485-dd1bff8f60b7 /dev/sda3 / ext4 rw,relatime 0 1 # UUID=FB19-F931 /dev/sda1 /boot/efi vfat rw,relatime,fmask=0022,dmask=0022,codepage=437,iocharset=ascii,shortname=mixed,utf8,errors=remount-ro 0 2 # UUID=0953a32d-0c40-4ed8-84e4-52d0942efc23 /dev/sda4 /home ext4 rw,relatime 0 2 genfstab -U /mnt # /dev/sda3 UUID=dd9d5607-a1a1-48c4-9474-a3616993a13f / ext4 rw,relatime 0 1 # /dev/sda1 UUID=0E74-8D64 /boot vfat rw,relatime,fmask=0022,dmask=0022,codepage=437,iocharset=ascii,shortname=mixed,utf8,errors=remount-ro 0 2 # /dev/sda4 UUID=b7f1481f-130a-4ef4-b280-5afe9d99f2c7 /home ext4 rw,relatime 0 2 # /dev/sda2 UUID=5743448f-7257-4787-9547-9ba7a60d5743 none swap defaults 0 0 genfstab -U /mnt >> /mnt/etc/fstab cat /mnt/etc/fstab # Static information about the filesystems. # See fstab(5) for details. # <file system> <dir> <type> <options> <dump> <pass> # /dev/sda3 UUID=dd9d5607-a1a1-48c4-9474-a3616993a13f / ext4 rw,relatime 0 1 # /dev/sda1 UUID=0E74-8D64 /boot vfat rw,relatime,fmask=0022,dmask=0022,codepage=437,iocharset=ascii,shortname=mixed,utf8,errors=remount-ro 0 2 # /dev/sda4 UUID=b7f1481f-130a-4ef4-b280-5afe9d99f2c7 /home ext4 rw,relatime 0 2 # /dev/sda2 UUID=5743448f-7257-4787-9547-9ba7a60d5743 none swap defaults 0 0
Точките за монтиране са генерирани и записани във файла fstab.
Прехвърляме се от текущата система на новоинсталираната. Това се прави с цел да конфигурираме новата система преди да се рестартираме. Ако сега се рестартираме то новата система няма да знае как да зареди, няма да знае каква мрежа ще има и т.н.
arch-chroot /mnt [root@archiso /]#
До сега корена на системата беше /. Вече корена на системата ще е в /mnt. Съотвено /boot, ще е във /mnt/boot и т.н. Да проверим.
lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS loop0 7:0 0 846.7M 1 loop sda 8:0 0 111G 0 disk ├─sda1 8:1 0 512M 0 part /boot ├─sda2 8:2 0 2G 0 part [SWAP] ├─sda3 8:3 0 55G 0 part / └─sda4 8:4 0 53.5G 0 part /home sr0 11:0 1 1.2G 0 rom
Да обновим репозиторите и системата.
pacman -Syy pacman -Syu
Първо ще покажа как да се направи от командния ред, после ще покажа как се прави през текстовия редактор. Дефиниране часовия пояс и синхронизиране на локалния часовник.
ln -sf /usr/share/zoneinfo/Europe/Sofia /etc/localtime hwclock --systohc
Да проверим:
date Sat May 31 16:53:42 UTC 2025
Дефиниране езика за ползване в системата.
echo "bg_BG.UTF-8 UTF-8" >> /etc/locale.gen echo "en_US.UTF-8 UTF-8" >> /etc/locale.gen cat /etc/locale.gen ................................. #zh_TW BIG5 #zu_ZA.UTF-8 UTF-8 #zu_ZA ISO-8859-1 bg_BG.UTF-8 UTF-8 en_US.UTF-8 UTF-8
Дефинирахме езика който ще ползва системата. Да генерираме локалните настройки които указахме по-горе.
locale-gen Generating locales... bg_BG.UTF-8... done en_US.UTF-8... done Generation complete.
Да създадем конфигурационен файл указващ езика който ще показва системата ни.
echo LANG=en_US.UTF-8 > /etc/locale.conf export LANG=en_US.UTF-8
Ползваме език за показване на системата Английски, Българския понякога прави проблеми. Сега да покажем горните команди чрез текстов редактор. Започваме с регионалните настройки. Указваме регион и език на системата.
nano /etc/locale.gen #bg_BG.UTF-8 UTF-8 bg_BG.UTF-8 UTF-8 #en_US.UTF-8 UTF-8 en_US.UTF-8 UTF-8 ### Генерираме локалните настройки locale-gen Generating locales... bg_BG.UTF-8... done en_US.UTF-8... done Generation complete. ### Указваме системата на кой език да работи. Аз ползвам английски. nano /etc/locale.conf LANG=en_US.UTF-8 export LANG=en_US.UTF-8
Отново първо ще настроим мрежата през конзола, а след това ще покажа и през текстов редактор. Дефинираме хоста.
echo My-PC >> /etc/hostname
Поправяме файла /etc/hosts.
echo "127.0.1.1 My-PC.localdomain My-PC" >> /etc/hosts cat /etc/hosts # Static table lookup for hostnames. # See hosts(5) for details. 127.0.0.1 localhost ::1 localhost 127.0.1.1 My-PC.localdomain My-PC
Да видим как става чрез текстов редактор. Даваме име на хоста и го обвързваме с IP.
nano /etc/hostname My-PC nano /etc/hosts # Static table lookup for hostnames. # See hosts(5) for details. 127.0.0.1 localhost ::1 localhost 127.0.1.1 My-PC.localhostdomain My-PC
Не сме приключили с мрежовите настройки. Примерно ако рестартираме системата няма да имаме мрежа. Мрежовия интерфейс няма да получи IP, шлюз по подразбиране DNS и т.н. На по-късен етап ще оправим проблема.
Започваме със създаване на парола за главния потребител root.
passwd root New password: Pa$$ Retype new password: Pa$$ passwd: password updated successfully
Следва създаване на втори потребител, различен от root. Не е добра практика да се работи с главния потребител.
useradd -m -g users -G wheel -s /bin/bash cccp
Създадохме потребител cccp, който е член на групата users със шел bash. Също така го присъединихме към групата wheel. Последната група е специална, използвайки sudo може да изпълнява команди с права на главния потребител. Да дадем парола на новия потребител.
passwd cccp New password: Pa$$ Retype new password: Pa$$ passwd: password updated successfully
Да проверим новия потребител.
id cccp uid=1000(cccp) gid=984(users) groups=984(users),998(wheel)
Потребителя е член на групите users и wheel Ако по някаква причина се налага да добавите потребителя към нова група, то командата е:
usermod -aG audio,games,video,storage,power cccp id cccp uid=1000(cccp) gid=984(users) groups=984(users),50(games),98(power),998(wheel),996(audio),987(storage),985(video)
Остана новия потребител да има sudo права. Добавяме права sudo за групата wheel.
echo "%wheel ALL=(ALL:ALL) ALL" >> /etc/sudoers cat /etc/sudoers ........................ ## Read drop-in files from /etc/sudoers.d @includedir /etc/sudoers.d %wheel ALL=(ALL:ALL) ALL ### Или чрез текстов редактор EDITOR=nano visudo ## User privilege specification ## root ALL=(ALL:ALL) ALL ## Uncomment to allow members of group wheel to execute any command # %wheel ALL=(ALL:ALL) ALL %wheel ALL=(ALL:ALL) ALL
За информация !!! Да напомним. Дяла за EFI беше /dev/sda1. Той бе монтиран в /boot/efi. Напомням и командите с които направихме тази операция.
mkdir -p /mnt/boot mount /dev/sda1 /mnt/boot
След това влязохме чрез arch-chroot /mnt и така сега нямаме /mnt/boot/EFI, а имаме /boot/EFI. Именно тук ще инсталираме и GRUB. Следва самата инсталация. За да може да се инсталира и конфигурира GRUB върху новата система, първо трябва да се инсталират няколко пакета.
pacman -S grub efibootmgr
grub - буут мениджър (софтуерът, който се изпълнява преди операционната система и който ви позволява да избирате измежду няколко операционни системи на вашия компютър) efibootmgr - помощна програма за управление на UEFI. Това не е зареждащ модул, а помощна програма Сега да инсталираме GRUB в новосъздадената система.
grub-install --target=x86_64-efi --bootloader-id=GRUB --efi-directory=/boot Installing for x86_64-efi platform. Installation finished. No error reported.
Създаваме конфигурационния файл на GRUB.
grub-mkconfig -o /boot/grub/grub.cfg Generating grub configuration file ... Found linux image: /boot/vmlinuz-linux Found initrd image: /boot/initramfs-linux.img Found fallback initrd image(s) in /boot: initramfs-linux-fallback.img Warning: os-prober will not be executed to detect other bootable partitions. Systems on them will not be added to the GRUB boot configuration. Check GRUB_DISABLE_OS_PROBER documentation entry. Adding boot menu entry for UEFI Firmware Settings ... done mkinitcpio -p linux
Ако имате някакъв хардуер който няма драйвери в ядрото то те трябва да се заредят в INITRAMFS. Следващите команди са ако зареждате допълнителни драйвери.
nano /etc/mkinitcpio.conf
Тук примерно в секцията MODULES можете да заредите някакви допълнителни неща. Няма да показвам подробно как се прави, за сега само за информация. След това тези допълнителни драйвери или модули трябва да се компилират за ядрото.
mkinitcpio -p linux
mkinitcpio - това е модулна помощна програма за създаване на образи на initramfs Чрез INITRAMFS системата зарежда драйвери които не са част от ядрото. След това наново трябва да се конфигурира GRUB за да могат да се заредят новите модули в ядрото.
grub-mkconfig -o /boot/grub/grub.cfg
Също така можете да конфигурирате и самия GRUB.
nano /etc/default/grub # GRUB boot loader configuration GRUB_DEFAULT=0 GRUB_TIMEOUT=5 GRUB_DISTRIBUTOR="Arch" # GRUB_CMDLINE_LINUX_DEFAULT="loglevel=3 quiet" GRUB_CMDLINE_LINUX_DEFAULT="loglevel=3" GRUB_CMDLINE_LINUX="" grub-mkconfig -o /boot/grub/grub.cfg Generating grub configuration file ... Found linux image: /boot/vmlinuz-linux Found initrd image: /boot/initramfs-linux.img Found fallback initrd image(s) in /boot: initramfs-linux-fallback.img Warning: os-prober will not be executed to detect other bootable partitions. Systems on them will not be added to the GRUB boot configuration. Check GRUB_DISABLE_OS_PROBER documentation entry. Adding boot menu entry for UEFI Firmware Settings ... done
От конфигурационния файл на GRUB махнахме параметъра quiet, за да можем да виждаме всичко какво се зарежда по време на стартиране на системата. Има още един параметър който може да се промени и това е loglevel=3. При стойност 3, системата когато стартира или спира извежда съобщение само за грешки. Ако стойността е 6 то тогава показва абсолютно всичко което зарежда или когато спира. След всяка поправка на конфигурационния файл, отново трябва да се генерира наново GRUB. Почти сме готови. Ако се сещате по-нагоре споменах, че не сме завършили с конфигурацията на мрежата. Примерно сега ако се рестартираме системата ще зареди, но няма да има мрежа. Има няколко варианта за решаване на задачата. Примерно можем да инсталираме пакета dhcpcd. След това да активираме услугата с указване на интерфайса върху който да работи. Има и по-иновативен вариант. Да инсталираме пакета networkmanager и да го стартираме като демон. На по-късен етап когато ще ползваме графична среда в системата това ще ни е от полза. Да го инсталираме и активираме.
### Първво го инсталираме pacman -Sy networkmanager ### След това го активираме systemctl enable NetworkManager Created symlink '/etc/systemd/system/multi-user.target.wants/NetworkManager.service' → '/usr/lib/systemd/system/NetworkManager.service'. Created symlink '/etc/systemd/system/dbus-org.freedesktop.nm-dispatcher.service' → '/usr/lib/systemd/system/NetworkManager-dispatcher.service'. Created symlink '/etc/systemd/system/network-online.target.wants/NetworkManager-wait-online.service' → '/usr/lib/systemd/system/NetworkManager-wait-online.service'.
Готови сме. Излизаме от новоинсталираната система.
exit exit arch-chroot /mnt 5.19s user 1.00s system 0% cpu 30:53.87 total
Размонтираме диска на който инсталирахме Arch.
umount -R /mnt
-R - размонтирва рекурсивно всичко което сме монтирали в /mnt. Да проверим.
mount |grep /mnt mount |grep sda
Нямаме никакви точки на монтиране. Можем да се презаредим.
reboot
Системата зареди но нямаме достъп до нея през SSH. За целта:
pacman -S openssh systemctl status sshd ○ sshd.service - OpenSSH Daemon Loaded: loaded (/usr/lib/systemd/system/sshd.service; disabled; preset: disabled) Active: inactive (dead) systemctl enable --now sshd Created symlink '/etc/systemd/system/multi-user.target.wants/sshd.service' → '/usr/lib/systemd/system/sshd.service'. systemctl status sshd ● sshd.service - OpenSSH Daemon Loaded: loaded (/usr/lib/systemd/system/sshd.service; enabled; preset: disabled) Active: active (running) since Wed 2025-05-14 20:03:39 UTC; 21s ago Invocation: f25d65f70f684f988b96ec9130c12dbd Main PID: 644 (sshd) Tasks: 1 (limit: 4621) Memory: 1.3M (peak: 1.5M) CPU: 20ms CGroup: /system.slice/sshd.service └─644 "sshd: /usr/bin/sshd -D [listener] 0 of 10-100 startups" May 14 20:03:39 archlinux systemd[1]: Starting OpenSSH Daemon... May 14 20:03:39 archlinux sshd[644]: Server listening on 0.0.0.0 port 22. May 14 20:03:39 archlinux sshd[644]: Server listening on :: port 22. May 14 20:03:39 archlinux systemd[1]: Started OpenSSH Daemon.
Да проверим дали SSH "слуша" на порт 22.
ss -tulpn Netid State Recv-Q Send-Q Local Address:Port Peer Address:Port Process tcp LISTEN 0 128 0.0.0.0:22 0.0.0.0:* users:(("sshd",pid=644,fd=6)) tcp LISTEN 0 128 [::]:22 [::]:* users:(("sshd",pid=644,fd=7))
Всичко е точно.
Ако по някаква причина не желаете да имате дял за SWAP, то може да го създадете във вид на файл. Създаваме SWAP файл с размер 2GB.
mkswap -U clear --size 2G --file /swapfile
Активираме SWAP-a.
swapon /swapfile
След рестарта за да е активен SWAP-а трябва да се добави в /etc/fstab.
nano /etc/fstab ### Най-отдолу добавяме /swapfile none swap defaults 0 0
Може да проверите свапа чрез:
swapon --show NAME TYPE SIZE USED PRIO /dev/sda2 partition 2G 0B -2 free -h total used free shared buff/cache available Mem: 3.8Gi 313Mi 3.6Gi 796Ki 122Mi 3.5Gi Swap: 2.0Gi 0B 2.0Gi vmstat procs -----------memory---------- ---swap-- -----io---- -system-- -------cpu------- r b swpd free buff cache si so bi bo in cs us sy id wa st gu 0 0 0 3739804 18956 106804 0 0 235 32 140 0 0 0 100 0 0 0
С това приключвам базовата инсталация на Arch Linux. От тук нататък спокойно може да се сложи някаква графична среда за работа.