Задать вопрос
Neuroware
@Neuroware
Программист в свободное от работы время

Есть ли файловая система работающая с битыми дисками?

Немного коряво сформулировал вопрос, суть в следующем, допустим есть некий HDD перетерпевший в своей жизни многое и у него много явно битых и медленных секторов, контроллеры умеют сильно битые сектора убирать из обслуживания, но делают это лишь тогда когда его заставят и "список" таких битых секторов у них обычно ограничен. Пока единственное рабочее решение нашел в самопальном софте, который забивает весь диск одинаковыми файлами, потом сверяет их всех с оригиналом, всех кто плохо считался оставляет, остальные удаляет, в результате все битые сектора окажутся "внутри" файлов, которые вечно будут валяться на диске. У этого подхода куча минусов, к примеру можно забыть про дефрагментацию, ее делать будет нельзя и т.п.
Вопрос в том, есть ли файловая система, которая поддерживает такие списки или ставит себе какие то отметки, что мол сюда лучше не писать?
p.s. по поводу выкинуть отвечу сразу - желание выкинуть сразу отпадает, когда вижу ценники но новые винты, а 2TB стоит не мелко.
  • Вопрос задан
  • 1550 просмотров
Подписаться 3 Оценить Комментировать
Решения вопроса 2
контроллеры умеют сильно битые сектора убирать из обслуживания, но делают это лишь тогда когда его заставят
Это всё сказки, повествующие о программах, которые переразмечают бедблоки. На деле, если вы заглянете в спецификацию AHCI, то не обнаружите там ничего подобного. Нет таких команд в протоколе. Контроллер должен сам об этом позаботится. Если на диске появились бедблоки (не просто запись в S.M.A.R.T., а именно нечитаемые области), то это означает лишь то, что резервная область закончена и переразмечать сектора уже некуда.

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

Но если вас не смущает скорая смерть диска и потеря данных, то да, такие файловые системы есть. Например ext4. mkfs.ext4 имеет параметр -l, после которого можно указать файл, сгенерированный программой badblocks. Так же mkfs.ext4 может сама проверить диск перед созданием файловой системы. Битые сектора будут игнорироваться.

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

UPD: Что бы продлить жизнь такому диску, можно определить сбойные области. Обрамить их несколькими гигабайтами (при большом объёме диска, из-за плотности записи лучше несколькими десятками) с каждой стороны. Объединить близколежащие области. Полученные диапазоны вообще не размечать. В итоге должно получится что-то вроде 200 гигабайт вначале не используемые, а затем раздел. Это позволит минимизировать количество перемещений головок над сбойной областью, что замедлит деградацию.
Но этот способ не подходит, если сбойные сектора распределены по всему объему диска.
Ответ написан
Попробуйте отформатировать диск программой HDD Low Level format, потом прогоните программой Victoria со включенным режимом remap, она умеет строить график скорости чтения поверхности, если всё будет очень плохо, прогоните ещё раз. Если стало более-менее приемлемо, винт не отключается, не издаёт странных звуков и на графике нет провалов до нуля, форматируйте его в любую файловую систему и пользуйтесь.

Был такой опыт - развалился у меня под линуксом винт, возникла огромная куча бэдов. Проверка длилась несколько часов, но после проверки я смог скопировать с винта абсолютно всё что там у меня было. Файловая система была ext4.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 3
sbh
@sbh
Хоть вы и написали уже ответ по поводу выкинуть, но все равно не могу не написать ИМХО.
Такой подход к решению проблемы - кривой костыль.
Можно провести аналогию с автомобилем. Когда у вас 2 и 4 передачи не работают но в принципе ездить можно.
С таким подходом вы будете терять файлы в том числе. Причем внезапно.
Подкопите денег и купите новый диск. Сектора умирают не просто так и со временем у вас диск умрет целиком.
Ответ написан
Комментировать
opium
@opium
Просто люблю качественно работать
2Тб бушний в хорошем состоянии стоит 2-3 тысячи рублей
Ответ написан
Merdue
@Merdue
Пенсионер бывший АЙТИ инженер менеджер.
Victoria или MHDD, но если много битых секторов или блоков то осторожно забекапьте все данные которые будут доступны это может быть длительный процессс и диск и дальше продолжит сыпаться наступает энтропия! Его можно только выкинуть!
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы