|
ru.linux- RU.LINUX --------------------------------------------------------------------- From : Evgenij M. Baldin 2:5020/400 19 Jan 2001 16:39:02 To : All Subject : Re: Recovery record -------------------------------------------------------------------------------- Добрый день Alexander Pevzner <pzz@pzz.msk.ru> wrote: : EMB> ТЗ: есть бинарный файл - требуется уметь этот файл восстанавливать : EMB> при : EMB> небольших его повреждениях (то есть копирование само собой - хороший : EMB> способ борьбы с повреждениеми, но хочется дополнительной уверенности) : Hу если про файл ничего дополнительно не известно, кроме того, что : он большой и бинарный, то копирование - единственный метод. Я не спец, но можно реализовать например следующую схему: Бьём файл на N блоков - для каждого из блоков считаем контрольную сумму - например на все байты блока говорим XOR - получаем N байтов, то есть если какой-то из блоков попорчен, то мы это сможем узнать - вероятность, что попортится так, что XOR останется тем же 1/256 - можно для очистки совести взять четыре байта под контрольную сумму. Теперь берем все блоки и с помощью XOR формируем N+1 блок Если у нас испортилось не более одного блока (если сгинул весь файл, то это фатально - вопрос про не сильные потери - например замялась лента в магнитофоне), то мы с помощью контрольного байта узнаем этот блок и восстановливаем его путем XOR на дополнительный блок с использованием всех не порченных блоков. Этот метод можно усложнить путем создания например двух резервных блоков - чет/нечет, изменением размеров блоков и т.д. Hо наверняка есть более изощренные способы - вопрос где про них можно прочитать/спросить : Можно : еще посоветовать посчитать и сохранить md5-ю сумму, как способ быстро : проверить, что файл не менялся/правильно прочелся и т.п. Это что? Где про это можно почитать/спросить С уважением Евгений -- --------------------------------------------------------------------------- Budker Institute of Nuclear Physics e-mail: E.M.Baldin@inp.nsk.su tel.: 7(3832)361388(h),394227(w) WWW: http://www.inp.nsk.su/~baldin --------------------------------------------------------------------------- --- ifmail v.2.15dev5 * Origin: BINP, Novosibirsk, Russia (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.linux/88439f2779c5.html, оценка из 5, голосов 10
|