Навряд чи я повідомлю вам що-небудь нове, якщо скажу, що розвиток флеш-пам'яті - один з головних рушійних чинників змін в світі ІТ. Вона вже фактично витіснила з ужитку оптичні диски, а в портативній техніці навіть жорстких дисків конкурувати з нею стає все важче.
У наше століття інформація - велика цінність, і тому цілком логічно, що разом з першими доступними флешками на ринку з'явилися і пропозиції послуг з відновлення даних з несправних накопичувачів. Будь-накопичувач даних - річ в собі. Він складається з декількох функціональних блоків і спілкується із зовнішнім світом за будь-якою з інтерфейсів - SATA, USB, SDIO і т.п. Якщо накопичувач несправний і отримати доступ до інформації, яка на нього записана, звичним способом не вдається, то сам запис при цьому може вціліти хоча б частково. У цей момент в гру вступають майстра по відновленню даних.
Процедура відновлення з фізично несправного жорсткого диска в більшості випадків зводиться до перестановки пластин в новий накопичувач тієї ж моделі. Перший час після появи флешок відновлення з них відбувалося схожим чином. Накопичувач на основі флеш-пам'яті складається з двох функціональних модулів: однієї або декількох мікросхем пам'яті і мікроконтролерів. При несправності контролера він замінювався на аналогічний, що в ряді випадків вирішувало проблему. Правда, несправність контролера - не єдина можлива поломка.
Зараз флешки прийнято відновлювати по більш досконалої методикою. Мікросхеми пам'яті Випоюють, інформація зчитується за допомогою програматора, і далі процес відновлення початкової файлової системи ведеться лише за допомогою програмних засобів. Злити інформацію з несправною флешки - лише півбіди. Як вже було сказано, накопичувач - річ в собі. При його нормальній роботі ми спілкуємося з ним по одному інтерфейсу і не знаємо, що відбувається всередині. Але ж там контролер, точніше мікропрограма, запущена на ньому, живе своїм життям, розпоряджається довіреної їй пам'яттю, «як вміє»: співвідносить фізичні адреси секторів з логічними по одному їй відомим алгоритмом, створює коди корекції помилок, використовує вільний простір з урахуванням забезпечення рівномірності зносу, можливо, навіть виконує шифрування та ін. Тому файлова система, яку ми бачимо, коли підключаємося до справного накопичувача звичним способом, не збігається з тим, що реально записано на мікросхемах фле або поверхні жорсткого диска. Моделей флешок існує безліч, і в кожній з них своя мікропрограма. Те, що робиться в процесі відновлення даних, можна назвати свого роду реверс-інжинірингом. Якщо це спрацювало з дампа виходить образ первісної файлової системи.
Програматор для зчитування дампа з мікросхем пам'яті NAND flash
Московська компанія «Софт-Центр» ( www.soft-center.ru ) - піонер в цій сфері. Починаючи з 2005 р, вона продає свою програму Flash Extractor, яка використовується в лабораторіях відновлення даних по всьому світу. Flash Extractor містить в собі базу даних моделей накопичувачів, регулярно поповнюється фахівцями технічної підтримки.
На наші запитання про накопичувачах відповідають фахівці «Софт-Центру» - Олексій Ніколко, розробник Flash Extractor, Сергій Ніколко, головний зломщик, Владислав бархани, інженер технічної підтримки і Артур Фатєєв, фахівець з тонкої пайку, а за сумісництвом і менеджер по продажам .
Сергій, як давно ви займаєтеся відновленням даних з флеш-пам'яті? Як все починалося?
С.Н .: У 2004 р я працював в НДІ, а мій тато займався відновленням даних з жорстких дисків. Якось він надіслав мені несправну флешку --попробовать відновити. Тоді цього ще ніхто не робив. Трохи пізніше я почав працювати в «Софт-Центрі». Перший час займався жорсткими дисками. Поступово до нас все частіше зверталися з несправними флешками. Люди з різних міст писали листи з проханнями навчити відновлювати з них дані. Я писав для них маленькі смішні програми і намагався навчити, як міг. З кожним роком флешки ставали все більш складними, комплексними, і тому навчити нового користувача з нуля зламувати самому - стало майже неможливо.
Так ми прийшли до концепції, яка використовується в даний час в Flash Extractor. Наша програма дозволяє людині, що володіє базовими знаннями в ІТ, самостійно почати відновлювати дані з дампов мікросхем пам'яті флеш-дисків. Звичайно, спочатку доведеться багато смикати техпідтримку, розбиратися в термінах і специфічних трюках.
У чому зараз полягає ваша основна діяльність в рамках техпідтримки користувачів Flash Extractor?
С.Н .: Нові моделі накопичувачів з'являються щодня. Якщо користувач стикається з моделлю, якої ще немає в бібліотеці, він звертається до нас.
У програмі є два основних поняття: Model (модель) і Layout (розмітка). Layout містить знання про те, як влаштовано сімейство контролерів, структуру службової області і області даних. Його побудова - найскладніша частина реверс-інжинірингу. З кожним роком все складніше робити аналіз дампов. Виробники мікросхем женуться за обсягом і збільшують щільність запису, але в той же час пам'ять стає менш надійною. Розробникам накопичувачів доводиться йти на хитрощі, щоб працювати з такою пам'яттю.
Наприклад, пам'ять типу TLC (Tripple-Level Cell) чомусь чутлива до однотипних даними, а значить, якщо в неї записати довгу послідовність одиниць або нулів, то заряд з осередків починає стікати і відбувається втрата даних. Щоб уникнути цього, виробники контролерів почали накладати на дані шум. Генератори шуму кожен робить, як захоче, а не по стандарту. Тому, перш ніж приступати до аналізу службової зони, мені необхідно прибрати шум з даних. Це можна порівняти зі зломом шифрування, потрібно знайти алгоритм, за яким генерується шум. Бувають прості арифметичні алгоритми, і бувають більш складні, засновані на циклічних кодах. У мене в голові сотня варіантів реалізації шуму і службової зони, так що злом в основному відбувається, спираючись на мій досвід. Благо, виробники не особливо фантазують і використовують перевірені схеми, підглянуті один у одного.
Модель - це алгоритм, за яким програма робить з дампа образ файлової системи, спираючись на Layout. Складає моделі Влад бархани.
Які флешки зараз найнадійніші? Чи залежить надійність від виробника?
С.Н .: Тут немає простежується закономірності. До нас потрапляють пристрої різних виробників. Більшість з них самі не виробляють комплектуючі для своїх накопичувачів, тому не можна сказати, що флешки якогось бренду стабільно надійніше, ніж у конкурентів.
Набагато важливіше, за якою технологією виготовлено пам'ять. Коли ми починали працювати, все флешки були зроблені за технологією SLC (Single-level Cell). Кожна осередок такої пам'яті зберігає 1 біт інформації і, отже, має лише два стани: або вона заряджена, або ні. Але ринок вимагає від виробників постійного збільшення ємності накопичувачів і їх здешевлення. Нескінченно збільшувати кількість транзисторів на мікросхемі, навіть з урахуванням того, що техпроцес їх виробництва вдосконалюється, виявилося недостатньо. Після того як щільність запису досягла 4 Гбайт на мікросхему, пам'ять стали виготовляти за технологією MLC (Multi-level Cell). У такій пам'яті осередок може містити 2 біти інформації або більше. Кожній можливої комбінації бітів відповідає свій рівень напруги. Це дозволяє збільшити щільність запису в рази, але погано позначається на надійності, так як підвищується ймовірність помилки. Крім того, ресурс перезапису у флеш-пам'яті обмежений, він становить приблизно 100 000 операцій. Зрозуміло, на MLC-пам'яті він буде вироблений швидше.
Маючи дамп, отриманий безпосередньо з мікросхеми пам'яті, нескладно зрозуміти, за якою технологією вона виготовлена. У 2005--2006 рр. нормальним показником були четирехбітовие помилки на 4 Гбайт. У перших MLC-мікросхемах можна було побачити по 60 помилок на ті ж 4 Гбайт. У сучасній пам'яті число помилок вимірюється тисячами. Втім, це не заважає накопичувачів нормально працювати до якогось моменту, оскільки їх виробники відповідним чином збільшують довжину коду корекції помилок.
Існує думка, що для того, щоб продовжити життя флешці, варто купити накопичувач надлишкової ємності і уникати його повного заповнення, оскільки тоді знос осередків пам'яті буде більш рівномірним. Наскільки це вірно?
С.Н .: Як правило контролер розділяє всю доступну пам'ять на зони і рівномірно розподіляє навантаження всередині них. Тому найчастіше ресурс виробляється на початку пам'яті. Існує зворотний потік несправних мікросхем на виробництво. У такий флешки можуть відключити, наприклад, перші 10% ємності, зібрати на її основі накопичувач і відправити його в продаж.
Так що знос флешки не залежить безпосередньо від того, скільки інформації на неї записано. Куди важливіше, як часто відбувається запис. Не варто редагувати на флешці вашу дипломну роботу або бухгалтерію 1С, краще переносите на ній файли з дому в офіс. А редагуйте на жорсткому диску комп'ютера. Так спокійніше, і у вас завжди буде дві копії.
З особистого досвіду можу судити, що надійність у флеш-накопичувачів нижче, ніж у жорстких дисків. З чим це пов'язано і чи поширюється це на SSD?
С.Н .: Флешки зазвичай мають більшу ймовірність згоріти, ніж жорсткі диски, через частого включення / вимикання. Нерідко вони виходять з ладу через неправильне відключення від ПК. Якщо вимкнути живлення в той момент, коли контролер проводить запис в службову зону, то мікропрограма, що зберігається там, швидше за все, пошкодиться, і накопичувач перестане працювати. Режим роботи SSD такий же, як і у жорсткого диска, тому єдине, що йому по-справжньому страшно, - це вироблення ресурсу за кількістю перезаписів.
Що таке монолітний флеш-накопичувач і чому відновлення даних з таких пристроїв коштує в кілька разів дорожче, ніж зі звичайних?
С.Н .: В традиційних накопичувачах використовуються корпусні мікросхеми пам'яті і контролери, розпаяні на звичайній друкарській платі. Для зчитування дампа з такого накопичувача мікросхеми можна просто отпаять.
У монолітних накопичувачах застосовуються безкорпусні мікросхеми, приклеєні до підкладки і з'єднані з доріжками на платі тонкими проводами. Вся ця конструкція залита єдиним компаундом, з якого виведені лише контакти інтерфейсу. До моноліту відносяться всі карти типу microSD, а також деякі моделі SD- і USB-накопичувачів.
А.Ф .: Картки microSD, SD і MemoryStick часто мають службові контакти, які виробники використовують на заводі для тестування і прошивки. Іноді їх не видно під шаром лаку, але вони є. Купується одно-два пристрої тієї ж моделі. За допомогою логічного аналізатора за формою сигналів встановлюється, на яких висновках розташовується інтерфейс мікросхеми пам'яті. Потім флешка розпаювали проводами до программатору і зчитується дамп. Відновлювати дані з USB-монолітів набагато складніше.
Карта пам'яті MemoryStick з распаянимі проводами
Які флешки можна назвати «проблемними» з точки зору відновлення даних?
А.Ф .: Є кілька неприємних мікросхем пам'яті фірми Samsung, наприклад K9ABG08U0A. Чи то вони швидко зношуються, то чи бояться перегріву при випоюванні, то чи Samsung використовує відмінний від стандартного набір команд. Але в підсумку в дампі присутня величезна кількість бітових помилок. Коректує здатності кодів ECC недостатньо для їх виправлення. І дані відновити не виходить. У більшості флешок компанії Sandisk дані перед записом в пам'ять шифруються, і тому їх непросто відновити з дампа. Доводиться намагатися відремонтувати саму флешку. Деякі виробники контролерів SSD теж вводять непомітне для користувача шифрування, наприклад, контролери SandForce. Перед покупкою SSD я б рекомендував перевірити на сайті виробника, застосовується шифрування чи ні.
Загалом, варто звертати увагу на тип використовуваної флеш-пам'яті: MLC, на жаль, сильно поступається SLC по надійності.
Відновлення даних з будь-якої монолітної флешки - процес на порядок більш трудомісткий, ніж зі звичайною. У нас відновлення з моноліту коштує 30 000 руб., А з звичайної флешки - 5000 руб. До цього ще треба додати вартість запасний флешки, яку доведеться знищити в процесі роботи.
USB-накопичувач на "тієї самої" мікросхемі Samsung K9ABG08U0A
Як найкраще захистити себе від втрати даних? Чи потрібен домашньому користувачеві RAID?
О.Н .: Кращий спосіб захисту від втрати даних - це резервне копіювання. Причому бажано, щоб копій було кілька і знаходилися вони в різних місцях (наприклад, жорсткий диск - в шафі, а друга копія - на файловому хостингу). RAID - також механізм резервного копіювання, але призначений не для призначених для користувача ПК, а для серверів, що працюють в режимі 24/7, де на звичайний процес створення резервної копії не залишається часу. Крім того, навіть дзеркальний масив RAID1 не завжди рятує від втрати даних. Крім самих накопичувачів, може вийти з ладу контролер, і тоді неправильні дані будуть записані на обидва диска.
С.Н .: Взагалі, з резервним копіюванням ось яка штука. Людина втратить дані, потім тиждень робить резервні копії, а потім забуває або йому набридає. RAID-масив це ще гірше, ніж окремий диск. Зламається він так само швидко. Скопіювати файли ви самі не зможете. Понесете в сервіс-центр. А там за нього візьмуть в 10 разів більше, ніж за один диск. Так що купите собі краще NAS і встановіть програму резервного копіювання, яка раз на тиждень буде сама копіювати ваші файли з робочого комп'ютера.
Сергій, як давно ви займаєтеся відновленням даних з флеш-пам'яті?Як все починалося?
У чому зараз полягає ваша основна діяльність в рамках техпідтримки користувачів Flash Extractor?
Які флешки зараз найнадійніші?
Чи залежить надійність від виробника?
Наскільки це вірно?
З чим це пов'язано і чи поширюється це на SSD?
Що таке монолітний флеш-накопичувач і чому відновлення даних з таких пристроїв коштує в кілька разів дорожче, ніж зі звичайних?
Чи потрібен домашньому користувачеві RAID?