LINUX.ORG.RU

Избранные сообщения yars068

Debian Trixie без systemd

 , , , ,

Лет 10 назад Дебиан «перешёл на systemd», по каковому поводу в сообществе возникло много споров, которые не смолкают и поныне. Появившийся в те годы дистрибутив Devuan, который во всём похож на Дебиан, кроме того, что отвязан от systemd, продолжает обновляться следом за Дебианом.

Лет 5 назад Дебиан «перешёл на Wayland» — такая же история, с тем отличием, что поддержка X11 была сохранена и форка не возникло.

Никогда не видел смысла в использовании Wayland или systemd. X11 и sysvinit работали десятилетиями, претензии к ним сомнительны. Кажется, единственным заметным для пользователя преимуществом systemd является распараллеливание запуска служб, благодаря чему ускоряется загрузка, но это преимущество сходит на нет, когда загрузка происходит не чаще раза в неделю. В реализации X11 якобы накоплены какие-то костыли, но почему это должно заботить пользователя — решительно непонятно (с другой стороны, пользователя заботит отсутствие аналога ssh -X в Wayland, а также, по слухам, проблемы с трансляцией экрана и отваливание случайных функций случайных приложений.

( читать дальше... )

ringill
()

Цифровой рубль

 utf

С 1 сентября вводится в обращение цифровой рубль © (rbc.ru),
изображение коего в кружочке, (ненавистном некоторыми модераторами ЛОРа :) ) есть © (cbr.ru),
а кода UTF нету… И как таперича его обозначать ≠ ₽ графически?

quickquest
()

Отступы или скобочки? - Да!

 , , , ,

Конвертер синтаксиса, который заканчивает главный холивар

«Может, в следующий раз вы посмотрите дважды - и не станете судить о книге по обложке» - Зекора

Спор «скобочки или отступы» старше, чем некоторые из его участников. У этого спора нет судьи и нет призового фонда, но есть ветераны и есть потерянные души, которые однажды написали end в Питоне и с тех пор не могут остановиться. Выиграть этот спор невозможно: стороны спорят о вкусах, а не о свойствах. Поэтому предлагаю - давайте закончим этот спор не победой, а разоружением.

( читать дальше... )

wirewalk
()

Безопасность связки ключей и хранение паролей в Linux-ах...

 gnome-keyring-daemon, ,

Впервые задумался об этом, но ведь пароли у многого прикладного ПО лежат в seahorse и его аналогах которые под капотом используют gnome-keyring-daemon и его аналоги в других DE. После того как юзер включает браузер/pgadmin или какой-то другой софт, который хранит там пароли, то всё хранилище ключей становится доступным любому процессу, работающему от пользователя через dbus. Таким образом, простейший скрипт, запущенный от юзера спокойно прочитает и расшифрует любые ключи. Например, для хромого можно штатными средствами вытащить мастер ключ (чтоб не городить огорода с dbus и убедиться что это правда, можно воспользоваться готовым софтом из репы, например secret-tool lookup application chrome). Вернётся мастер ключ, которым хром уже шифрует свои ключи… Зная алгоритм и секретный ключ которым хромой расшифровывает свои ключи, можно их легко вытащить. Т.е. любой вредоносный код, имея только права пользователя спокойно уведёт все ключи у всего прикладного софта в тот момент, когда пользователь разблокирует связку ключей для любой программы. Всё это напомнило мне театр безопасности и дыру невероятных масштабов. Есть ли какие-то способы бороться с этим ужасом? Кроме как не хранить вообще никаких паролей в софте на Linux.

peregrine
()

Форк Midnight Commander c поддержкой панельных плагинов

 , , , ,

https://www.opennet.ru/opennews/art.shtml?num=66018.

Выпущен консольный файловый менеджер Midnight Commander 6.0.3 (mc6), представляющий собой форк GNU Midnight Commander 4.8.33, расширенный поддержкой панельных плагинов и поставляемый со встроенным PTY-терминалом mcterm. Интегрированный в mc6 фреймворк панельных плагинов позволяет отображать в панелях не только файловые системы, но и контейнеры, Git-репозитории, базы данных и объекты удалённых хранилищ. Код проекта написан на языке Си и распространяется под лицензией GPLv3+. Готовые пакеты подготовлены для Debian и Ubuntu, Fedora и RHEL, а также Arch Linux в форматах DEB, RPM и pkg.tar.zst. Для Gentoo дополнительно предоставлен ebuild для установки через локальный overlay.

В состав выпуска вошли плагины для работы с архивами, FTP/SFTP/FTPS, Samba, Git, Docker, Kubernetes, MongoDB и S3-совместимыми хранилищами. Плагины поддерживают стандартные файловые операции, а переработанная поддержка архивов на базе libarchive заметно (в десятки или сотни раз) ускоряет обработку больших архивов.

Во встроенный текстовый редактор mcedit добавлены возможность сворачивания блоков кода, браузер истории Undo/Redo, средства управление макросами и поддержка сохранения файлов через sudo. В разы улучшена производительность при работе с очень длинными строками.

Просмотрщик mcview получил древовидное представление JSON, YAML и XML, интерактивную фильтрацию содержимого, базовую поддержку отображения разметки Markdown и режим воспроизведения файлов с ANSI-последовательностями.

В состав включён встроенный PTY-терминал mcterm с собственным эмулятором терминала, предназначенный для замены традиционного subshell-механизма.

dataman
()

Ограничиваем сертификат Минцифры

 , ,

Сейчас многие российские сайты, в первую очередь сайты банков, перешли (не по своей воле, но тем не менее) на использование УЦ, которые контролируются Правительством Российской Федерации. Корневые сертификаты этих УЦ (в просторечье - «сертификаты Минцифры»), как правило, по умолчанию не включаются в списки доверенных стандартными иностранными ОС и браузерами. Что будет, если мы их туда включим?

( читать дальше... )

Lrrr
()

Краткий обзор ряда консольных hex редакторов

 

Ну и на десерт: ещё есть hexdumper под названием hex, ориганал которого был написан в 1983-ем году. И он тоже дампит не только ASCII: http://saahriktu.org/hex/hex.png .

saahriktu
()

Небольшая панелька для LOR

 , , ,

Так как мне надоело вручную жонглировать десятками вкладок ЛОРа и запоминать, где я что читал, вручную перематывать вверх-вниз - пришлось сделать такую панельку.

https://ns.fiber-gate.ru/uploads/images/img_1778830448139_d366e4cd.png

Вот она, справа. Подстраивается автоматически под выбранную тему:

https://ns.fiber-gate.ru/uploads/images/img_1778830555340_a770df86.png

https://ns.fiber-gate.ru/uploads/images/img_1778830658445_22500337.png

Правда, подстройку под темы тестировал не очень тщательно.

Все возможности подробно описаны в настройках, во вкладке «Справка»:

https://ns.fiber-gate.ru/uploads/images/img_1778926219370_df3bc737.png

Что умеет панель

Навигация:

▲ и ▼ - перемотка в начало и в конец страницы

💬 - переход к своему последнему комментарию

📢 - переход к последнему комментарию, где вас упомянули

Быстрый доступ к разделам:

📋 Форум и ☰ Трекер: левый клик открывает раздел, правый клик показывает текущие темы с подсветкой изменений и количеством новых комментариев

🔔 Уведомления: левый клик - страница уведомлений, правый клик - модальное окно со списком, на кнопке отображается счётчик непрочитанных

Новые кнопки:

🚫 Чёрный список - добавьте ники авторов, чьи новости больше не хотите видеть. Мини-новости тоже проверяются через загрузку полной страницы

💾 Сохранённые - правый клик сохраняет текущую тему (запоминается позиция скролла и количество комментариев), левый клик открывает список сохранённого с проверкой новых сообщений. Повторный правый клик по кнопке в сохранённой теме обновляет информацию о ней. Автоматически ничего не сбрасывается - всё под вашим контролем. При первом заходе на сохранённую страницу позиция скролла восстанавливается автоматически

Прочее:

Бесконечная лента новостей с авто-подгрузкой при прокрутке

Все данные хранятся в localStorage вашего браузера

Настройки панели (открываются при ПКМ на кнопку профиля): масштаб, видимость рамки, выборочное отключение кнопок

Код буду дорабатывать, обновления здесь: https://github.com/Vladgobelen/NSLorPanel/

Это скрипт для расширения Violentmonkey (или аналогичных - Greasemonkey, Tampermonkey (но не тестировал)).

Основная панель: NSLorPanel.user.js

Дополнение для обработки черного списка авторов: NSLorNewsFilter.user.js

Так же есть настройки: можно выбрать что игнорировать от ника - новости, его сообщения или овтеты на его сообщения.

Модификация для редактора теста. Вставляется отдельным скриптом. Требует для настроек основную панель, но может работать и без нее: NSLorPanel-MarkdownToolbar.user.js

Модификация для подсветки модераторов. Вставляется отдельным скриптом, ищет основную панель, если находит - подхватывает настроки, если основной панели нет - работает без нее безусловно: NSLorModHighlighter.user.js

Поиск по теме в комментариях, плюс изменение кнопок «Мои сообщения» и «Упоминания» - при ПКМ можно искать по другим юзерам (может работать без основной панели): NSLorNavPlus.user.js

ОТДЕЛЬНО сортировка таблиц вне панели, если не нужна панель. Если используеся панель, этот скрипт не нужен: lor-table-sorting.user.js


Исправление блэк темы для смартфонов: lor-black-mobile-fix.user.js


Звуки при уведомлениях: https://github.com/Vladgobelen/NSLorPanel/blob/main/NSLorSound.user.js

Если лениво искать звуки, есть готовые: https://github.com/Vladgobelen/NSLorPanel/raw/refs/heads/main/lorSounds.zip


Пишите чего если кому нужно еще добавить исправить - добавлю и исправлю, мне не жалко.

Перемещено maxcom из talks

LightDiver
()

Настраиваем Asterisk на собственном VPS для голосовых/видео вызовов и текстовых сообщений

 , ,

Ниже — руководство + полный установочный скрипт для Debian 12, собирающий Asterisk 22.5.1 из исходников, включающий TLS + SRTP, 3 абонента (1001–1003), блокировку анонимов, короткие сообщения (SIP MESSAGE) для Linphone, и видеозвонки по H.264.

Скрипт автоматически учитывает NAT: если задать локальную сеть — пропишет external_* и local_net; если не задавать — считает, что сервер не за NAT.

( читать дальше... )

unclestephen
()

Документация к языкам программирования

 , , , ,

Всевозможные учебники и книги - это хорошо, но обычно их предлагают купить и часто не совсем дёшево, даже если они описывают базовый уровень. Бесплатным решением, очевидно, является официальная документация. Когда я открыл документацию к python, я был приятно удивлён, что она написана практически как учебник. Для Java вроде бы тоже всё относительно неплохо в этом плане, хотя хотелось бы отдельный оффлайновый pdf.

Мне захотелось скачать себе документацию в подобном виде для C и C++. Зашёл на их официальные сайты, там описание стандарта предлагают получить на сайте ISO за немалые суммы денег. Да и само описание стандарта далеко не для обучения. Хорошо, подумал я, попробую тогда посмотреть документацию к одной из реализаций языка - GCC-CPP, и вижу, что описанное там тоже вовсе не подходит для обучения. Даже описания типов и примеров объявления нет (может плохо искал, но в заголовках не заметил).

Нет, это не тред «подскажите книгу по Сям», таких для начинающих я и сам могу гору насоветовать.

Вопрос следующий: существует ли нормальная доступная бесплатная документация по которой можно изучать C, C++? Официальная документация по другим языкам была бы тоже интересна.


Update

C, C++
Online-ресурсы и учебные пособия для начинающих:

Как дополнение: Рабочая версия стандарта C++14 от 19 ноября 2014 г. (с официального сайта стандарта)


Fortran


Python
В дополнение к официальной документациипереводу руководства Python 3.1):


Object Pascal. Lazarus

Перемещено Klymedy из talks

grem
()

Предварительный этап в Makefile

 ,

Приветствую.

Есть следующая структура каталогов:

.
├── interrupts
│   ├── handlers
│   │   ├── file.a65
│   │   └── Makefile // Вложенный
│   └── Makefile // Вложенный
├── defines.mk
├── common.mk
└── Makefile // Корневой

В первую очередь, файл defines.mk:

PROJECT_NAME = xxx

PROG_AS ?= ca65
PROG_LD ?= ld65
PROG_DOX ?= doxygen
PROG_RM ?= rm -f
PROG_MV ?= mv -f
PROG_MKDIR ?= mkdir -p
PROG_FIND ?= find
PROG_MAKE ?= make

DIR_BUILD ?= build

Файл common.mk

TARGET_SUBMAKE = $(shell \
	$(PROG_FIND) \
	. \
	-mindepth 2 \
	-type f \
	-name Makefile \
	-printf '%h\n' \
)

TARGET_SRC = $(shell \
	$(PROG_FIND) \
	. \
	-maxdepth 1 \
	-type f \
	-name '*.a65' \
	-printf '%f\n' \
)

TARGET_OBJ = $(patsubst \
	%.a65, \
	$(DIR_BUILD)/$(PROJECT_NAME)/%.o, \
	$(TARGET_SRC) \
)

.PHONY: all $(PROJECT_NAME) $(TARGET_SUBMAKE)

$(DIR_BUILD)/$(PROJECT_NAME)/%.o : %.a65
	$(PROG_MKDIR) \
	    $(DIR_BUILD)/$(PROJECT_NAME)
	$(PROG_AS) \
	    -o $@ \
	    $<

$(TARGET_SUBMAKE):
	$(PROG_MAKE) \
	    -C $@ \
	    MAKEFILE_DEF=$(MAKEFILE_DEF) \
	    MAKEFILE_COMMON=$(MAKEFILE_COMMON) \
	    DIR_BUILD=$(DIR_BUILD)

$(PROJECT_NAME): $(TARGET_SUBMAKE) $(TARGET_OBJ)

all: $(PROJECT_NAME)

Корневой Makefile

MAKEFILE_DEF    := $(CURDIR)/defines.mk
MAKEFILE_COMMON := $(CURDIR)/common.mk

include $(MAKEFILE_DEF)
include $(MAKEFILE_COMMON)

.PHONY: doc clean

all: doc

doc:
	$(PROG_DOX) Doxygen

clean:
	$(PROG_RM) $(DIR_BUILD)/$(PROJECT)/*.o

Вложенные Makefile (все одинаковые)

include $(MAKEFILE_DEF)
include $(MAKEFILE_COMMON)

Итак, в чём вопросы:

1

Оно сейчас работает. Но меня не устраивает, что оно на каждый файл вызывает создание целевого каталога (см.

$(DIR_BUILD)/$(PROJECT_NAME)/%.o : %.a65
	$(PROG_MKDIR) \
	    $(DIR_BUILD)/$(PROJECT_NAME)
	...

). Что я пытался сделать: а) Вынести mkdir в отдельный сегмент и вызывать как $(DIR_BUILD)/$(PROJECT_NAME)/%.o : %.a65 | build-dir
б) Вынести mkdir в отдельный сегмент и вызывать тут: $(PROJECT_NAME): build-dir $(TARGET_SUBMAKE) $(TARGET_OBJ)

Оба варианта приводят к тому, что при вызове корневого make он просто создаёт директорию и даже не пытается заходить в дочерние Makefile.

2

Приветствуется общая критика. Я не эксперт в make, соответственно буду рад услышать, что я делаю не так.

P.S. Сразу уточню насчёт build директории. «Корневой» makefile на самом деле тоже не корневой и его вызывают выше с

DIR_BUILD := $(CURDIR)/build

make -C code/xxx DIR_BUILD=$(DIR_BUILD)
PPP328
()

Основы реверс-инжиниринга Android-приложений

 ,

Основы реверс-инжиниринга Android-приложений

Как известно, Android — это тоже Linux, основной особенностью которого является то, что он позволяет устанавливать приложения только на Java/Kotlin в формате apk, запускаемые через свою реализацию JVM — своего рода песочницу. Раз уж это Linux, то и запускать его можно через стандартные средства — LXC-контейнеры, как это делается в том же Waydroid. Главный плюс такого подхода в отличие от реального устройства — полный доступ к файловой системе, что эквивалентно рут-доступу. На реальном устройстве получить рут-права с помощью Magisk несложно, но это приводит к утрате данных вместе с ключом шифрования от sd-карты, хотя их можно и восстановить, если был бекап. Однако большей проблемой является то, что из-за этого перестают запускаться те же банковские приложения…

( читать дальше... )

rtxtxtrx
()

X11 robustness: DRI3 без аппаратного ускорения

 , , ,

X11 robustness: DRI3 без аппаратного ускорения

Уже больше 5 лет как использую разные GPU от AMD и сталкиваюсь с разнообразными проблемами, приводящими к его зависанию. К сожалению, в современном линуксовом десктопе, особенно на AMD зависание GPU зачастую не получается обработать прозрачно для софта. В лучшем случае могут попортиться данные, связанные с активными задачами, в худшем - gpu вообще становится неработоспособен до снятия питания (этим грешили некоторые APU на gfx9)

Успешный GPU Reset

Если в случае с неработоспособным GPU другого выхода, кроме как отказ от него нет, дискретные GPU обычно могут успешно пройти сброс.

На моём опыте, с rx580 это приводило к превращению всего содержимого VRAM в шум, на котором слегка можно было различить контуры ранее находившихся там текстур.

На rdna2 же обычно содержимое vram остаётся целым, однако не всегда. С некоторой вероятностью обнаруживается периодический мусор после сброса, обычно в этом случае попытка использовать работающие с GPU приложениями приведёт к повторному зависанию. В общем, никаких гарантий нет и по хорошему все GPU клиенты должны пересоздать все контексты с нуля

( читать дальше... )

mittorn
()

EasyEffects не нужно, или PipeWire для продвинутых: часть 4

 , ,

Спатиалайзер для наушников

Вы когда-нибудь задумывались, чем прослушивание музыки через наушники, отличается от прослушивания музыки через колонки? Основное отличие – когда мы в наушниках, то левое ухо слышит только звук левого наушника (левый стерео канал), и совсем не слышит звук правого. И наоборот. Когда мы слушаем колонки, то оба уха слышат обе колонки, но по-разному. Из-за этого простого факта, восприятие стерео-сцены в наушниках и через колонки, радикально отличается.

И возникает существенная проблема – а на что должна быть расчитана запись, на прослушивание в наушниках, или в колонках? Индустрия выбирает колонки, как основной источник звука, и все делается в расчете на них. А в наушниках мы будем слышать неправильное стерео, сильно искаженное.

Но у нас же есть pipewire, поэтому не беда, сейчас мы это исправим! В этой и следующей статье, мы заставим звучать наушники как колонки, а колонки как наушники (ну почти)!

( читать дальше... )

James_Holden
()

EasyEffects не нужно, или PipeWire для продвинутых: часть 1

 , ,

ВСТУПЛЕНИЕ

Звуковая система PipeWire принесла, без преувеличения, революцию в мир десктопно-мультимедийного Linux. Наконец то эта ОС получила продуманную, сделанную по уму понимающими в теме людьми, и сделанную качественно звуковую систему. Многие ее возможности присутствовали и раньше, в других более старых звуковых системах, но в PipeWire они собраны воедино и сформировали целую единую платформу, на которой можно реализовать огромное количество самых разных задач.

Но в пользовательской среде, эта революция практически не заметна, часто можно встретить мнение вида «ну играет ютуб и играет, мне хватает». Поэтому я решил сделать небольшой цикл статей, посвященный более продвинутому использованию PipeWire, раскрывающему его, без преувеличения, поразительные возможности. (Ну и чтобы изучить их самому в процессе, хехехе).

( читать дальше... )

James_Holden
()

EasyEffects не нужно, или PipeWire для продвинутых: часть 2

 , ,

В первой части мы создали конфиг-файл, который добавляет 15-полосный эквалайзер в граф PipeWire. Теперь разберем вопрос, а как же изменять его параметры на лету, без перезапуска PipeWire. Вопрос очень животрепещущий, редакция завалена письмами с ним. ))

В этой части мы разберем задачу на «низком» уровне CLI-утилит. На этой базе несложно сделать любой GUI-фронтенд, который позволит управлять параметрами уже из GUI.

( читать дальше... )

James_Holden
()

GCLI 2.6.0

 , , , ,

GCLI 2.6.0
Группа Разработка

4 января, после более пяти месяцев разработки, состоялся выпуск 2.6.0 консольной утилиты GCLI, написанной на языке C и распространяемой по лицензии BSD-2. Утилита предназначена для взаимодействия с API нескольких популярных сервисов хостинга Git-проектов и позволяет создавать, просматривать и взаимодействовать с проблемами, запросами на слияние и метками и комментариями к ним; проверять состояние CI и конвейеров, и многое другое.
И, в отличие от GitHub CLI, GCLI поддерживает не только API GitHub, но и API GitLab, Gitea и, экспериментально, Bugzilla.

( читать дальше... )

>>> Список изменений версии 2.6.0 на GitHub (github.com)

dataman
()

EasyEffects не нужно, или PipeWire для продвинутых: часть 3

 , ,

Во второй части мы разобрали вопрос, как управлять параметрами эффектов в реальном времени, без перезапуска PipeWire.

Теперь рассмотрим, как можно добавить сторонний плагин, реализующий эффект, который не встроен в PipeWire, и как управлять его параметрами.

( читать дальше... )

James_Holden
()

EVO870, «187 Reported_Uncorrect» и обнуление

 870evo, , , ,

Стал у меня в начале (склероз: не этого, прошлого) года сбоить EVO870 на терабайт. Заметил по периодическим сбоям на ровном месте, оказывается — ошибки чтения. На нём была только сама ОС и игры, так что заменил без особых потерь. Симптомы простые — в нескольких местах на диске обнаружились локации, откуда ничего не читалось без ошибки. Т.е. никаких этих вот «ssd сбоит, но даёт прочитать хотя бы» — нет, тупо битые файлы, копирование виснет, а «187 Reported_Uncorrect» растёт как на дрожжах. Часть этих зон пришлась на файлы с играми, а некоторые на содержимое /usr. Но поскольку ничего ключевого затронуто не было, то я долго думал, что просто Steam лажает, например.

Если посмотреть SMART, то было примерно так:

ID# ATTRIBUTE_NAME          FLAG     VALUE WORST THRESH TYPE      UPDATED  WHEN_FAILED RAW_VALUE
  5 Reallocated_Sector_Ct   0x0033   045   045   010    Pre-fail  Always       -       606
  9 Power_On_Hours          0x0032   098   098   000    Old_age   Always       -       9136
 12 Power_Cycle_Count       0x0032   098   098   000    Old_age   Always       -       1995
177 Wear_Leveling_Count     0x0013   099   099   000    Pre-fail  Always       -       3
179 Used_Rsvd_Blk_Cnt_Tot   0x0013   045   045   010    Pre-fail  Always       -       606
181 Program_Fail_Cnt_Total  0x0032   100   100   010    Old_age   Always       -       0
182 Erase_Fail_Count_Total  0x0032   100   100   010    Old_age   Always       -       0
183 Runtime_Bad_Block       0x0013   045   045   010    Pre-fail  Always       -       606
187 Reported_Uncorrect      0x0032   098   098   000    Old_age   Always       -       14609
190 Airflow_Temperature_Cel 0x0032   064   055   000    Old_age   Always       -       36
195 Hardware_ECC_Recovered  0x001a   199   199   000    Old_age   Always       -       14609
199 UDMA_CRC_Error_Count    0x003e   099   099   000    Old_age   Always       -       3
235 Unknown_Attribute       0x0012   099   099   000    Old_age   Always       -       9
241 Total_LBAs_Written      0x0032   099   099   000    Old_age   Always       -       4293672984


А потом собстсвенно логи последних из этих 14609 ошибок. Примерно так (если что, здесь и выше значения уже после моих сегодняшних экспериментов, на момент начала было где-то 13 тыщ):
Error 14609 occurred at disk power-on lifetime: 9135 hours (380 days + 15 hours)
  When the command that caused the error occurred, the device was active or idle.

  After command completion occurred, registers were:
  ER ST SC SN CL CH DH
  -- -- -- -- -- -- --
  40 51 08 90 69 47 40

  Commands leading to the command that caused the error were:
  CR FR SC SN CL CH DH DC   Powered_Up_Time  Command/Feature_Name
  -- -- -- -- -- -- -- --  ----------------  --------------------
  e1 00 0f 00 00 00 40 00      01:22:44.593  IDLE IMMEDIATE
  ef 03 46 00 00 00 40 00      01:22:44.593  SET FEATURES [Set transfer mode]
  ef 02 00 00 00 00 40 00      01:22:44.593  SET FEATURES [Enable write cache]
  e1 00 02 00 00 00 40 00      01:22:44.593  IDLE IMMEDIATE
  ec 00 01 00 00 00 40 00      01:22:44.593  IDENTIFY DEVICE

Error 14608 occurred at disk power-on lifetime: 9135 hours (380 days + 15 hours)
  When the command that caused the error occurred, the device was active or idle.

  After command completion occurred, registers were:
  ER ST SC SN CL CH DH
  -- -- -- -- -- -- --
  00 51 01 10 00 00 00  Error:  at LBA = 0x00000010 = 16

  Commands leading to the command that caused the error were:
  CR FR SC SN CL CH DH DC   Powered_Up_Time  Command/Feature_Name
  -- -- -- -- -- -- -- --  ----------------  --------------------
  60 08 00 90 69 47 00 00      01:22:44.005  READ FPDMA QUEUED
  60 08 00 88 69 47 00 00      01:22:44.005  READ FPDMA QUEUED
  60 08 00 80 69 47 00 00      01:22:44.005  READ FPDMA QUEUED
  60 08 00 78 69 47 00 00      01:22:44.005  READ FPDMA QUEUED
  60 08 00 70 69 47 00 00      01:22:44.005  READ FPDMA QUEUED

Error 14607 occurred at disk power-on lifetime: 9135 hours (380 days + 15 hours)
  When the command that caused the error occurred, the device was active or idle.

  After command completion occurred, registers were:
  ER ST SC SN CL CH DH
  -- -- -- -- -- -- --
  00 51 08 00 6a 47 40  Error:  at LBA = 0x00476a00 = 4680192

  Commands leading to the command that caused the error were:
  CR FR SC SN CL CH DH DC   Powered_Up_Time  Command/Feature_Name
  -- -- -- -- -- -- -- --  ----------------  --------------------
  60 00 00 00 69 47 40 00      01:22:11.833  READ FPDMA QUEUED
  60 00 08 00 68 47 40 01      01:22:11.833  READ FPDMA QUEUED
  60 00 00 00 67 47 40 00      01:22:11.833  READ FPDMA QUEUED
  60 00 00 00 66 47 40 00      01:22:11.833  READ FPDMA QUEUED
  60 00 00 00 65 47 40 00      01:22:11.833  READ FPDMA QUEUED


Погуглил я тогда интернеты, и нашёл, что на серию 870EVO есть жалобы по всему развитому миру. То ли кремний самсунгу завезли грязный, то ли чихнул кто в стерильной зоне, но чипы памяти вышли сбойные, и SSD стали отказывать по моему сценарию.

Ну я его на полочку положил, да и как-то забыл, благо гарантия до 2026. Вдруг что ещё придумаю. Ну вот сегодня решил придумать. Подключил его, стал делать смарт-тесты. И длинный, и короткий завершались досрочно с ошибкой чтения:

Self-test execution status:      ( 121)	The previous self-test completed having
					the read element of the test failed.

...

SMART Self-test log structure revision number 1
Num  Test_Description    Status                  Remaining  LifeTime(hours)  LBA_of_first_error
# 1  Short offline       Completed: read failure       80%      9137         10544288
# 2  Extended offline    Completed: read failure       90%      9137         10544288
# 3  Extended offline    Completed: read failure       90%      9136         10544288
# 4  Short offline       Completed: read failure       80%      9136         10544288
# 5  Short offline       Completed: read failure       80%      9136         10544288


Стал смотреть badblocks. Он довольно резво начал выплёвывать номера:
smacker@Ideapad510 ~ $ sudo badblocks -v /dev/sdc
Checking blocks 0 to 976762583
Checking for bad blocks (read-only test): 5272132
5272144
5272145
5272146
5272147
5274296
5274297
5274298
5274299
5274516
5274517
5274518
5274519
5276096
5276097
5276098
5276099
5279436
...

Ну я попробовал «полечить» через hdparm (hdparm --repair-sector 5272144 --yes-i-know-what-i-am-doing /dev/sdc), не преуспел. Он снова стал всплывать. Всё это время значение в поле 187 SMART только росло.

Ну тут я психанул и забил диск терабайтом нулей с помощью dd. И что же? А рост закончился. Я запустил badblocks... и он прошелестел всем диском, и ничего не нашёл. Я запустил тест SMART... и он тоже завершился удачно:

SMART Self-test log structure revision number 1
Num  Test_Description    Status                  Remaining  LifeTime(hours)  LBA_of_first_error
# 1  Short offline       Completed without error       00%      9139         -
# 2  Short offline       Completed without error       00%      9138         -
# 3  Short offline       Completed: read failure       80%      9137         10544288
# 4  Short offline       Completed: read failure       80%      9137         10544288
# 5  Extended offline    Completed: read failure       90%      9137         10544288
# 6  Extended offline    Completed: read failure       90%      9136         10544288
# 7  Short offline       Completed: read failure       80%      9136         10544288
# 8  Short offline       Completed: read failure       80%      9136         10544288


Сейчас статистика застыла на таких значениях:
Self-test execution status:      (   0)	The previous self-test routine completed
					without error or no self-test has ever 
					been run.

ID# ATTRIBUTE_NAME          FLAG     VALUE WORST THRESH TYPE      UPDATED  WHEN_FAILED RAW_VALUE
  5 Reallocated_Sector_Ct   0x0033   045   045   010    Pre-fail  Always       -       606
  9 Power_On_Hours          0x0032   098   098   000    Old_age   Always       -       9139
 12 Power_Cycle_Count       0x0032   098   098   000    Old_age   Always       -       1996
177 Wear_Leveling_Count     0x0013   099   099   000    Pre-fail  Always       -       4
179 Used_Rsvd_Blk_Cnt_Tot   0x0013   045   045   010    Pre-fail  Always       -       606
181 Program_Fail_Cnt_Total  0x0032   100   100   010    Old_age   Always       -       0
182 Erase_Fail_Count_Total  0x0032   100   100   010    Old_age   Always       -       0
183 Runtime_Bad_Block       0x0013   045   045   010    Pre-fail  Always       -       606
187 Reported_Uncorrect      0x0032   098   098   000    Old_age   Always       -       15972
190 Airflow_Temperature_Cel 0x0032   070   047   000    Old_age   Always       -       30
195 Hardware_ECC_Recovered  0x001a   199   199   000    Old_age   Always       -       15972
199 UDMA_CRC_Error_Count    0x003e   099   099   000    Old_age   Always       -       3
235 Unknown_Attribute       0x0012   099   099   000    Old_age   Always       -       10
241 Total_LBAs_Written      0x0032   099   099   000    Old_age   Always       -       6251131313


И вроде бы больше ничего не происходит (например, поле 187 не изменилось уже после прохода badblocks по всему диску).

А теперь, уважаемые знатоки — внимание, вопрос: диск выздоровел (перемапил сбойные области, я уж не знаю, т.к. «5 Reallocated_Sector_Ct» застыл на 606), или ему временно полегчало напоследок, чтобы он мог позвать близких к смертному одру?

Smacker
()

Случилась беда с KRoN73

 ,

Группа Linux.org.ru

KRoN73 RIP

Всё написанное ниже уже неактуально :(

Друзья. Под новогодние праздники (с 29 на 30) случилась ужасная беда со старейшим участником форума - KRoN73.

( Подробности... )

Я никогда не делал подобные обращения, поэтому не знаю, что писать и немного (на самом деле много) растерян.

( Как помочь... )

>>> Оригинальный тред (linux.org.ru)

shell-script
()