Автоматизированные дисковые утилиты
Более убогой утилиты, чем chkdsk (рис. 2.14) — стандартный дисковый "доктор", входящий в штатный комплект поставки Windows, — по-видимому, не придумать даже сценаристам из Голливуда. Система диагностики ошибок упрощена до минимума — доктор лишь информирует о факте их наличия, но отказывается говорить, что именно, по его мнению, повреждено и что он собирается лечить, поэтому последствия такого "врачевания" могут носить фатальный характер.
Рис. 2.14. Утилита chkdsk за работой
Известно много случаев, когда chkdsk залечивал до смерти полностью исправные разделы. Например, в листинге 2.1 приведен протокол лечения практически здорового диска с одной-единственной поверженной файловой записью (FILE RECORD). После этого "лечения" я не досчитался многих файлов. С другой стороны, успешно проведенных операций восстановления на его счету намного больше. Обычно он используется неквалифицированными пользователями (и администраторами) для периодической проверки разделов и исправления мелких искажений файловой системы.
В мире UNIX проверка целостности файловой системы обычно осуществляется программой fsck
(аналог chkdsk под Windows NT), представляющей собой консольную утилиту, практически лишенную пользовательского интерфейса и входящую в штатный комплект поставки любого дистрибутива. Как и любое другое полностью автоматизированное средство, она не только лечит, но, случается, что и калечит, так что пользоваться ею следует с большой осторожностью.
Листинг. 2.1. Протокол лечения практически здорового диска с одной-единственной поверженной FILE RECORD
One of your disks needs to be checked for consistency. You
may cancel the disk check, but it is strongly recommended
that you continue.
Windows will now check the disk.
The VCN 0x9 of index $130 in file 0x1a is inconsistence with
the VCN 0x0 stored inside the index buffer.
Correcting error in index $I30 for file 26.
The index bitmap $I30 in file 0x1a is incorrect.
Correcting error in index $I30 for file 26.
The down pointer of current index entry with length 0x70 is invalid.
0b 01 00 00 00 00 01 00 70 00 58 00 01 00 00 00 ........p.X.....
1a 00 00 00 00 00 01 00 00 c0 4c bb 5a 94 bf 01 ..........L.Z...
00 c0 4c bb 5a 94 bf 01 c0 3a 15 55 97 ea c4 01 ..L.Z....:.U....
f0 54 e1 71 7a ea c4 01 00 10 01 00 00 00 00 00 .T.qz...........
22 02 01 00 00 00 00 00 20 00 00 00 00 00 00 00 "........ ......
0b 03 63 00 5f 00 32 00 30 00 38 00 36 00 36 00 ..с._.2.0.8.6.6.
2e 00 6e 00 6c 00 73 00 ff ff ff ff ff ff ff ff ..n.l.s.........
1f 01 00 00 00 00 01 00 70 00 54 00 01 00 00 00 ........p.T.....
Sorting index $I30 in file 26.
Cleaning up minor inconsistencies on the drive.
CHKDSK is recovering lost files.
Recovering orphaned file c_037.nls (253) into directory file 26.
Recovering orphaned file c_10000.nls (254) into directory file 26.
Recovering orphaned file c_10079.nls (255) into directory file 26.
Recovering orphaned file c_1026.nls (256) into directory file 26.
Recovering orphaned file c_1250.nls (257) into directory file 26.
Recovering orphaned file c_1251.nls (258) into directory file 26.
Recovering orphaned file c_1252.nls (259) into directory file 26.
Recovering orphaned file c_1253.nls (260) into directory file 26.