Azathoth
Гость
|
|
« Ответ #1 : Сентябрь 22, 2006, 03:12 » |
|
При любой иной файловой системе эти файлики будут биться так же. И уж тем более нет смысла отключать fsck, т.к. это приведет к еще большим проблемам. Объясняю. Для гарантии сохранения работоспособности файловой системы должна осуществляться последовательность записи нужных данных при изменении/создании файла: 1. В таблице inodes. 2. Изменение карты свободных/занятых inodes. 3. Внесение связки inode — имя_файла. Ext2 - асинхронная файловая система. Что означает, что все эти изменения кешируются в оперативке и записываются на диск по мере освобождения ресурсов компа, при этом вышеуказанная последовательность не соблюдается. Пишется все как бог на душу положит. Вся эта петрушка нужна для увеличения производительности ФС за счет более быстрой работы с оперативной памятью. А теперь представьте что в момент сбоя нужные данные находились в оперативке, при этом карта свободных/занятых inodes уже обновилась, а остальные записи еще нет. Это фактически крах файловой системы получается. При этом не успевшие обработаться файлы и считаются битыми. Информация, которая должна была в них сохраниться, сохраниться просто не успела. Эти данные уже никак не спасти. А ФС нуждается в лечении. fsck в данном случае санитар леса, убивающий больных и сирых, не способных к жизни =) Без него никуда, после пары-тройки таких сбоев, Вы рискуете попрощаться со всеми данными на разделе. Частично проблему решает журналируемость (ext3, reiserfs). Однако журнал нужен не для востановления данных, а для облегчения работы fsck. Он помогает найти неправильно записанные участки и откатить изменения назад. За счет чего повышается стабильность всей ФС в целом. Повторяю, файлы, открытые на запись во время сбоя как бились, так и будут биться. Единственный выход - поставить UPS. Он: 1. Решит проблему со скачками напряжения. 2. При отключении света позволит корректно завершить работу. По другому просто никак...
|