Портрет 4X_Pro
Был в Сети 11 сент. 2025 г., 05:32
Мультиблог
4X_Pro
Кратко о себе: Web-разработчик. Пишу на PHP, Python, JavaScript. Знаю Ruby и Go, со студенческих времён более-менее помню C и asm. Специализируюсь на ускорении загрузки сайтов и разработке ботов для Telegram. Linuxоид (использую Debian+LXDE). Сторонник IndieWeb, slow lifer.

Социальные сети


Новости сайта в Telegram

t.me/4x_pro

Компьютерное

Автоматическая очистка почты при использовании Dovecot

4X_Pro

Если есть необходимость регулярно удалять старые письма, и на сервере в качестве почтового сервера используется Dovecot, то можно прописать в cron такую команду:
мин час * * * /usr/bin/doveadm expunge -u пользователь mailbox ящик savedbefore период
Например, так 0 4 * * * /usr/bin/doveadm expunge -u nospam@4xpro.ru mailbox Inbox savedbefore 30d
Типичные значения для ящика: Inbox (Входящие), Outbox (Исходящие), Trash (Корзина), Spam.
Так же есть возможность выполнить команду для всех пользователей, использовав вместо -u пользователь аргумент -A.

Как починить повреждённый GRUB

4X_Pro

Пару раз сталкивался с тем, что GRUB переставал работать, проваливаясь в выдавая ошибки вроде grub error symbol grub_disk_native_sectors not found. Чаще всего такое случается при некорректном обновлении, когда основная часть загрузчика (установленная в загрузочный сектор) обновилась, а модули в /boot/grub — нет, или наоборот, но могут быть и другие причины.
Что делать в таких случаях. Во-первых, можно попытаться загрузить Linux вручную с помощью команд:
insmod linux set root=/dev/sdaX linux /boot/vmlinuz-y.z-u-generic root=/dev/sdaX initrd /boot/initrd.img-y.z-u-generic boot
Вместо sdaX нужно указать свой раздел (например, /dev/sda1) , а вместо y.z-u-generic — свою версию ядра. Её можно посмотреть с помощью команды ls. Сначала ls покажет список устройств, которые видит grub вида (hd0,msdos1), (hd0,msdos2), (hd1). Дальше нужно повторить ls для каталога /boot с указанием имени устройства перед ним. Т.е. ls (hd0,msdos1)/boot. Дальше выбрать подходящий файл vmlinuz и соответствующий ему initrd (они должны быть одинаковой версии).
Однако в случае повреждения некоторых модулей GRUB такое не работает, начинаются ошибки после команд insmod или linux. Тогда есть два варианта. Либо найти установочный диск/флешку той же версии системы, что установлена на компьютере, и загрузиться с неё. Но загрузочный образ может быть весьма большим, поэтому может оказаться проще использовать другое решение — SuperGrub 2 Disk. Это крошечный образ ISO (менее 20 Мб), в котором есть только загрузчик GRUB с таким файлом конфигурации, который умеет автоматически находить операционные системы на всех доступных разделах, и начинать процесс загрузки. Очень удобно, если нужно чинить GRUB на удалённом сервере с возможностью монтирования ISO через KVM.
После того, как загрузиться удалось, нужно переустановить GRUB командой
sudo grub-install /dev/sdaX
В Debian-подобных системах имеет смысл также обновить файл конфигурации GRUB с помощью команды sudo update-grub.

Просмотр S.M.A.R.T. под Linux

4X_Pro

Почти во всех современных жестких дисках есть встроенная система мониторинга состояния, называемая S.M.A.R.T., позволяющая выявить многие проблемы еще до того момента, как диск Но часто возникает вопрос: как посмотреть эти параметры, чтобы убедиться, что с диском все в порядке?
Обычно рекомендуют поставить утилиту smartctl (в большинстве дистрибутивов она идет в пакете smartmontools). Посмотреть параметры с помощью нее можно командой
sudo smartctl -a /dev/sdX
где вместо sdX нужно подставить имя конкретного устройства (sda, sdb и т.д.)
Но эта утилита предназначена для регулярного мониторинга, и при установке создает службу smartd, что нужно далеко не всегда. Поэтому возникает желание найти утилиту, которая только показывает SMART-параметры по запросу и ничего больше. Как выяснилось, в Mint Linux это умеет делать утилита hddtemp, установленная по умолчанию. Для этого ее нужно запустить в отладочном режиме:
sudo hddtemp /dev/sdX -D
Главный ее недостаток — утилита не показывает описания полей SMART-параметров, а только их номера. Но обычно требуется посмотреть только несколько основных, что можно сделать по номерам:
3 — Spin_Up_Time — время раскрутки диска.
5 — Reallocated_Sector_Ct — количество переназначенных секторов, если оно не равно нулю, диск начал разрушаться, и желательно его скорее заменить (кроме того, на большинстве дисков появление таких секторов ведет к падению производительности).
7 — Seek_Error_Rate — количество ошибок чтения из-за позиционирования головок диска.
10 — Spin_Retry_Count — количество повторных раскруток.
197 — Current_Pending_Sector — количество секторов, отмеченных как неустойчивые (кандидаты в relocated).
198 — Offline_Uncorrectable — количество неисправных секторов.

Аппаратное ускорение видео в Ubuntu

4X_Pro

Долгое время никак не мог включить аппаратное ускорение видео в Chromium под Ubuntu Linux . В about:gpu выводилось Video Decode: Unavailable, а чуть ниже — Accelerated video decode is unavailable on Linux.
Причина этого выяснилась, когда я поставил утилиту vdpauinfo. Она выдала ошибку:
Failed to open VDPAU backend libvdpau_i965.so: cannot open shared object file: No such file or directory
Как выяснилось, в Ubuntu этот драйвер лежит в пакете с именем i965-va-driver
apt install vdpau-va-driver  i965-va-driver
После установки этого пакета и включения в about:flags опции Override software rendering list в about:gpu появилось долгожданное Video Decode: Hardware accelerated.
Добавлено после: как выяснилось, этого недостаточно. До 88 версии в Chromium для Linux аппаратное ускорение было выключено в принципе, даже в about:gpu писалось, что оно есть. В более поздних версиях её можно включить с помощью опций командной строки:
chromium-browser --enable-features=VaapiVideoDecoder --use-gl=desktop
Можно попробовать пойти другим путём: установить драйвер для вывода ускоренного видео через OpenGL surface:
apt install vdpau-va-driver libvdpau-va-gl1
и затем запускать приложение, установив переменную среды VDPAU_DRIVER=va_gl vdpauinfo:
VDPAU_DRIVER=va_gl chromium-browser --enable-features=VaapiVideoDecoder --use-gl=egl

Задержка при загрузке Ubuntu 18.04

4X_Pro

Обновился несколько дней назад с Lubuntu 16.04 до Lubuntu 18.04 и столкнулся со странной проблемой: компьютер стал очень долго загружаться. Утилита systemd-analyze показывала, что задержка возникает не в user space, а при загрузке ядра. Из dmesg было видно, что где-то на третьей секунде загрузки ядра компьютер останавливается и ждет 30 секунд без каких-либо ошибок, после чего продолжает загрузку как обычно.
Изначально я предполагал, что ошибка где-то в драйверах. Но после нескольких дней экспериментов и поисков в Google выяснилось следующее: при загрузке Linux пытается восстановиться из состояния гибернации из swap, который у меня отсутствует, и система останавливается, пытаясь считать содержимое памяти неизвестно откуда.
Решается это просто: в параметрах ядра при загрузке нужно указать параметр noresume. В случае, если используется загрузчик GRUB, нужно отредактировать файл /etc/default/grub: строку
GRUB_CMDLINE_LINUX_DEFAULT="quiet" заменить на GRUB_CMDLINE_LINUX_DEFAULT="quiet noresume"
После этого нужно выполнить
$ sudo /usr/sbin/update-grub для того, чтобы был сгенерирован новый файл /boot/grub/grub.cfg. При следующей перезагрузке проблема исчезает.

Включаем кеширование DNS в Ubuntu

4X_Pro

Недавно подключил Интернет напрямую в ноутбук, без роутера, и обнаружил, что многие сайты стали открываться ощутимо медленнее. При этом по данным speedtest.net скорость соединения стала существенно больше. Стал разбираться, в чем дело. Выяснилось, что хотя в Lubuntu по умолчанию все запросы идут через локальный DNS-сервер dnsmasq, в нем по умолчанию отключено кеширование! Но его достаточно легко включить.

Переключение раскладки по CapsLock в Lubuntu

4X_Pro

Установил недавно Lubuntu и обнаружил, что настроить с помощью GUI переключение раскладки клавиатуры по CapsLock не получается. Стал искать решение, и нашел следующее:

Читать далее…

Подключение внешнего монитора к ноутбуку с двумя видеокартами в Linux

4X_Pro

Недавно сделал загрузочную флешку с ArchLinux. Система очень понравилась: компактная, занимает мало памяти, быстро загружается (12 секунд до консоли с флешки и 15 до GUI), определяет почти все "железо" без дополнительных действий. Решил использовать на ноутбуке, но тут возникла сложность: большую часть времени он у меня находится под столом, а изображение выводится на внешний монитор. Linux же выдавал изображение только на панель самого ноутбука. Кроме того, на аккумуляторах компьютер работал гораздо меньше, чем обычно. Я стал разбираться, что с этим делать.

Читать далее…

Задать вопрос