fsck не может выполнить fsck (не удалось установить флаги суперблока)

Вопрос или проблема

После некорректного отключения устройства на базе SD-карты я извлекла SD-карту, чтобы fsck корневую файловую систему. Это привело к вариациям следующего:

e2fsck 1.43.1 (08-Jun-2016)
/dev/sdc2: восстановление журнала
Флаг needs_recovery суперкнопки очищен, но журнал содержит данные.
Пробежать журнал все равно<y>? нет
Очистить журнал<y>? нет
e2fsck: не удалось установить флаги суперкнопки на /dev/sdc2

Здесь я ответила “нет” оба раза, но нет ни одной последовательности “да/нет”, которая не привела бы к тому же результату.

Файловая система может быть смонтирована и на поверхностный взгляд выглядит нормально; она также работает хорошо на устройстве, и это корневая файловая система (фактически, как оказалось, не совсем нормально, см. комментарии; кратко: некоторые безвозвратно поврежденные директории).

Я использовала dd, чтобы скопировать раздел (8 ГБ) в файл, и попыталась запустить fsck на этом файле. Интересно:

e2fsck 1.43.1 (08-Jun-2016)
plush.rootfs: восстановление журнала
Очистка сиротского inode 18290 (uid=0, gid=0, mode=0100644, size=34096)
Очистка сиротского inode 18270 (uid=0, gid=0, mode=0100644, size=38916)
Очистка сиротского inode 18250 (uid=0, gid=0, mode=0100644, size=1128076)
Очистка сиротского inode 11411 (uid=0, gid=0, mode=0100644, size=293108)
Установка количества свободных inode на 406127 (было 408580)
Установка количества свободных блоков на 1305622 (было 1347486)
plush.rootfs: чисто, 60209/466336 файлов, 604906/1910528 блоков (проверить после следующего монтирования)

Последующая команда fsck прошла успешно, образ может быть смонтирован, и fsck -f после этого также проходит.

Но файловая система на карте, с которой был создан образ, по-прежнему имеет ту же проблему — за исключением того, что systemd-fsck, который происходит во время загрузки, фиксирует файловую систему как “чистую”. Позже, однако, при правильном завершении работы, когда я извлекла карту и повторно попыталась запустить fsck с другого компьютера, появилась та же ошибка.

Каждый раз, когда оригинал смонтирован на другой машине, syslog фиксирует:

kernel: EXT4-fs (sdc2): 4 сиротских inode удалены
kernel: EXT4-fs (sdc2): восстановление завершено

Поскольку у меня все данные сохранены, я открыта к любым предложениям. Я могла бы просто забыть об этом и перезаписать раздел с, по-видимому, исправленного образа, но это не кажется очень удовлетворительным решением, так как подразумевает, что fsck криптически не смог решить, казалось бы, незначительную проблему.

Я подозреваю, что это превратится в “запрос на официальную документацию” касательно таких вещей, как needs recovery_flag (или просто “Что это значит?”), так что любые предложения в этом направлении будут оценены.

Я только что столкнулась с той же проблемой. После устранения неисправности с мейнтейнером e2fsck мы поняли, что SD-карта была повреждена. Она принимала запись без ошибок, но на самом деле данные не записывались на карту. SD-карта фактически была только для чтения.

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

Сообщение e2fsck unable to set superblock flags означает, что он попытался записать флаги в суперкнопку, чтобы пометить журнал как обработанный, что произошло без ошибок, но когда он снова попытался прочитать суперкнопку, она все еще указывала на то, что журнал необходимо воспроизвести. Другими словами, изменения, записанные в суперкнопке, не были сохранены на носителе.

Карта, которую я использую и у которой возникла эта проблема, это Samsung Evo 16GB microSD, что я упоминаю, на случай если это распространенная проблема для этих карт.

Я смогла проверить это, использовав dd, чтобы записать 4096 байт из /dev/zero на карту в блок 0, затем я прочитала данные с карты и вместо того, чтобы получить все нули, как следовало бы, я по-прежнему получила оригинальную неизмененную суперкнопку ext4.

Я сейчас переношу данные на новую карту и затем посмотрю, смогу ли я получить замену от Samsung, которые, как кажется, предлагают 10-летнюю гарантию на SD-карты.

ОБНОВЛЕНИЕ: Samsung заменил 16-гигабайтную карту на 32-гигабайтную из той же серии Evo, так что жаловаться мне не на что!

Я знаю, что это старая тема, но я подумала, что могла бы предложить немного информации.

Похоже, что это способ, которым SD-карты умирают естественным образом. Количество циклов чтения/записи, которое могут выдержать SD-карты, существенно меньше, чем у большинства других сред, которые считаются ‘чтением/записью’. Когда это исчерпано, карта перейдет в режим только для чтения, но не сообщит вам об этом. Многие вещи подумают, что они записывают на карту благодаря кэшированию операционной системы и т.п., но ничего никогда не фиксируется.

Отличный способ убить SD-карту – это смонтировать её как раздел подкачки или что-то с интенсивным вводом-выводом. Вы будете удивлены, как быстро вы сможете убить карту таким образом. Я обнаружила, что работа к Knoppix с SD-карты или USB-флэш-диск продлится всего месяц или два, в зависимости от качества карты и интенсивности использования Knoppix. (С тех пор я переключилась на запуск Knoppix с USB SSD-диска, который работает уже несколько лет).

В моем случае проблема исчезла после использования карты с другим адаптером microSD-USB. После этого она также работала нормально с первым адаптером. Я предполагаю, что в моем случае это была проблема плохого контакта.

У меня была та же проблема, невозможно смонтировать, невозможно прочитать суперкнопку, невозможно установить флаги суперкнопки, невозможно использовать резервную копию суперкнопки.

Проблема, с которой я столкнулась, заключалась в переключателе блокировки записи на адаптере карты 😉

Моя проблема заключалась в старом считывателе SD-карт с картой, которая была слишком большой для считывателя. У меня была карта на 64 ГБ, а считыватель не поддерживал больше 32 ГБ.

Дважды я сталкивалась с аналогичными проблемами с microSD, и оказалось, что проблема была в адаптере SD, а не в microSD. Замена на другой адаптер SD, даже когда первый адаптер был той же марки, что и microSD, решила проблему с невозможностью записать флаги суперкнопки и возникновением ошибок ввода-вывода.

Ответ или решение

Когда вы сталкиваетесь с ошибкой fsck, сообщающей о том, что "не удалось установить флаги суперблока", это может быть вызвано рядом причин, каждая из которых требует тщательного анализа. Следует рассмотреть следующие аспекты и возможные решения:

  1. Проблемы с SD-картой и адаптером:

    • Если SD-карта или адаптер повреждены или работают неправильно, это может вызвать проблемы с записью. Проверьте, не активирован ли переключатель защиты от записи на адаптере. Попробуйте использовать другой адаптер или даже другой компьютер, чтобы исключить возможность проблем с устройством, к которому подключён кардридер.
  2. Недостаток циклов записи:

    • Как упоминали другие пользователи, SD-карты имеют ограниченное количество циклов записи. Если карта исчерпала свой ресурс, она может перейти в режим только для чтения, даже если операционная система не уведомляет об этом. Попробуйте выполнить тест на чтение и запись, например, используя команду dd, чтобы записать данные и сразу же прочитать их обратно. Если данные не совпадают, это указывает на проблему с записью.
  3. Использование нового кардридера:

    • Некоторые пользователи заметили, что смена кардридера или использование другого USB-адаптера может решить проблему. Это может быть связано с плохими контактами или несовместимостью с определёнными картами.
  4. Коррупция файловой системы:

    • Возможно, на SD-карте были повреждены или потеряны данные в результате неправильного завершения работы устройства. Если вы можете создать образ диска и выполнить fsck на этом образе, как вы уже сделали, это может помочь. Если файловая система на образе исправна, вы можете использовать её для восстановления данных или повторного форматирования карты.
  5. Обновление и использование более новых версий утилит:

    • Проверьте, используете ли вы последнюю версию e2fsck или других утилит для проверки файловых систем. Иногда обновление программного обеспечения может исправить некоторые нестабильности и ошибки.
  6. Замена SD-карты:

    • Если все вышеперечисленные меры не дают результатов, возможно, стоит рассмотреть замену SD-карты. Поскольку у вас есть резервные копии данных, вы можете безопасно перейти на новую карту.
  7. Обращение к производителю:

    • Если ваша SD-карта всё ещё находится на гарантии, обратитесь к производителю, возможно, она подлежит замене. Многие производители, как Samsung, предлагают гарантии на свои карты, что делает их замену практичной.

В итоге, ваше решение зависит от состояния SD-карты и доступных вам ресурсов. Не забывайте регулярно создавать резервные копии важных данных, чтобы избежать потерь в будущем.

Оцените материал
Добавить комментарий

Капча загружается...