Головна
 
ЦIКАВА ФІЗИКАП'ятница, 29.03.2024, 07:31



Вітаю Вас Гість | RSS
Головна
Категорії розділу
Мої статті [47]
Тут розміщуються різні статті стосовно використання інформаційно-комунікаційних технологій в освіті

Наше опитування
Оцініть мій сайт
Всього відповідей: 183

Статистика

Форма входу

Головна » Статті » Мої статті

Відновлення даних (FAQ)
Клуб інформатикiв
 

Відновлення даних (FAQ)

Валерій Семенюк

Я думаю, що кожний з користувачів зіштовхувався із ситуацією, коли збої програмного забезпечення, помилки виробників при установці нових драйверів або просто некоректні дії призводили до часткової або повної втрати важливих даних. Виникає питання: "Як відновити дані?". Найпростіше звернутися до організації, яка поставила вам комп'ютерну техніку або шукати технічних фахівців, які зможуть вам фахово допомогти. Однак все це вимагає затрат часу і великої нервової напруги. Cьогодні ми розглянемо стандартні помилки, які трапляються під час роботи користувача комп'ютера і з виправленням яких зможе справитися самостійно навіть початківець. Матеріал узято частово з безмежних тенет Інтернету, а частово з власного досвіду.


Як часто і що псується?

Всі пошкодження поділяються на дві категорії - логічні і фізичні. Статистика говорить про те, що фізичні причини втрати даних (відмова апаратури, стихійні лиха і т. д.) складають 45% від загального числа, а інші 55% - продукт діяльності програм і вірусів (12% і 8% відповідно) або помилки користувачів (35%). І якщо з фізичними пошкодженнями все більш або менш зрозуміло (працює - не працює), то пошкоджень логічних структур файлової системи існує достатньо багато, і чим більш досконала файлова система, тим складніше вирішувати її проблеми вручну. Ми не будемо тут торкатися високопродуктивних файлових систем HPFS і NTFS, оскільки щоб зрозуміти принципи їх роботи буде потрібна окрема стаття, а зупинимося на класиці - FAT. Різновидів FAT декілька, але їх зв'язує одне - лінійна структура організації дискового простору.

Природно, пошкодження кожного елементу з цієї структури спонукає виникненню тих чи інших наслідків. Особливостей пошкоджень FAT ми торкнемося трохи пізніше, а поки що розберемо з самого початку процес завантаження.

Головний завантажувальний запис (MBR - Master Boot Record) є найпершим сектором жорсткого диску і представляє собою програму, яка відповідає за подальше завантаження операційної системи (OC) після передачі їй управління від BIOS. Відповідно, якщо сама програма відсутня, то і завантаження системи відбуватися не буде. На щастя, ця програма у більшості випадків стандартна, тому відновити її не складає труднощів, якщо не використовувалася якась інша специфічна програма завантаження або захисту диска. В кінці цього сектора розташовуються наступні елементи - таблиця розділів жорсткого диска. У цій таблиці знаходяться відомості про розмір, місцеположення і призначення розділу. За стандартом їх не більше чотирьох. Відповідно, втрата даних в цьому місці загрожує втратою місцеположення і розмірності розділів, а відновлення можливо, або при ручному, або програмному пошуку початкових структур розділів.

Після того, як програма MBR прочитала необхідні відомості, управління передається програмі, записаній в першому секторі активного розділу (Boot-record). До речі, на дискетах Boot-record розташовується першим (MBR на дискетах відсутній) і також містить програму, власне, що завантажує систему. На дискеті ця область, а також системні фали прописуються командою sys.

Файлова система FAT складаються з наступних елементів: Boot-Sector, зарезервовані сектори, дві копії таблиці FAT, розташовані одна за одною, кореневий каталог і область даних. Пошкодження таблиць FAT має найсумніші наслідки, оскільки саме вони і є тими життєво важливими схемами розташування файлів. Пошкодження однієї з цих таблиць не є фатальним, оскільки дані, що звичайно дублюються, можна узяти з резервної таблиці, ну а якщо пошкоджені обидві, то вся область даних є морем інформації без яких-небудь покажчиків. Єдине, що може врятувати у відновленні структур даних, - збережені копії FAT спеціальними програмами - реаніматорами.

Кореневий каталог є основним і містить всі посилання на каталоги наступного рівня, а також на файли, що знаходяться в ньому. Його пошкодження супроводжується появою дивних директорій і файлів. Вірогідність відновлення даних при їх спотворені в ньому велика, проте логічна структура директорій, а також багато файлів можуть бути втрачені безповоротно.

Далі розташовується область даних, де окрім них знаходяться ще і каталоги наступного рівня. Їх пошкодження локальні і при бажанні легко виліковуються стандартними засобами на зразок NDD.

Стерто файл, але в кошику його не знайдено, що робити?

Він, напевно, виявився дуже великим і просто туди не помістився, а може бути, включена функція прямого стирання. У будь-якому випадку, як тільки ви зауважили, що вилучили файл, потрібно негайно зупинити роботу всіх програм. А якщо ніякі запущені процеси не проявляють активності, то при нагоді краще відразу натиснути двічі Ctrl-Alt-Del, тим самим відразу ж перезавантаживши систему. Пояснення такої жорсткої реакції криються в механізмі вилучення файлів. Ви напевно зауважили, що вилучаються файли набагато швидше, ніж записуються?

Річ у тім, що при записy файлу в таблиці розміщення знаходяться вільні елементи і згідно до них файл розташовується на диску, а покажчик на перший використовуваний елемент таблиці знаходиться в записі, що визначає файл в директорії. Тобто запис про файл містить не тільки його ім'я і атрибути, але і дані про стартовий сектор на диску, що належить йому. Вилучення файлу відбувається таким чином - звільняється ланцюжок в таблиці розміщення файлів, а замість першої букви імені файлу ставиться спеціальний знак, що говорить про те, що елемент вільний.

Тобто самі дані фактично не вилучаються?

Точно. І для відновлення файлу необхідно всього лише вказати першу букву і відновити послідовність ланцюжка таблиці розміщення файлів. Якщо диск фрагментований, то зробити це буде набагато складніше оскільки частини файлу виявляться розкиданими по диску, і збирати їх заняття не з приємних. Відповідно, після того, як ланцюжок FAT звільняється, його елементи стають доступними, і на їх місце можуть бути записані інші файли. Ось чому вірогідність відновлення вилучених файлів з часом зменшується. Для мультизадачних операційних систем, тим більше для системи Windows, це особливо актуально оскільки багато операцій запису проводяться у відкладеному режимі, і до того ж більшість користувачів використовують файл підкачки (swap-file) динамічного розміру. Це удвічі неефективно: по-перше, із-за постійної зміни об'єму файлу підкачки він все більше фрагментується, тобто при доступі до нього зчитувальній головці доводиться здійснювати зайві переміщення, що в свою чергу позначається на продуктивності. А по-друге, його збільшення супроводжується захопленням вільних елементів у FAT, які і можуть бути тими ділянками вилучених файлів, які ще могли б бути відновленими. До речі, програм відновлення, що використовують вищеописаний метод дуже багато, а деякі з них навіть поставляються разом з операційними системами.

Це досить цікаво. Наскільки я розумію будь-хто, хто захоче відновити дані, які я вилучив, має шанс це зробити. Як цьому можна запобігти?

Слід використовувати спеціальні програми, які вилучають не тільки заголовок файлу, але і стирають всі дані у використаних секторах. Інформацію, стерту таким чином, відновити вже неможливо. З пакету Нортоновських утиліт цим займається WipeInfo.

Зіпсована нульова доріжка на дискеті. Купувати нову?

Не варто. Якщо у вас є бажання і час, то ви маєте шанс її поновити. Пам'ятаєте, як у старі часи існування дискет малої ємності було дуже модно використовувати програми типу "800.com" або "PU-1700". Основним призначенням цих програм було форматування дискет з нестандартними параметрами, внаслідок чого збільшувалася їхня корисна ємність. Для читання таких дискет найчастіше був потрібен спеціальний драйвер, але деякі програми робили DOS-сумісні дискети підвищеної ємності. Так ось, ще з тих часів у програмах такого типу хорошим тоном було включення функції особливої розмітки, при якій можна було уникнути використання зіпсованої нульової доріжки. Звичайно, нестандартна розмітка не гарантує повної сумісності зі всіма операційними системами, але шанс є.

Дякую, але я не хочу експериментувати із сумісністю. Чи існують ще які-небудь засоби?

Так. Є безліч програм-реаніматорів, кожна з яких своїм власним способом намагається усунути фізичні пошкодження на дискеті. Одна з них навіть міститься в Нортоновськіх утилітах. Звичайно, представляється вельми сумнівним той факт, що програмним шляхом можна прибрати забруднення або дефект поверхні, але найчастіше такі програми справляються з цим завданням цілком пристойно. Мінус даного методу в тому, що після використання такої програми шанс втратити дані на цій дискеті набагато зростає.

А якщо і це не допомогло, то що робити?

В крайньому випадку вам знадобиться викрутка і м'яка серветка. З їх допомогою можна з 50%-й вірогідністю гарантувати успіх у боротьбі за життя нульової доріжки дискети. Розв'язок до банальності простий. Так як нульова доріжка знаходиться на одній стороні диска, то його потрібно просто перевернути. Тоді вже інша, можливо, не зіпсована поверхня виявиться на місці нульовою доріжки, і форматування дискети стане можливим. Якщо і це не допомогло, то спробуйте повозитися з програмами-реаніматорами, а якщо вже і вони не допомогли, то краще відправити дискету до смітника.

Нещодавно виявив поганий сектор на диску. Чи небезпечно це? Чи можна його відновити?

І так, і ні. Тут все залежить від того, наскільки мудрий контролер вашого жорсткого диску. У сучасних жорстких дисках окрім даних на робочій поверхні розташовується (звичайно в кінці диска) додаткові резервні області. Використовуються вони внутрішньою логікою контролера і служать для того, щоб при нестабільному читанні сектора диска логічно перемістити його в цю область. Для кінцевого користувача, як і для операційної системи, ця процедура "прозора", а єдиний спосіб дізнатися про переміщення сектора в резервну область - виміряти швидкість читання з нього, і якщо вона нижче за швидкість читання всіх решти секторів в тій же області, то, швидше за все, сектор передислокований у резервну область. Також це можна дізнатися, опитавши контролер диска, але детальний звіт по переміщених секторах дають далеко не все. Проте навіть розумні контролери іноді пропускають потенційно непрацездатні сектори диска, що виявляється вже в самий останній момент - коли головка не може прочитати ділянку. Як правило, за наявності вільних елементів в резервній області поганий сектор можливо логічно замінити хорошим з резервної області, що для старих жорстких дисків у яких ця область відсутня, неможливо. У результаті приходимо до того, що для сучасних дисків поганим показникам є висока швидкість заповнення резервної області, а для старих дисків - сама наявність поганих секторів, або провали у графіках читання, або запису з пластин дисків. В цьому випадку слід подумати про заміну диска. До речі, окрім фізичних причин появи поганих секторів може також відбутися логічна плутанина усередині контролера. При форматуванні в одному режимі (наприклад, Large), а використанні в другом (наприклад, LBA) відповідь контролера на звернення до неіснуючих головок або циліндрів може інтерпретуватися як звернення до поганих секторів, унаслідок чого диск наповниться "бедами", які матимуть тільки логічний характер. Проблема розв'язується форматуванням і експлуатацією диска в одному і тому ж режимі.

Як все ж таки поновити дані з поганого сектора?

Якщо говорити про вміст поганого сектора, то шанси на його відновлення теж є. Програми, що займаються цим, діляться на дві категорії: ті, які працюють безпосередньо з контролером диска, і ті які оперують елементами файлової системи. Перші при відновленні пробують перемістити поганий сектор у резервну область (якщо функція підтримується контролером), переписавши туди все те, що можливо прочитати. А програми, що працюють не з секторами, а з логічними елементами конкретної файлової системи, використовують дещо інші механізми. Річ у тім, що якщо мінімальним елементом роботи контролера є сектор (звичайно 512 байт), то мінімальним елементом файлової системи є блок (або кластер), розмір якого в системі FAT32 або FAT16 коливається від 2 Кбайт (4 сектори) до 32 Кбайт (64 сектори). Найбільш висока вірогідність відновлення виникає у тому випадку, коли "битий" сектор попав на останній кластер, що використовується файлом. Тоді може трапитися, що несправна поверхня диска фізично не міститиме дані файлу, хоча логічно це буде так. В цьому випадку вірогідність відновлення зіпсованих файлів програмами типу NDD дорівнює 100%. Іноді буває так, що невірно прочитується контрольна сума сектора, а основні дані в порядку. Такі дані теж відновляться з вірогідністю 100%, проте таких випадків значно менше. Взагалі, слід з обережністю ставитися до відновлених даних, особливо якщо це виконавчі файли.

Чув, що використання RAID-масиву підвищує надійність. Що мають на увазі?

Тільки надійність фізичних компонент і контроль над передачею даних. Технології, що використовуються у RAID-масивах, дозволяють досягати більшої швидкості дискових накопичувачів, але не здатні протистояти деструктивним функціям на рівні логіки файлової системи, тобто вірусам, помилкам у системних програмах і т.д. Уявіть собі, програма випадково знищує таблицю FAT. Вона ж, як правило, "думає", що працює з одним накопичувачем і посилає команду на запис контролеру, а контролер тим часом розподіляє цю команду на всі накопичувачі в масиві, так що всі таблиці FAT будуть зруйновані. RAID - це швидше, захист фізичної надійності накопичувачів.

Які існують програми для відновлення даних?

Дуже хороший низькорівневий редактор дисків PTS DiskEdit випустила російська компанія "Фізтех-софтвер" . Відмінно зарекомендувала себе під час лікування наслідків від вірусів програма MRecover. Корисною буде програма Hard Drive Mechanic , а для копіювання даних з пошкодженого диска підійдуть утиліти Tiramisu і EasyRecovery , а також Lost & Found від PowerQuest. Перші дві, до речі, окрім FAT16 і FAT23 підтримують файлові системи NTFS, Novell. Ну і відмінний набір, що надається Нортоновськими утилітами - Diskeditor NDD, Unformat.

Неправильно під'єднав інший диск і випадково відформатував свій. Чи є який-небудь простий спосіб хоч би частково відновити дані?

Самий простий спосіб - програма Unformat. Проте якщо не мати в наявності копій структур FAT, то відновлення файлів розміром більше одного кластера носитиме абсолютно випадковий характер. Програми типу Unformat шукають і аналізують кластери розділу диска з інформацією про підкаталоги та їх батьківських каталогів (так як у кожному підкаталозі міститься покажчик на батьківський каталог), а також проводиться аналіз дат створення або стирання файлів. На основі цих даних вони і вибудовують схему даних диска, замінюючи директорії кореневого каталога, що руйнуються, на імена типу "DIR001" і т.д.

Напевно, вже пізно - встиг записати масу файлів поверху...

Тут вже складніше. Без спеціального софта (програм) не обійтися. Для такого типу проблем підійдуть програми...

Мені завжди потрібна записна книжка з новим номером телефону, а всі решта є в архіві.

У цьому цьому випадку все просто - шукайте по всьому диску потрібне прізвище. Це можна зробити як за допомогою Disk Editor, так і будь-яким іншим низькорівневим редактором диску. Процес займе пристойно багато часу, але зате вам не доведеться копатися в каталогах, які створить Unformat.

Архів, як з'ясувалося став "битим". Чи можна відновити хоча б частину даних?

Це залежить, як мінімум, від типу архіватора. Для архівів, стислих Zip`ом, є прекрасна утиліта Pkzipfix, що входить до складу архіватора і що дозволяє відновлювати непошкоджені частини архіву. Популярний нині продукт WinRar має спеціальну опцію, включивши яку, при архівації додадуться додаткові дані для відновлення архівів. Остання версія архіватора відводить під розмір відновлючого запису близько 1,2% від всього об'єму архіву, що дозволяє відновити безперервну ділянку архіву тривалістю до 0,7%.

Поставив один з новомодних завантажувачів, що підтримують декілька операційних систем, але він став збоїти. Я побоююся за дані. Як його коректно вилучити?

Спочатку треба визначити, який механізм використовує завантажувач, і залежно від цього приймати рішення. Той завантажувач, який оформляє себе в таблиці розділів, поводиться найкоректніше, хоч і займає одне з чотирьох полів в цій таблиці. Так, наприклад, поступає завантажувач від OS/2. Після його установки можна використовувати ще три основні (primary) розділи включаючи розширений (extended). Вилучити завантажувач такого типу дуже просто - досить зайти в fdisk і вибрати вилучення розділу цього завантажувача. Після цього необхідно визначити активний розділ. До речі, можна обмежитися тільки останньою дією, а розділ завантажувача залишити до "кращих часів". Включити його можна буде простим призначенням на роль активного.

Завантажувачі іншого типа вбудовуються в MBR, тим самим перехоплюючи процес завантаження на ранішній стадії. Вони дозволяють використовувати всі чотири елементи таблиці розділів, але мають одну неприємну особливість - специфічне розташування на диску. Звичайно вони вбудовуються у невикористовувані сектори між системними даними завантаження або безпосередньо в MBR. Отже, при деяких з вигляду невитіюватих операціях можна повністю знищити такий завантажувач. Оскільки старт завантажувач одержує в MBR, то його можна легко знищити запуском програми fdisk з ключем /mbr. Ця функція прописує в MBR стандартний завантажувач і діє на основний диск, підключений як Master. У сьомій версії DOS також існує ключ /cmbr, в якому як параметр вказується номер диска.

Крім того, існують ще версії завантажувачів вбудовувані в boot-сектор диска. Природно, що одержати управління вони можуть тільки в тому випадку, якщо розділ, на якому вони знаходяться, є активним.Знищуються звичайно переписуванням boot-сектора програмами, що здійснюють перенесення системних файлів.

Кажуть, що низькорівневе форматування дозволяє відновити погані сектора на жорсткому диску. Це правда?

Потрібно розуміти, що мається на увазі під низькорівневим форматуванням. Якщо високорівневе форматування займається створенням розділів і файлових структур, то низькорівневе форматування означає базову розмітку поверхонь дисків. У старі часи, коли жорсткі диски поставлялися з чистими поверхнями, таке форматування створювало тільки інформаційні сектори. Сучасні вінчестери окрім розмітки інформаційних секторів мають також сервоінформацію, запис якої може бути виконаний тільки на технологічному стенді. Якщо для SCSI-моделей жорстких дисків ця розмітка є більш менш стандартний, то для кожної IDE-моделі є спеціальна програма, яка використовує її ті або інші функції контролера.

Повне низькорівневе форматування, що пропонує BIOS або якоюсь іншою програмою, не призначеною для даної конкретної моделі, може призвести до повної непрацездатності пристрою із-за неспівпадіння службових команд.

Випадки, коли після низькорівневого форматування пропадали Bad-Block'и описують процес remapping (ремапінгу) - логічної заміни фізично несправного сектора на фізично справний у резервній області. Цей процес може бути проведений диском як автоматично, так і за допомогою спеціальних програм для діагностики (наприклад, HDDSpeed).

Випадково вилучив один з розділів fdisk'ом...

Програма fdisk - менеджер розділів диску, тому він оперує таблицею розділів, MBR і логічними дисками. Ні у якому випадку не намагайтеся наново створити видалений розділ - при прорахунку вільного місця на диску fdisk пише в перший сектор на кожному треку код F6, що призводить до втрати інформації в цих секторах. У принципі, якщо у вас є під рукою програми-реаніматори, яким ви довіряєте, то можете скористатися ними, але якщо (окрім старого доброго Disk Editor'а або інших програм-редакторів) фізичних елементів диска немає, то вам знадобиться наступна інформація про структуру розділу.

 

Розглянувши структуру попередніх розділів і маючи в своєму розпорядженні інформацію про параметри жорсткого диска, можна спробувати зробити це уручну. Головне - точно потрапити на початок розділу, який можна знайти в тому ж Disk Editor, а всю інформацію, що залишається, можна обчислити виходячи з цього.

Оскільки на початку кожного розділу є Boot-sector у якому міститься інформація про мітку диска, його файлову систему, виробника операційної системи, то знайти його не складатиме особливих труднощів. Корисну інформацію можна буде узяти з даних, розташованих в Boot-sector, а формат слова для функцій читання INT 13h наступний:

Де "s" - номер сектора, а "c" - номер доріжки, причому більші букви означають старші біти. Після того, як розділ хоча б трішки "оживає" (з'явиться як самостійна структура), програма-редактор сама запропонує внести відповідні корективи, якщо вирішить які дані некоректні.

Я тільки що написав програму, яка стерла FAT.

Обидві копії?

Так.

Якщо операційна система - Windows, то існує імовірність того, що можна знайти копію FAT у файлі підкачки, тобто Windows часто зберігає FAT y пам'яті.

Я зовсім недавно дефрагментував диск програмою SpeedDisk і помістив файл підкачки на початок диска.

Дуже добре! Щоб знайти FAT, слід пошукати на диску "F8 FF FF FF" (так досить часто починається FAT) або послідовність чисел подібно до таких C7 C8 C9 CA. Оскільки по елементах FAT можна визначити її початок, то дуже швидко можна обчислити початок таблиці. Після цього треба записати цей блок на місце "безневинно убитих" таблиць FAT, а потім пройтися програмами типу NDD або Scandisk для усунення можливих помилок.

Диск не завжди реагує на запити і іноді "намертво" завмирає. В чому причина?

Ймовірно, міг вийти з ладу контролер жорсткого диску. Дізнатися це можна поставивши його на тривале тестування. Якщо підозри виправдалися і контролер не проходить якийсь тест, то можна спробувати замінити контролер. Окремо знайти контролер дуже проблематично, проте іноді на комп'ютерних ринках зустрічаються диски із зіпсованою поверхнею, але з працездатним контролером. Головне - купити диск такої самої моделі, оскільки далеко не всі контролери дисків однієї серії, але різного об'єму підходять один до одного. Якщо вартість вашої інформації виправдовує покупку такого диска, то вас чекає складна операція заміни контролера. Акуратно зніміть старий контролер і поставте на його місце новий. До речі, потім можна вставити непрацездатний контролер у диск із зіпсованою поверхнею і продати його скупникам "битого" заліза.

Далі буде...
Категорія: Мої статті | Додав: escuela (22.10.2007)
Переглядів: 2827 | Рейтинг: 5.0/2
Всього коментарів: 0
Додавати коментарі можуть лише зареєстровані користувачі.
[ Реєстрація | Вхід ]
Пошук

Друзі сайту


Copyright MyCorp © 2024
Створити безкоштовний сайт на uCoz