Отличительной особенностью данного руководства является минимальное число шагов до перезагрузки в систему, так как создание пользователя, установка времени и прочие подобные настройки не являются задачей первостепенной важности.
Самое главное - успешно загрузиться в новую систему, дальнейшую настройку можно будет продолжить когда угодно.
Установка будет производиться в следующих условиях:
- Носитель информации, на который будет произведена установка, не содержит полезной информации и других ОС
- Местом установки ОС является ssd/nvme накопитель
- Компьютер имеет проводное подключение к интернету по DHCP
- Компьютер поддерживает и настроен на загрузку через EFI
ОС будет сконфигурирована со следующими параметрами:
- Система загрузки EFI
- Менеджер загрузки GRUB
- Файловая система Btrfs, автоматическое резервное копирование с помощью snapper, без шифрования
- Технология кеширования памяти ZRAM, без файла подкачки
cat /sys/firmware/efi/fw_platform_sizeПри загрузке в режиме EFI должно вывестись 64
Важно Далее рассматривается работа только с дисками в режиме
EFI
Посмотрим устройства хранения и определим [имя диска] для разметки. Это может быть к примеру sda или nvme0n1
lsblk
fdisk -lЗапускаем утилиту разметки диска
cfdisk /dev/[имя диска]Создаём разделы:
- В меню выбора типа разметки выбираем
gpt new->512M->type->EFI SystemFree space->new->предложенный_размерWrite->yes->QuitПроверяем созданные разделы командой:
lsblkЗаметка Предположим что
EFIраздел получил название/dev/sda1, а основной/dev/sda2
mkfs.fat -F32 /dev/sda1
mkfs.btrfs /dev/sda2mount /dev/sda2 /mnt
btrfs sub cr /mnt/@
btrfs sub cr /mnt/@home
btrfs sub cr /mnt/@snapshots
btrfs sub cr /mnt/@pkg
btrfs sub cr /mnt/@log
btrfs sub cr /mnt/@cache
btrfs sub cr /mnt/@tmp
# проверка создания томов
btrfs sub list /mnt
umount /mntmount -o noatime,nodiratime,compress=lzo,space_cache=v2,ssd,subvol=@ /dev/sda2 /mnt
mount -o x-mount.mkdir,noatime,nodiratime,compress=lzo,space_cache=v2,ssd,subvol=@home /dev/sda2 /mnt/home
mount -o x-mount.mkdir,noatime,nodiratime,compress=lzo,space_cache=v2,ssd,subvol=@snapshots /dev/sda2 /mnt/.snapshots
mount -o x-mount.mkdir,noatime,nodiratime,compress=lzo,space_cache=v2,ssd,subvol=/ /dev/sda2 /mnt/.btrfsroot
mount -o x-mount.mkdir,noatime,nodiratime,compress=lzo,space_cache=v2,ssd,subvol=@pkg /dev/sda2 /mnt/var/cache/pacman/pkg/
mount -o x-mount.mkdir,noatime,nodiratime,compress=lzo,space_cache=v2,ssd,subvol=@log /dev/sda2 /mnt/var/log
mount -o x-mount.mkdir,noatime,nodiratime,compress=lzo,space_cache=v2,ssd,subvol=@cache /dev/sda2 /mnt/var/cache
mount -o x-mount.mkdir,noatime,nodiratime,compress=lzo,space_cache=v2,ssd,subvol=@tmp /dev/sda2 /mnt/var/tmp
mkdir -m 700 /mnt/efi
mount /dev/sda1 /mnt/efipacstrap -i /mnt base base-devel linux linux-firmware linux-headers intel-ucode sudo nano bash-completion networkmanagergenfstab -U -p /mnt >> /mnt/etc/fstabarch-chroot /mnt /bin/bashpacman -S grub efibootmgr grub-btrfs os-prober
grub-install --target=x86_64-efi --efi-directory=/efi --bootloader-id=Arch
grub-mkconfig -o /boot/grub/grub.cfgpasswdexit
umount -R /mnt
rebootДля примера возьмём в качестве имени компьютера
one
useradd -mg users one
usermod -aG power,wheel,audio,video,storage,optical,scanner,floppy,realtime one
# Проверка
userdbctl groups-of-user one
passwd oneДалее необходимо отредактировать файл nano /etc/sudoers в разделе
Uncomment to allow members of group wheel to execute any command
# %wheel ALL=(ALL:ALL) ALL
раскомментировать строку %wheel ALL=(ALL:ALL) ALL.
systemctl enable NetworkManager
systemctl start NetworkManagernano /etc/packman.confРаскомментируем параметр ParallelDownloads и задаём желаемое значение, раскомментируем параметр Color
Для работы 32-битных приложений в 64-битной раскомментируем блок:
[multilib]
Include = /etc/pacman.d/mirrorlist
yay -S reflector
# Ручной запуск
sudo reflector --verbose --country 'Russia' -l 25 --sort rate --save /etc/pacman.d/mirrorlistДля примера возьмём в качестве имени компьютера
archdemo
echo archdemo > /etc/hostnameУказание локального домена
nano /etc/hostsИ добавляем в файл строки:
127.0.0.1 localhost
::1 localhost
127.0.1.1 archdemo.localdomain archdemo
С помощью автодополнения выбираем часовой пояс через:
ln -sf /usr/share/zoneinfo/название_области/название_пояса /etc/localtime
ls /usr/share/zoneinfoВключаем синхронизацию времени
timedatectl set-ntp true
timedatectl statusnano /etc/locale.genНеобходимо раскомментировать локали, например en_US UTF-8 и ru_RU UTF-8, после чего выполнить команду:
locale-gen
echo "LANG=ru_RU.UTF-8" > /etc/locale.confСмотрим список раскладок клавиатуры для консоли:
localectl list-keymaps | grep ruВыбрав подходящую, записываем её в конфиг:
echo 'KEYMAP="ruwin_alt_sh-UTF-8"' >> /etc/vconsole.confЗаписываем в конфиг шрифт с поддержкой кириллицы:
echo 'FONT="cyr-sun16"' >> /etc/vconsole.confВажно Все дальнейшие команды нужно выполнять от созданного пользователя, не от
root
sudo pacman -S git
cd /tmp
git clone https://aur.archlinux.org/yay.git
cd yay
makepkg -si
cd ..
sudo rm -rf yayОтключение сборки отладочных пакетов
sudo sed -i.bak '/^OPTIONS=/s/strip/!strip/; /^OPTIONS=/s/debug/!debug/' /etc/makepkg.confОтключение диалогов при установке пакетов
yay --nodiffmenu --nocleanmenu --noeditmenu --noremovemake --saveОбновление системы:
yayУдаление неиспользуемых пакетов:
yay -YcВ дальнейшем для установки любых пакетов, которые предусматривали запуск
pacmanможно использоватьyayс тем же синтаксисом, но безsudo
Ядру Linux, независимо от размера оперативной памяти, нужно периодически сбрасывать страницы памяти в SWAP. Для экономии ресурса SSD SWAP можно размещать в сжатом виде в оперативной памяти (ZRAM).
yay -S zram-generator zram-generator-defaults
sudo systemctl start systemd-zram-setup@zram0
# проверка
swaponНеобходимо провести так как ZSWAP и ZRAM конкурирующие за ресурсы памяти технологии.
sudo nano /etc/default/grubВ строку GRUB_CMDLINE_LINUX_DEFAULT= необходимо через пробел добавить параметр zswap.enabled=0
Обновление конфигурации загрузчика:
sudo grub-mkconfig -o /boot/grub/grub.cfgПосле перезагрузки можно проверить отключение командой:
cat /sys/module/zswap/parameters/enabledРекомендованные настройки SWAP для SSD:
sudo nano /etc/sysctl.d/99-swappiness.conf`Прописываем в файле:
vm.swappiness = 180
vm.watermark_boost_factor = 0
vm.watermark_scale_factor = 125
vm.page-cluster = 0
Применяем настройки:
$ sudo sysctl --systВажно Возможность отката состояния системы не обеспечивает сохранность данных при выходе носителя информации из строя
btrfs-assistant - графическая утилита, не обязательна для работы со снимками состояний.
yay -S snapper-support snapper-rollback btrfs-assistant
sudo umount /.snapshots
sudo rm -r /.snapshots
# создание конфигураций
sudo snapper -c root create-config /
sudo snapper -c home create-config /home
sudo mount -a
sudo btrfs subvol list /Смотрим вывод последней команды и находим в ней значение ID для тома @. Обычно это 256. Ставим ID тома по умолчанию:
sudo btrfs subvol set-default 256 /
# Проверка
sudo btrfs subvol get-default /
sudo nano /etc/snapper-rollback.confВ открывшемся файле конфига необходимо убедиться в правильных значениях параметров subvol_snapshots и mountpoint. Согласно конфигурации монтирования значение mountpoint должно быть /.btrfsroot.
sudo nano /etc/snapper/configs/rootВ файле необходимо установить значение TIMELINE_CREATE="no", затем перезапустить сервис:
sudo systemctl restart snapper-timeline.timersudo nano /etc/snapper/configs/homeПример для создания и хранения 1 снимка в час и 1 снимка в день
TIMELINE_LIMIT_HOURLY="1"
TIMELINE_LIMIT_DAILY="7"
TIMELINE_LIMIT_WEEKLY="0"
TIMELINE_LIMIT_MONTHLY="0"
TIMELINE_LIMIT_YEARLY="0"
sudo systemctl restart snapper-timeline.timer
sudo systemctl enable snapper-cleanup.timer# просмотр конфигураций
sudo snapper list-configs
# просмтр списка состояний конкретной конфигурации (например root)
sudo snapper -c root listsudo snapper -c root create -d описание_(опционально)sudo snapper -c root delete номер_снимкаsudo snapper status 1..3Где 1..3 означает разницу между какими снимками нужно вывести
Важно Откат возможен только для корневого тома
Откатить систему можно как находясь в ней, так и загрузившись в предыдущий снимок системы через меню GRUB
sudo snapper-rollback номер_снимкаbtrfs scrub start -B /Если установка какого либо пакета не происходит с ошибкой 404, значит необходимо произвести обновление системы командой yay.