Доброго времени ! Столкнулся с неприятностью : Имею "домашний" сервачок (для своих эксперементов) на котором кртятся веб сервер , впн сервер , прокси сервер , фтп сервер , самба сервер , торрент клиент , и ещё что то было по мелочи. Сама машинка это : Linux Debian etch3 (я своим ядром 2.6.25.6) ядро в основном тюнилось для поддержки всех сетевых протоколов и модулей + выкидывание лишнего оборудования). Примерно 6 месяцев на нем 24/7 крутился Торрент клиент rtorrent и обменивался постоянно файлами (установлено 4 хдд примерно общим объёмом 1Тб). В летний период электрики (что б их) неоднократно вырубали электричество и сервер срывался в аварийный перегруз (в биосе стоит автоматически включаться при появлении питания) . Так вырубали не менее 3 - 5 раз . В один из такох вырубаний сервак не ожил при подключении к нему моника выяснилось что у него потеря информации на одном их разделов) . После проверки диска через fsck -f -y /dev/device были получены файлы в папке lost&found ну и я забил на проблему (думал решилась). Теперь столкнулся с тем что во время чтения с этого раздела информации иногда стали появляться данные (не возможно прочитать то-то и то-то). Вобщем ппц появились ББ (Bad Block). Что имею и что делал : сам диск это логическое продолжение системного диска т.е /dev/hda (1,2,3) где 1 это корневой раздел , 2 это свап раздел , 3 это большой раздел с ББ (Бед Блоками). На первом и третьем разделе диска стоит фс ext3 (со стандартными параметрами). Для начала прогнал : fsck -f /dev/hda3 он стал показывать записи типа : Error reading block 2130007 (Attempt to read block from filesystem resulted in short read) while doing inode scan. Ignore error<y>? yes И так примерно 20 - 30 . на команду fsck -f -y /dev/hda3 после проверки всё якобы нормально и проверено. (ПС. диск отмонтирован , файлы с него все убраны , раздел удалялся и создавался заного). Теперь запустил : badblocks /dev/hda3 -o /bb.log -v после чего в лог файле был список из примерно 174 записей о неисправных блоках . после чего была запущена : debugfs /dev/hda3 где я хотел выяснить какие innode`s равны тем нечитаемым блокам . icheck номер_блока (сразу скажу что когда делал первый раз у меня показал сразу номер инода по которому я выяснил какие файлы могут лежать на этом секторе : ncheck номер_инода после чего я скопировал (без проблем тот фаил и на повтоорную проверку мне показало что инод не занят). Из всего списка ББ (174 записи) более ни один блок не указал на наличие какого либо инода ,т.е на команду : icheck номер_блока всё время выдаём что такого блока не существует . (3 раза прогонял badblocks /dev/hda3 -o /bb_1.log -v и всё время получал один и тот же список блоков (174 записи). Но debugfs не может определить номера инодов , которые относятся к битым блокам). Поскольку имея номер инода можно запретить навсегда возможность записи на этот сектор через команду : cleari номер_инода но это сделать не могу т.к нету номера инода (у меня есть подозрение что они уже выведены из обращения . но всё же почему тогда проверка на бб опять их показывает). Вобщем главный вопрос как точно затереть битые блоки ?
|