LINUX.ORG.RU

Сообщения dyonya

 

Btrfs некорректно монтирует

Привет, ЛОР!

Использую Btrfs и много subvolume’ов: предположительно для разных ОС; сейчас — Gentoo (основная) и Arch aka тестовый полигон.

Некоторые разделы должны монтироваться без сжатия: /mnt, log, cache, ~/Media (уже сжатые файлы).

Вот fstab:

/dev/efi          	/boot/efi 	vfat      	rw,relatime,fmask=0022,dmask=0022,codepage=437,iocharset=ascii,shortname=mixed,utf8,errors=remount-ro	0 2

/dev/btrfs           	/         	btrfs     	rw,noatime,compress=zstd:1,ssd,space_cache=v2,subvol=/@gentoo	0 1

/dev/btrfs           	/home     	btrfs     	rw,noatime,compress=zstd:1,ssd,space_cache=v2,subvol=/@home	0 2

/dev/btrfs           	/snapshots	btrfs     	rw,noatime,compress=zstd:1,ssd,space_cache=v2,subvol=/@gentoo-snapshots	0 0

/dev/btrfs           	/var/log  	btrfs     	defaults,nodatacow,ssd,space_cache=v2,subvol=/@gentoo-log	0 0

/dev/btrfs           	/var/cache	btrfs     	rw,noatime,nodatacow,ssd,space_cache=v2,subvol=/@gentoo-cache	0 0

/dev/btrfs           	/var/db/repos/gentoo	btrfs     	rw,noatime,compress=zstd:1,ssd,space_cache=v2,subvol=/@gentoo-portage	0 0

/dev/btrfs           	/mnt	   	btrfs     	rw,noatime,compress=none,ssd,space_cache=v2,subvol=/@mnt 	0 0

/dev/btrfs           	/home/dekabu/Media	   	btrfs     	rw,noatime,compress=no,compress-force=no,nodatacow,ssd,space_cache=v2,subvol=/@media 	0 0

/home/dekabu/Media/Music	/home/dekabu/Music	none	bind
/home/dekabu/Media/Videos	/home/dekabu/Videos	none	bind
/home/dekabu/Media/Games	/home/dekabu/Games	none	bind
/home/dekabu/Media/Pictures	/home/dekabu/Pictures	none	bind

Но оно упорно монтируется с compress=zstd:1!!

Вывод команды mount:

/dev/sda3 on / type btrfs (rw,noatime,compress=zstd:1,ssd,discard=async,noacl,space_cache=v2,subvolid=272,subvol=/@gentoo)
devtmpfs on /dev type devtmpfs (rw,nosuid,noexec,relatime,size=10240k,nr_inodes=478627,mode=755)
proc on /proc type proc (rw,nosuid,nodev,noexec,relatime)
tmpfs on /run type tmpfs (rw,nosuid,nodev,size=766696k,nr_inodes=819200,mode=755)
sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime)
debugfs on /sys/kernel/debug type debugfs (rw,nosuid,nodev,noexec,relatime)
tracefs on /sys/kernel/tracing type tracefs (rw,nosuid,nodev,noexec,relatime)
mqueue on /dev/mqueue type mqueue (rw,nosuid,nodev,noexec,relatime)
fusectl on /sys/fs/fuse/connections type fusectl (rw,nosuid,nodev,noexec,relatime)
devpts on /dev/pts type devpts (rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000)
selinuxfs on /sys/fs/selinux type selinuxfs (rw,relatime)
shm on /dev/shm type tmpfs (rw,nosuid,nodev,noexec,relatime)
efivarfs on /sys/firmware/efi/efivars type efivarfs (rw,nosuid,nodev,noexec,relatime)
cgroup2 on /sys/fs/cgroup type cgroup2 (rw,nosuid,nodev,noexec,relatime,nsdelegate)
binfmt_misc on /proc/sys/fs/binfmt_misc type binfmt_misc (rw,nosuid,nodev,noexec,relatime)
/dev/sda1 on /boot/efi type vfat (rw,relatime,fmask=0022,dmask=0022,codepage=437,iocharset=ascii,shortname=mixed,utf8,errors=remount-ro)
/dev/sda3 on /home type btrfs (rw,noatime,compress=zstd:1,ssd,discard=async,noacl,space_cache=v2,subvolid=275,subvol=/@home)
/dev/sda3 on /snapshots type btrfs (rw,noatime,compress=zstd:1,ssd,discard=async,noacl,space_cache=v2,subvolid=273,subvol=/@gentoo-snapshots)
/dev/sda3 on /var/log type btrfs (rw,relatime,compress=zstd:1,ssd,discard=async,noacl,space_cache=v2,subvolid=276,subvol=/@gentoo-log)
/dev/sda3 on /var/cache type btrfs (rw,noatime,compress=zstd:1,ssd,discard=async,noacl,space_cache=v2,subvolid=277,subvol=/@gentoo-cache)
/dev/sda3 on /var/db/repos/gentoo type btrfs (rw,noatime,compress=zstd:1,ssd,discard=async,noacl,space_cache=v2,subvolid=274,subvol=/@gentoo-portage)
/dev/sda3 on /mnt type btrfs (rw,noatime,compress=zstd:1,ssd,discard=async,noacl,space_cache=v2,subvolid=292,subvol=/@mnt)
/dev/sda3 on /home/dekabu/Media type btrfs (rw,noatime,compress=zstd:1,ssd,discard=async,noacl,space_cache=v2,subvolid=295,subvol=/@media)
/dev/sda3 on /home/dekabu/Music type btrfs (rw,noatime,compress=zstd:1,ssd,discard=async,noacl,space_cache=v2,subvolid=295,subvol=/@media)
/dev/sda3 on /home/dekabu/Videos type btrfs (rw,noatime,compress=zstd:1,ssd,discard=async,noacl,space_cache=v2,subvolid=295,subvol=/@media)
/dev/sda3 on /home/dekabu/Games type btrfs (rw,noatime,compress=zstd:1,ssd,discard=async,noacl,space_cache=v2,subvolid=295,subvol=/@media)
/dev/sda3 on /home/dekabu/Pictures type btrfs (rw,noatime,compress=zstd:1,ssd,discard=async,noacl,space_cache=v2,subvolid=295,subvol=/@media)
tmpfs on /run/user/1000 type tmpfs (rw,nosuid,nodev,relatime,size=383348k,nr_inodes=95837,mode=700,uid=1000,gid=1000)
portal on /run/user/1000/doc type fuse.portal (rw,nosuid,nodev,relatime,user_id=1000,group_id=1000)

И даже

umount part
mount -o compress=none part

не помогает! Чёрт знает, что такое…

Единственный действенный метод это

mount -o remount,compress=none

, но выполнять его всякий раз при загрузке системы — моветон. Почему монтирование некорректно, сталкивался кто-нибудь? Оно игнорирует все параметры и ставит дефолтные.

 , , ,

dyonya
()

Ошибка при сборке ftp

Gentoo Linux

Порт net-ftp/ftp

Собирается с ошибкой. Gcc 15 использует стандарт c23 по умолчанию, а в ftp-коде определяется свой костыль для bool, из-за чего конфликт имён. Бредовый баг, но не исправляют. Почему? Стандартным линуксовским ftp-клиентом не пользуются? А если я хочу?..

Пробовал сделать окружение для сборки пакета:

CFLAGS="$CFLAGS -ansi"

Не помогает. Есть может где патчи? Или как это заставить работать?

Перемещено hobbit из general

 , , ,

dyonya
()

Kitty тормозит

Привет, Форум!

Есть у меня Б/У-шный мини-ноутбук от Digma на двухъядерном Celeron’е с 4-мя гигами ОЗУ. Машинка тихоходная, зато мобильность — боже мой! Удобно достать в электричке и работать. И заряд долго держит. Просто песня!

Удачно поставил и настроил Artix Linux, но там мало пакетов в стандартном репозитории, а добавлять от Arch’а или AUR’а не горю желанием: будет срать мне SystemD-шлаком, да и не тру…

Можно опакечивать самому, благо Pacman позволяет. Но вот у меня большАя часть системы — сборная из малоизвестного софта.

И этим мне больше нравится Portage: наглядно, гибко, Unix-way.

Поставил Gentoo и пересобрал мир. Не самоубийца, конечно, и собирал на мощном игровом ноутбуке, потом просто скопировав корень.

-O2 -march=goldmont-plus и кеш процессора…

Ну так вот. Собрал Hyprland и Kitty. Оно всё работает, но уж очень медленно… Терминал открывается, по ощущениям, раза в три дольше, чем в бинарном Artix’е.

Как-то даже странно. Где я недооптимизировал?

 , ,

dyonya
()

Срок жизни строкового литерала в C

Я делаю пространство имён — множество пар «строка - объект». В функции инициализации я создаю статический массив, а потом копирую всю эту память в динамический, вот этак:

init() {
  name_t names[2] = {
    {"name1", obj1},
    {"name2", obj2}
  }
  <...>
  memcpy(global_namespace.names, names, size);
}

Здесь global_namespace — это структура, в которой есть указатель на имена.

А вопрос мой вот в чём: как долго будут жить строковые константы? Потом ведь нужно будет к ним обращаться — не хотелось бы, чтобы затёрлись. Мне думается, что компилятор положит их в неизменяемую память, и на протяжении всей жизни программы можно будет обращаться. Но они объявлены внутри функции и, вроде как, локальные объекты — это не повлияет?

 

dyonya
()

Возможно ли поднять BIND9 через ssh -R?

Привет, форумчане!

Имею в распоряжении локальный сервер, на котором запущен BIND9; успешно обрабатывает запросы из локальной сети. Хотелось бы иметь к нему доступ из Интернета. Пробую перенаправить порт своего виртуального сервера на локалку:

ssh -R 53:localhost:53 VDS

И выдаёт ошибку:

$ dig DOMAIN @VDS_IP
;; communications error to VDS_IP#53: connection refused
;; communications error to VDS_IP#53: connection refused
;; communications error to VDS_IP#53: connection refused

Конфиг на локальной машине с запущенным DNS:

#/etc/bind/named.conf
options {
        directory "/var/bind";
        pid-file "/run/named/named.pid";

        listen-on { any; };

        allow-query { any; };
}
#/etc/resolv.conf
nameserver 127.0.0.1

Конфиг на удалённой машине:

#/etc/resolv.conf
nameserver 127.0.0.1

Может, сталкивался кто с такой проблемой. Помогите, пожалуйста, решить!

 , , ,

dyonya
()

Вирус на Линукс?!

Кликбейт. А может?..

На днях я задавал тут вопрос, почему вдруг моя система стала есть на 300 Мб оперативки больше. Думаю пока, что виновен проприетарный драйвер на видеокарту. Но заметил странную закономерность:

При запуске компьютера потребление — 800 Мб. Немного держится и резко возрастает до 1.1 Гб. И стабильно так. Ну окей: вдруг что-либо запоздало загрузилось… Но стоит мне открыть какую-нибудь утилиту для мониторинга ресурсов (btop, nvtop) — снова стаёт 800 Мб. Прямо мистика какая-то! А закрываю — так же, как при включении, чуть держится и уходит в 1+ Гб.

Какое тому может быть рациональное объяснение? Поведение типичное для какого-нибудь хитрого вируса.

Все программы компилирую из репозитория Генты или github’а. Единственный грешок за мной: пробовал Tlauncher, запускал от рута. Теперь на него подозрения.

Прошу помощи и совета: вирус ли это? Если да — как отладить/излечить? Если нет — откуда такая странность?

 , , ,

dyonya
()

Большое потребление RAM.

Почему-то стало ощутимо больше. Раньше, как только запускал графическое окружение, доходило до 700 Мб, а теперь целый гигобайт. Откуда? Демоны все те же. Разве что драйвера проприетарные от Nvidia накатил — это может влиять?

 , ,

dyonya
()

Как проверить загруженность видеокарты с драйвером Nouveau?

Я говноед счастливый обладатель дискретной карты RTX 3050, мобильная, для ноутбука. Для моих нужд вполне хватало встроенной карточки AMD: видео казала, оконный менеджер рисовала и всё в таком духе. Но вот обидно, что карта лежит мёртвым грузом и пылится.

Поставил Nouveau, так как хочется открытого кода. Но теперь вообще непонятно, как отследить работу видеокарты. Нагруженность, температуру — как вообще убедиться, что драйвера подхватились и карта работает? Компьютер карту видит, но, например, Minecraft запустить, указав в лаунчере дискретную карту, не получилось.

Да и если собирать OBS Studio с флагом nvenc, то требуется nvidia-drivers…

Ну я в итоге сдался и поставил проприетарные дрова. Теперь можно загруженность отслеживать, в том же nvtop’е. В настройках ядра поставил по инструкции с Gentoo wiki: что-то про DRM и framebuffer. Но теперь, при запуске, ещё в консоли на секунду зависает с графическим артефактом внизу — нормально это? С Nouveau такого не было.

В общем, суть моего вопроса: можно ли как-то через sysfs мониторить состояние карты? Дружит ли вообще Nouveau с такими, относительно новыми, картами? Как удостовериться, что оно работает?

 , , ,

dyonya
()

Как вывести текст при запуске динамической библиотеки?

Бо́льшая часть динамических библиотек моей системы исполняемые. Но при попытке выполнить их возникает ошибка Segmentation failed. Подразумевает ли формат ELF (.so) возможность вывода текстовой информации?

Например: запустил файл-библиотеку — получил текст с версией.

Кажется, Windows DLL так могут. Не ручаюсь, но пример где-то видел, как открытие библиотеки выводило версию.

а) Можно ли реализовать на Линукс (ELF)? б) Если да, есть ли возможность сделать это в clang, при создании библиотеки?

 , , ,

dyonya
()

В динамической библиотеке нет имён — в чём магия?

Начинаю на обывательском уровне копаться в устройстве библиотек. Решил для одной (динамической, python runtime) глянуть список имён (через nm) – выпал в осадок: их там нет.

Ведь компилятор берёт имена функций из заголовочного файла и ищет их в библиотеке. А если как-то иначе, если библиотека действительно не содержит именных меток, то как возможны такие чудеса оптимизации? В тексте библиотеки на самом деле сокрыта таблица соответствий имён функций и их адресов в файле?

Ответьте, кто знаком с устройством. Dynamic ELF

 , , ,

dyonya
()

Системный вызов brk не работает.

Пишу на Android (aarch64). 4 Гб оперативки + 2 Гб swap. Захотел проверить, какой предел для расширения кучи (через brk). Пытаюсь увеличить аж на 10 гигов – и всё равно brk возвращает не код ошибки, а новый адрес.

Насколько мне известно, должно возвратиться 0, ежели память не может быть выделена. Во всяком случае, так работает библиотечная обёртка brk(). А если это не так, то возможно ли иным способом проверить выделена ли память по факту? Как?

P.s. прошу про преимущества mmap не распыляться: хочу разобраться с вызовом brk, раз его ещё не выпилили из ядра.

 , ,

dyonya
()

RSS подписка на новые темы