Linux
  •     Как зарежда Linux Ремонт на GRUB
  •     Linux дистрибуции за слаби компютри

  • DEBIAN

  •   Debian 9
  •     Инсталиране на Debian 9
  •     Първоначални настройки (мрежа, VIM, Кирилизация)
  •     Инсталиране и настройка на SSH
  •     Инсталиране и настройка на DNS
  •     Инсталиране и настройка на NTP
  •     Инсталиране и настройка на Apache
  •     Инсталиране и настройка на MySQL (MariaDB)
  •     Инсталиране и настройка на PHPMyAdmin
  •     Инсталиране и настройка на собствен облак
  •     Инсталиране и настройка на SAMBA
  •     Инсталиране и настройка на FTP сървър
  •     Инсталиране и настройка на OSCAM
  •     Инсталиране и настройка на Mail server
  •       Първоначално конфигуриране на базата данни
  •       Инсталиране и конфигуриране на PostFix
  •       Инсталиране и конфигуриране на Dovecot
  •       PostFix дефинира Dovecot да удостоверява
  •       RoundCube
  •       Тестване доставката на поща
  •       Създаване на TLS криптиран ключ и сертификат
  •       WEB администриране
  •       Антиспам със SpamAssassin
  •       Антиспам с RSpmad
  •   Debian 11
  •     Разпределение на диска при BIOS и UEFI
  •     Debian 11 на BIOS върху LVM и RAID
  •     Инсталиране на Debian 11 на BIOS и ZFS
  •     Инсталиране на Debian 11 на BIOS и ZFS-1
  •     Инсталиране на Debian 11 на UEFI и ZFS
  •     ZFS Замяна на развален огледален диск
  •     Ремонт на GRUB и INITRAMFS
  •   Debian 12
  •     Първоначални настройки
  •     DNS Сървър
  •     Добавяне на втори диск
  •     SAMBA + WEBMIN
  •     SAMBA
  •     Инсталиране и настройка на Apache
  •     MySQL и PHPMyAdmin
  •     Инсталиране и настройка на Nginx
  •       Директиви location в Nginx
  •       MYSQL,PHP и PHPMyAdmin в Nginx
  •     Елементарен MAIL сървър
  •       Подобрение SSL/TLS, Maildir, LMTP
  •       Подобрение ВИРТУАЛИЗАЦИЯ без MySQL
  •       Подобрение ВИРТУАЛИЗАЦИЯ и MySQL
  •       Подобрение Антиспам - SpamAssasin
  •       Подобрение Антиспам - RSpamd
  •       Защита - SPF, DKIM и DMARK
  •     Пълноценен MAIL сървър
  •     Пощенски сървър с iRedMail
  •       CertBot 1 домейн
  •       Виртуални хостове, CertBot 2 домейна
  •       DKIM, SPF и DMARK
  •     MAIL сървър за вътрешна мрежа
  •     NextCloud
  •     Сървър за отдалечен достъп - RustDESK
  •     Минимално KDE в Debian

  • ARCH
  •     Минимална базова инсталация на Arch
  •        Настройка user, хост, регион
  •        Настройка мрежа, ядро, DOS
  •        Pacman, Reflector, YAY, SSD-TRIM, SSH
  •     Инсталиране на Arch на UEFI и btrfs
  •     Инсталиране на Arch на UEFI и DualBoot
  •     OpenBOX-минимум в Arch
  •     ArchInstall KDE - практика
  •     ArchInstall и KDE
  •       Първи стъпки след archinstall
  •       Необходими приложения след archinstall
  •       Почистване на системата след archinstall
  •     ArchInstall и GNOME
  •       Настройка на GNOME
  •       Оптимизация на GNOME за игри
  •       Забавни моменти в приложенията на GNOME
  •     KDE по избор, приложения и TimeSHIFT
  •     KDE-минимум в Arch
  •       Настройка и оптимизация на KDE
  •       Приложения за KDE в Arch
  •       Външен вид и стил в KDE
  •     QEMU-KVM в Arch
  •       QEMU-KVM Практика
  •       QEMU-KVM Windows 11
  •     VMware-TOOLS в Arch
  •     GDrive/Onedrive в Arch
  •     WINE в Arch
  •     LUXWINE в Arch
  •     Timeshift
  •       Прехвърляне на системата на друг диск
  •     RClone

  • ChromeOS
  •     ChromeOS

  • RAID
  •     BIOS RAID1+MSDOS
  •     BIOS RAID1+MSDOS+LVM
  •     UEFI RAID1
  •     UEFI LVM RAID1

  • ZFS
  •     ZFS теория и малко практика

  • BTRFS
  •     BTRFS - създаване монтиране fstab размер
  •     BTRFS - RAID
  •     BTRFS - subvolume и snapshot

  • КОНТЕЙНЕРИ
  •     Инсталиране на LXC/LXD
  •     Образи (image) в LXC/LXD
  •     Контейнери в LXC/LXD
  •     Команди в LXC/LXD

  • ОТСТРАНЯВАНЕ НА ГРЕШКИ
  •     SWAP
  •     SWAP & Hibernate

  • PROGRAMS
  •   Conky
  •   Sublime Text
  •   AdGuard

  • BGPOST
  •     Tar-App-01 SAMBA

  • SWAP и Hibernate

    Темата е интересна за тези ползващи преносими компютри, които често им се налага да "заспиват". Всичко би се оправило със създаване на отделен дял за тази цел, но ние ще се постараем да използваме по-нови методи. Първо дисковете които се ползват са SSD, а те са с по-кратък живот на четене/запис. Поради тази причина се ползва zram като технология за SWAP. ZRam се използва за swap, когато искате да увеличите капацитета на оперативната памет (RAM) чрез компресия, без да използвате бавния хард диск или SSD. Това създава виртуален swap сектор директно в самата RAM памет. Когато системата започне да се пълни, тя не изпраща данните към диска, а ги компресира в ZRam устройството, което спестява място и работи изключително бързо. Всичко изглежда прекрасно до момента когато системата трябва да заспи. В този случай е необходима хибернация, а класическия ZRam не върши работа. За хибернацията се изисква физическо дисково пространство. За по-нагледно нека предположим, че имаме 16GB RAM и някакъв процесор (примерно Intel i7). Това са чисто хипотетични числа. Изхождайки от горните условия стъпките които ще изпълним са: ● Създаваме основен Swap дял или файл върху диска (с размер около 17-20 GB, за да събере 16GB RAM + кеша при хибернация). ● Създаваме zRAM с по-висок приоритет (за да може системата да ползва бързата компресирана памет в ежедневието и да записва на диска само при хибернация или краен недостиг на RAM).

    Създаване на физически Swap файл (за Хибернация)

    Тъй като вече имате инсталирана система, най-лесно е да се създаде SWAP файл на диска (вместо да се преоразмерява дяла). Създаване на празен файл с размер 20 GB (препоръчително за 16GB RAM):

    sudo dd if=/dev/zero of=/swapfile bs=1G count=20 status=progress

    След това трябва да се дефинират правилни права за сигурност.

    sudo chmod 600 /swapfile

    Формиране като SWAP.

    sudo mkswap /swapfile

    Активиране на SWAP-a.

    sudo swapon /swapfile

    SWAP-a е готов. Да го опишем в /etcfstab.

    echo '/swapfile none swap defaults,pri=1 0 0' | sudo tee -a /etc/fstab

    Забележка: Задаваме нисък приоритет pri=1, за да може zRAM да се ползва с предимство

    Настройка на Хибернацията (Kernel Parameters & Initramfs)

    За да знае ядрото (kernel) откъде да прочете данните при събуждане от хибернация, ни трябват UUID на диска и offset (отместването) на swap файла.

    Намерете UUID на основния ви дял (където е /swapfile):

    findmnt -no UUID -T /swapfile

    Запишете си този дълъг низ, например: 1234abcd-56ef-78gh-... Намерете offset на файла:

    sudo filefrag -v /swapfile | awk '{if($1=="0:") print substr($4, 1, length($4)-2)}'

    Запишете си полученото число, например: 34528 Редактирайте GRUB конфигурацията:

    sudo nano /etc/default/grub # GRUB_CMDLINE_LINUX_DEFAULT="loglevel=3 quiet" GRUB_CMDLINE_LINUX_DEFAULT="quiet splash resume=UUID=ВАШИЯТ_UUID_ТУК resume_offset=ВАШИЯТ_OFFSET_ТУК"

    След това GRUB трябва да се обнови.

    sudo grub-mkconfig -o /boot/grub/grub.cfg

    Следва Initramfs.

    sudo nano /etc/mkinitcpio.conf HOOKS=(base udev autodetect microcode modconf kms keyboard keymap consolefont block resume filesystems fsck)

    Генерираме наново Initramfs.

    sudo mkinitcpio -P

    Инсталиране и конфигуриране на zRAM

    За най-лесно управление на zRAM в Arch Linux се използва пакетът zram-generator.

    sudo pacman -S zram-generator

    Създаme конфигурационен файл /etc/systemd/zram-generator.conf.

    sudo nano /etc/systemd/zram-generator.conf [zram0] zram-size = ram compression-algorithm = zstd swap-priority = 100

    Тази настройка създава zRAM с размер 16GB (равен на вашата RAM) и с приоритет 100. Тъй като физическият swap файл има приоритет 1, системата винаги ще пълни първо zRAM, а диска ще ползва само за хибернация. Стартираме услугата.

    sudo systemctl daemon-reload sudo systemctl start systemd-zram-setup@zram0.service

    Проверяваме дали всичко работи.

    zramctl swapon --show

    Трябва да виждате и двете устройства, като zram0 е с по-висок приоритет.

    Конфигуриране на KDE Plasma

    След като бекендът е готов, трябва да кажете на KDE да показва бутона за Хибернация. 1. Отидете в System Settings (Системни настройки) -> Power Management (Управление на захранването) -> Energy Saving. 2. Вече трябва да виждате опция "Hibernate" при затваряне на капака или натискане на бутона за включване. 3. Ако бутонът липсва в старт менюто, проверете дали Polkit не го блокира. Обикновено в Arch и KDE, ако ядрото поддържа хибернация, бутонът се появява автоматично след рестарт. Тествайте хибернацията ръчно през терминала:

    systemctl hibernate

    Лаптопът трябва да изключи напълно. При повторно включване системата трябва да зареди директно в KDE Plasma със записваните отворени прозорци.

    systemd-boot вместо GRUB

    Ако използвате systemd-boot вместо GRUB, процедурата се променя единствено в начина, по който предавате параметрите на ядрото (kernel parameters). Всичко останало (UUID, offset на файла и промяната в mkinitcpio.conf) остава абсолютно същото. Много важен момент!. Трябва да знаете къде е активната конфигурация за зареждане. Ето как да настроите systemd-boot за хибернация: 1. Намерете активната конфигурация на зареждане. Конфигурационните файлове на systemd-boot се намират в EFI дяла ви, обикновено в директорията /boot/loader/entries/. Там ще намерите един или повече .conf файлове (например arch.conf). Отворете активния конфигурационен файл, ако няма го създадете:

    sudo nano /boot/loader/entries/arch.conf title Arch Linux linux /vmlinuz-linux initrd /intel-ucode.img initrd /initramfs-linux.img options root=UUID=ВАШ_ROOT_UUID rw quiet splash resume=UUID=ВАШ_ROOT_UUID resume_offset=ВАШ_OFFSET sudo nano /boot/loader/loader.conf timeout 3 default arch.conf # console-mode keep

    (По избор) Ако използвате sd-vconsole или systemd куки Тъй като използвате systemd-boot, е много вероятно в /etc/mkinitcpio.conf на реда HOOKS=(...) вместо udev да използвате systemd. * Ако ползвате udev подредба: добавете resume (както е описано в предния отговор). * Ако ползвате systemd подредба: вместо resume, трябва да добавите куката systemd (тя вече трябва да е там), а самата хибернация ще се управлява автоматично от нея. Няма нужда да добавяте нищо допълнително в реда HOOKS. За всеки случай, след промяната на .conf файла, генерирайте отново initramfs имиджите:

    sudo mkinitcpio -P

    При systemd-boot няма нужда от команда за обновяване (като grub-mkconfig). Промените влизат в сила веднага след записването на файла. Можете да рестартирате лаптопа и да тествате хибернацията.

    Ако ползвате Unified Kernel Images (UKI)

    Ако използвате по-новата практика с Unified Kernel Images (UKI), няма да намерите отделен .img файл. Вместо това ще имате файл с разширение .efi (например arch-linux.efi), който съдържа в себе си и ядрото, и initramfs. Той се намира в: /efi/EFI/Linux/ или /boot/EFI/Linux/.

    sudo nano /boot/loader/entries/arch-hiber.conf title Arch Linux (Hibernation) linux /EFI/Linux/arch-linux.efi options root=UUID=ВАШ_ROOT_UUID rw quiet splash resume=UUID=ВАШ_ROOT_UUID resume_offset=ВАШ_OFFSET

    Проверка на SWAP-a

    swapon --show NAME TYPE SIZE USED PRIO /swapfile file 4G 0B 1 /dev/zram0 partition 3.8G 0B 100