TGViewer
Admin Guides | Сисадмин Admin Guides | Сисадмин @admguides · 12K subscribers
Post #3157 741
Block-layer error injection: как Linux специально ломает I/O

В Linux можно не ждать, пока диск действительно начнёт возвращать ошибки.

Kernel умеет сам подставлять ошибки для операций block layer и проверять, как на них реагируют файловая система, драйвер и сервисы.

1️⃣Включаем механизм
Нужен kernel с CONFIG_BLK_ERROR_INJECTION и смонтированный debugfs:

mount -t debugfs none /sys/kernel/debug


Для устройства появится:

/sys/kernel/debug/block/nvme0n1/error_injection


2️⃣Задаём ошибку
Например, возвращаем BLK_STS_IOERR для одного из десяти чтений:

echo 'add,op=READ,start=0,status=IOERR,chance=10' \
> /sys/kernel/debug/block/nvme0n1/error_injection


Можно ограничить правило диапазоном секторов или выбрать другую операцию:

op=READ
op=WRITE
op=DISCARD


А вместо IOERR можно, например, имитировать BLK_STS_MEDIUM.

3️⃣Что происходит дальше
Ошибка появляется не потому, что NVMe или SATA-диск физически сломался.

Запрос проходит через block layer, там срабатывает правило, и операция завершается с заданным статусом.

Дальше уже интересно смотреть, что делает верхний уровень:

dmesg -w


и параллельно проверять поведение файловой системы, device-mapper, RAID или приложения.

Правила можно удалить:

echo removeall \
> /sys/kernel/debug/block/nvme0n1/error_injection


⚡️Получается довольно мощный способ тестировать recovery: можно воспроизвести I/O error на конкретной операции и диапазоне диска, не дожидаясь реальной аппаратной неисправности.
  • ❤ 6
  • 🔥 2
More from @admguides
  1. Oct 6, 2026Process Builder: зачем Linux хочет уйти от fork()+exec() Классическая схема запуска процес…
  2. Oct 6, 2026Post #3160
  3. Oct 5, 2026💬 Вопрос на собеседовании для сисадмина Давайте разберем один из частых вопросов, который…
  4. Oct 5, 2026🫥 Сервис запустили - пора принимать поздравления и платежи С платежами поможет pay.hot. П…
  5. Oct 5, 2026АЙТИШНИКИ БЕСПЛАТНОЕ ОБУЧЕНИЕ Проект «Terminal» стал крупнейшей библиотекой бесплатного об…
  6. Oct 5, 2026Показан открытый минималистичный браузер Northstar, полностью написанный с нуля на C. Одно…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →