Grub2 2.04 с поддержкой сжатия zstd на BTRFS для Ubuntu 18.04 и 19.04

В репозиториях Ubuntu < 19.10 Grub2 2.02, в котором нет поддержки загрузки с корневого раздела BTRFS, сжатого с помощью ZSTD. Собрал Grub2 2.04 из Ubuntu 19.10 для 18.04 и 19.04, в котором есть поддержка загрузки с корневого раздела в btrfs, сжатом zstd. Читать далее Grub2 2.04 с поддержкой сжатия zstd на BTRFS для Ubuntu 18.04 и 19.04

Скачиваем альбом или все треки исполнителя с Яндекс Музыки бесплатно

Программа youtube-dl умеет скачивать в т.ч. и с Яндекс.Музыки.
Читать далее Скачиваем альбом или все треки исполнителя с Яндекс Музыки бесплатно

Замена домена в базе данных WordPress

В общем при смене домена в WordPress-ах с Beaver Builder-ом надо заменять домен в базе данных не просто как замену текста, а специальными утилитами, которые умеют заменять «сериализованные данные» так, чтобы они не ломались
В wp-cli это есть

Пример:
wp search-replace 'xn--d1amkdfpf.xn--80agbsneq0b4h.xn--p1ai' 'product.dumalogiya.ru' --verbose --dry-run — посчитать, сколько замен будет сделано, ничего не заменяя.
wp search-replace 'xn--d1amkdfpf.xn--80agbsneq0b4h.xn--p1ai' 'product.dumalogiya.ru' --verbose — произвести замены.

Установка ОС на физический диск в виртуальной машине

Подключил новый SSD-диск к компьютеру (в SATA). Встал вопрос: как бы поставить на него ОС из-под виртуальной машины? Вопрос решился просто:
Читать далее Установка ОС на физический диск в виртуальной машине

Как в GNU/Linux работает резолвинг DNS? Как система превращает имя DNS в IP-адрес?

Почти все программы слинкованы с системной glibc (libc.so.6). Когда в glibc поступает запрос на резолвинг имени хоста, поочередно опрашиваются плагины NSS (Name Switch Service), прописанные в /etc/nsswitch.conf в строке hosts. В случае

rosa-2016 ~ # cat /etc/nsswitch.conf | grep ^hosts
hosts:     mdns4_minimal files nis dns wins myhostname mymachines mdns4 
rosa-2016 ~ #

сначала будет попытка разрешить имя через Avahi по протоколу multicast DNS (mdns4_minimal), затем через файл /etc/hosts (files), затем через nis (устаревшая штука), затем, собственно, сам dns. Кто первый ответит, тот ответ и принимается.

Отладка dlopen (динамической подгрузки) библиотек в Linux/UNIX

Понадобилось узнать, почему FreeIPA выдавала ошибку загрузки библиотеки, не выдавая подробный текст ошибки. Этот способ позволяет выполнять dlopen() библиотек и смотреть, успешно ли прошла операция, и видеть ошибки.
Используется Python CFFI.
Читать далее Отладка dlopen (динамической подгрузки) библиотек в Linux/UNIX

Пример использования valgrind для отладки в т.ч. зависания программы

named-pkcs11 при запуске зависает.
Читать далее Пример использования valgrind для отладки в т.ч. зависания программы

Использование системного youtube-dl в Youtube DL GUI (Youtube DLG)

Есть весьма корявенькая, но очень полезная программа Youtube DLG — графический интерфейс для youtube-dl — программы для скачивания с Youtube, Вконтакте, Facebook, Одноклассников Яндекс Диска и множества других сайтов.

Читать далее Использование системного youtube-dl в Youtube DL GUI (Youtube DLG)

Дефрагментирование BTRFS со снапшотами

У меня был read only снапшот примерно 1.5 ТБ данных, на диске было свободно около 900 ГБ. Запeстил дефрагментацию (btrfs defrag). В итоге получил ошибку, что не осталось свободного места, а место реально закончилось. Это произошло потому, что снапшот был read only, то есть доступен только на чтение, при дефрагментации выполнялось копирование файлов в новое расположение, а из read only снапшота их удалить нельзя, поэтому место закончилось. Удалили снапшот, место освободилось.
Нагуглил по этому вопросу:
1) «Is it dangerous to defragment subvolume which has readonly snapshots?»
2) Обсуждение в рассылке «defragmenting best practice?»

Особенность чистки файлового хранилища на BTRFS

Решил почистить файловое хранилище на BTRFS. Чистка включает в себя:

  1. анализ, чем занято место на диске, через консольную утилиту ncdu, удаление ненужного
  2. удаление старых снапшотов (резервных копий)
  3. проведение btrfs balance /точка_монтирования

Выше написан правильный порядок действий. А я сначала удалил ненужные снапшоты, а потом начал пытаться запустить ncdu. В результате фоном работает процесс btrfs-cleaner, который создает большую нагрузку на ввод-вывод с небыстрого HDD диска, и все остальное работает очень медленно. Нужно было делать в той последовательности, которая описана выше, чтобы фоновые операции, создающие большую нагрузку на систему, выполнялись уже после завершения всех работ человеком.