10 апреля 2026

Установка AlmaLinux 10.1 с памятью 1GB

Как вы понимаете, если бы AlmaLinux 10 ставилась c таким объёмом оперативной памяти - не было бы этой статьи. Для меня оказалось дичью - в 21 веке требовать 2GB RAM только для установки, Debian/Gentoo дистрам хватает за глаза и 512MB.

Вобщем последовательность установки:

  1. Загрузиться сначала с любым Linux live-дистрибутивом (я использовал install от Gentoo)
  2. Разметить диск вручную через fdisk как необходимо. Обязательная часть - выделить место под обычный раздел объёмом не меньше 2GB (желательно в конце диска). Не делайте раздел типа 82 (Linux swap) на этом этапе установки, иначе установщик не даст пользоваться swap когда начнёт ставить систему (он отключает своп совсем). Если используется GPT - нужно создать первым разделом EFI-раздел размером 256-512M c файловой системой vfat, а потом все остальные.
  3. После разметки отформатируйте раздел, который будет под swap обычной файловой системой (mkfs.ext4, mkfs.btrfs и т.д.). Смонтируйте этот раздел и создайте там файл подкачки (подразумевается что это /dev/vda2, но у вас может быть другой):
    mkdir /mnt/swap
    mount /dev/vda2 /mnt/swap
    dd if=/dev/zero of=/mnt/swap/swapfile bs=1M count=1950
    mkswap /mnt/swap/swapfile
    chmod 0600 /mnt/swap/swapfile
  4. Остановите машину shutdown now и подключите ISO AlmaLinux-10.1-x86_64_v2-boot.iso, начните загрузку с него.
  5. На стадии grub-меню, выберите первый пункт (Install Almalinux) и нажмите e, перейдите на строку с kernel и в конце допишите inst.text - так мы укажем, что надо ставить в текстовом режиме (графика не запустится на 1GB RAM). Также необходимо будет выбрать текстовый режим после полной загрузки, RDP-режим тоже не работает на таком объёме памяти.
  6. После загрузки первым делом выбираем пункт 5 для настройки диска куда будем ставить. Выберите пункт 4 (ручное указание точек монтирования). Укажите свободный раздел (который не swap) и укажите точку монтирования /. Или другую раскладку если у вас сложнее. Не трогайте раздел под swap и не указывайте у него точки монтирования!
  7. Переходим во вторую консоль (Alt+F2) и там монтируем раздел и включаем swap:
    mkdir /mnt/swap
    mount /dev/vda2 /mnt/swap
    swapon /mnt/swap/swapfile
  8. Переходим на основную консоль (Alt+F1) и продолжаем установку как обычно.
Таким способом у меня получилось поставить minimal-установку AlmaLinux с 1GB оперативной памяти. После загрузки установленной системы можно отформатировать этот раздел целиком под swap (mkswap /dev/vda2) и прописать его в fstab, чтобы не пропадало место =)

Возможно, у кого-то есть идеи получше как сделать сие - буду радь услышать их в комментариях =)

24 апреля 2023

Сканер и принтер Ricoh SP150SU в Gentoo

Задача: необходимо настроить сканер и принтер Ricoh SP150SU в Gentoo. Не всё так просто и очевидно, впрочем, нам не привыкать =)

01 декабря 2021

SMTP Relay Exchange и сохранение писем

Возникла задача - с вебсайта отправляются письма через протокол SMTP. Cоединение идёт с сервером Exchange с поднятым SMTP relay. Копии отосланных писем надо сохранить в почтовой папке "Отправленные" того же ящика. Подобную фишку пока реализовали только в Office365, а остальным надо сделать следующее:

15 августа 2021

Конвертация Maildir хранилища в Dovecot (LAYOUT=fs:UTF-8)

Если вы используете dovecot для предоставления IMAP и клиентов с Outlook IMAP, то есть проблема - используя стандарт хранения файлов по-умолчанию

mail_location = maildir:/var/vmail/%d/%n

получим массу папок в UTF-7 названиях, плюс подпапки будут суммироваться в одно большое имя (пользователи любят собирать письма во Входящих по подпапкам):

.INBOX.&BBEEQwRFBDMEMAQ7BEIENQRABDgETw-

Чтобы сделать хранение подпапок как подпапок на диске (через LAYOUT=fs), плюс избавиться от малопонятного UTF-7 и сделать нативный UTF-8:

INBOX/Бухгалтерия

необходимо будет сначала временно в команде конвертации doveadm backup, а потом, после полной конвертации уже и в конфигурации dovecot изменить формат хранения на:

mail_location = maildir:/var/vmail/%d/%n:LAYOUT=fs:UTF-8

Сначала надо убедиться, что задан separator по-умолчанию в вашей конфигурации. doveconf namespaces покажет их, если separator не задан, то зададим его равным "." (это значение по-умолчанию):

namespace inbox {
 ..
 separator = "."
 ..
}


Возможно у вас уже есть namespace {} - тогда задать надо там. После полной конвертации его надо изменить на "/".

Собственно, сама конвертация происходит в виде копирования в новое местоположение файлов с новой системой названий. Команда для конвертации (из под root):

doveadm -D -o "mail_location = maildir:/var/vmail/%d/%n:LAYOUT=fs:UTF-8" backup -u myuser@mydomain.tld maildir:/var/vmail/domain.tld/myuser2:LAYOUT=fs:UTF-8

Далее удаляем старую папку myuser и переименовываем новую myuser2 в имя старой myuser.

Самое главное - везде в конфигурации Dovecot заменить значение mail_location и separator на новое значение. Иначе будет создаваться папки со старыми именами =)

29 апреля 2020

Rocket Chat Livechat/Omnichannel i18n RU перевод

В версии 3.1.1 (и в предыдущих) чудного чат-сервера Rocket Chat - есть опция внедрения виджета LiveChat на свои сайты с привязкой к каналам. Однако, русская часть сообщений переведена не полностью и выглядит коряво =)

Если ставили из исходников по руководству выше - достаточно заменить 2 файла:
/opt/Rocket.Chat/programs/web.browser/app/livechat/i18n.ru.chunk.b3bc1.js
/opt/Rocket.Chat/programs/web.browser.legacy/app/livechat/i18n.ru.chunk.b3bc1.js
этим файлом и форсировать полную перезагрузку сайта в браузере, чтобы обновился этот js-файл.

Как поправить в Snap-версии не нашёл =)

Чтобы собрать этот файл самому - качаем исходники компоненты LiveChat, правим нужный файл, билдим через yarn командой yarn build

23 декабря 2018

Изменение общих опций сборки отдельного пакета portage Gentoo

Допустим, глобально установлен флаг многопоточной сборки:
cat /etc/portage/make.conf
MAKEOPTS="-j9"

Для изменения этой опции у отдельного пакета необходимо:

  1. Создать папку /etc/portage/env (если ещё нет). Там сделаем файл singlejob с содержимым:
    MAKEOPTS="-j1"
  2. Установить в файле /etc/portage/package.env условие изменения окружения для отдельного пакета, например:
    dev-db/mysql singlejob
Теперь пакет dev-db/mysql будет собираться в 1 поток. Менять можно любые переменные сборки.