Отличительной особенностью данного руководства является минимальное число шагов до перезагрузки в систему, так как создание пользователя, установка времени и прочие подобные настройки не являются задачей первостепенной важности.
Самое главное - успешно загрузиться в новую систему, дальнейшую настройку можно будет продолжить когда угодно.
Установка будет производиться в следующих условиях:
- Носитель информации, на который будет произведена установка, не содержит полезной информации и других ОС
- Местом установки ОС является 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 System
Free space
->new
->предложенный_размер
Write
->yes
->Quit
Проверяем созданные разделы командой:
lsblk
Заметка Предположим что
EFI
раздел получил название/dev/sda1
, а основной/dev/sda2
mkfs.fat -F32 /dev/sda1
mkfs.btrfs /dev/sda2
mount /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 /mnt
mount -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/efi
pacstrap -i /mnt base base-devel linux linux-firmware linux-headers intel-ucode sudo nano bash-completion networkmanager
genfstab -U -p /mnt >> /mnt/etc/fstab
arch-chroot /mnt /bin/bash
pacman -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.cfg
passwd
exit
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 NetworkManager
nano /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 status
nano /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.timer
sudo 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 list
sudo 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
.