Royal Flash, или из грязи в князи: Восстанавливаем убитую флешку и ставим на нее несколько ОСВсе началось с того, что на столе у меня постоянно лежали две неработающие флешки. Одна отказывалась форматироваться, а другая вообще не хотела распознаваться в системе. Вроде и выбросить было жалко, но и толку от них ноль. Когда наконец появилась свободная минутка, удалось не просто восстановить их функциональность, но и сделать из одной из них удобнейший мультизагрузочный пендрайв для запуска разных и полезных LiveCD систем. Как умирают флешки?Функцией безопасного извлечения устройств и дисков, к которой с таким трепетом относятся многие пользователи, я не пользовался практически никогда. Дождавшись, пока светодиод флешки перестанет мигать (стало быть, процедура чтения-записи заканчивалась), я просто вытаскивал пендрайв из USB-разъема. Так я делал до тех самых пор, пока со словами «Да нафига оно нужно, это безопасное извлечение» я наспех вытащил флешку и успешно ее убил :). Вставив флешку в ноутбук, скопировать с нее уже ничего не получилось. Форматировать она отказывалась и вообще вела себя довольно странно, периодически не определялась в системе. Самой частой причиной неполадок USB-флешек становится специальный контроллер, который отвечает за передачу данных между компьютером и флеш-памятью (о пендрайве в общем ты можешь прочитать во врезке). Но, что хорошо, проблема с контролером не означает, что единственным вариантом является его замена. Очень часто неполадка носит исключительно программный характер, и в таком случае работоспособность флешки вполне можно восстановить. Контроллером управляет микропрограмма (прошивка), которая, как и любая другая прога может заглючить, в первую очередь, из-за различных сбоев питания, как, например, в случае небезопасного извлечения устройства из USB-порта. В результате контроллер блокируется и не отвечает на запросы операционной системы. При подключении к компьютеру такой флеш-диск может опознаваться как «Неизвестное устройство», иметь формат RAW или, что тоже бывает, может быть виден в системе как диск с нулевой емкостью. Симптомы тех же самых проблем — сообщения «Вставьте диск» или «Нет доступа к диску» при попытке обратиться к флешке. К счастью, зачастую это можно поправить. Прежде чем приступать к описанию процедуры восстановления, спешу предупредить: большинство из утилит, которые направлены на восстановление работоспособности флешки, форматируют накопитель на низком уровне. На деле это означает, что все данные с нее будут утеряны. Поэтому, если флешка перестала работать, а на ней — финальная версия диплома, который надо сдавать послезавтра, верный способ спасти данные — обратиться к специалистам. С помощью специального оборудования профи смогут вытащить данные, которые записаны во флеш-памяти устройства, даже если контроллер полностью умер. В принципе, попытаться восстановить файлы можно и самому, воспользовавшись утилитами R-Studio (www.r-studio.com/ru) и PhotoRec (www.cgsecurity.org/wiki/PhotoRec). Причем есть шанс восстановить данные, как до восстановления нормальной работы контроллера, так и после. Но вернемся к нашей теме. Приводим флешку в чувстваЧтобы восстановить работу контроллера и, соответственно, флешки в целом, необходимо найти сервисную утилиту, которая умеет разговаривать с ним на общем языке и уболтает его снова заработать. К сожалению, контроллеров очень много, и даже у одного производителя флешек микросхемы контролеров могут сильно отличаться. Выяснить, какой контроллер используется в умершей флешке, можно двумя способами: брутальным и деликатным. Первый означает, что корпус флешки придется вскрыть и посмотреть наименование контроллера (ты ведь уже прочитал врезку и разобрался, где там что?), которое нанесено на микросхеме. Добраться до внутренностей флешки не всегда просто, но зато это точно даст результат. Впрочем, обойтись можно и без этого, воспользовавшись вторым способом. Контроллер можно идентифицировать по кодам VID (идентификатор производителя) и PID (идентификатор модели устройства) и, что самое приятное, извлечь их можно прямо из операционной системы. Коды считываются с помощью любой из следующих утилит: ChipGenius, CheckUDisk, USBDeview, UsbIDCheck, и, если это удалось, значит шансы на восстановление флешки определенно есть. Следующий вопрос: что с этими кодами делать? Пробить по специальной базе флешек iFlash на сайте www.flashboot.ru, информацию в которою заботливо занесли люди, которые профессионально занимаются восстановлением данных, и просто энтузиасты. Забиваем VID, указываем PID и нажимаем «Найти». Например, для моей флешки VID = 8086, PID = 3A37. Оказалось, что в флешке используется контроллер ALCOR, а в графе «Утилита» сразу предлагается несколько сервисных утилит, которые возможно помогут вернуть флешку в работоспособное состояние. Подобрать сервисную утилиту можно и вручную; здесь, опять же, выручает flashboot.ru, а точнее, собранный там каталог сервисных программ. Как ты уже понял, для каждого производителя контроллеров — свои утилиты. Процедура восстановления сильно отличается, но, как правило, довольно проста. К счастью, с каждой утилитой обязательно прилагается пошаговая инструкция в стиле «нажми это, выбери то, подожди, получи работоспособную флешку». Последовательность действий, чтобы оживить контроллер, очень проста. Главное здесь — правильно выбранная сервисная утилита. LiveCDВ результате описанных телодвижений были без проблем восстановлены обе флешки. Только зачем они мне? :) Поскольку для переноса файлов я давно не пользуюсь флешками (Dropbox решает все проблемы), было решено сделать из флешки что-нибудь полезное. Старая идея заключалась в том, чтобы превратить пендрайв в мультизагрузочный гаджет сразу с несколькими ОС. Когда-то давно я записал USB-версию Backtrack’а и всегда брал ее с собой, чтобы в любом месте всегда иметь под рукой полезные утилиты и полноценный Linux. Если сделать флешку мультизагрузочной, то можно не привязываться лишь к одной системе, а, используя нынешние объемы, запихнуть туда сразу несколько полезных LiveCD. Тем более, помимо загрузочных версий обычных десктопных Linux’ов (Fedora, Ubuntu и прочих) есть целый ряд специализированных инструментов, основанных на этой самой технологии:
Этот список можно продолжать, благо, платформа LiveCD, и этого не отнимешь, действительно располагает к появлению подобных специализированных инструментов. Разумеется, записывать на диск (фууу!) ничего не нужно, ведь есть очень простая утилита UNetbootin (unetbootin.sourceforge.net), предоставляющая удобный интерфейс для создания загрузочных флешек из ISO-образов. Плюс в том, что у нее есть огромная база разных LiveCD, и она знает, что с ними делать. Поэтому нужно лишь выбрать флешку, указать путь до нужного ISOобраза, а также выбрать тип и версию дистрибутива. Все, дальше программа справится с задачей сама, и с пендрайва сразу можно будет загружаться. Но «одна флешка — один дистрибутив» — это не так интересно. Сделать флешку сразу со всеми этими инструментами — вот то, чего бы мне захотелось. Мультизагрузочная флешкаЧтобы иметь возможность выбирать ОС, которую мы хотим грузить, нам потребуется загрузчик. Хорошим вариантом является grub4dos (code.google.com/p/grub4dos-chenall) от наших китайских друзей. В скачанном архиве ты увидишь много разных файлов, но нам потребуется только непосредственно файл загрузчика: grldr. Правда, если просто скопировать его на флешку (и это надо сделать обязательно), то ничего не получится — необходимо еще прописать загрузчик в MBR флешки. С этим справится специальная утилита grubinst (download.gna.org/grubutil). Необходимые действия можно было бы выполнить через консоль, но мы воспользуется GUI-интерфейсом программы. Все опции рекомендую оставить по умолчанию, и единственное, что сделать — это выбрать нашу флешку в поле Disk. Если окажется, что прога не находит флешку или вообще дисков, запусти ее с правами Администратора, это поможет. Небольшая сложность возникает в том, что найденные диски программа обозначает не совсем понятным образом: hd1, hd2 и т.д. Будь внимателен: если неправильно выбрать диск, вполне можно записать MBR на свой жесткий диск и создать себе проблемы в виде испорченного загрузчика. Чтобы этого избежать, советую запустить утилиту без флешки и посмотреть список дисков. А потом, вставив флешку, нажать на кнопку «Refresh» и выбрать появившийся в списке диск. Объем, указанный в квадратных скобках, должен совпадать с объемом раздела на флешке. Перепроверив все еще раз, нажимаем на кнопку «Install» — все, загрузчик прописан в MBR. Уже сейчас можно попробовать перезагрузиться; во время загрузки должна появиться консоль загрузчика. Правда, на флешке пока больше ничего, и толку от него мало, но это исправимо.
Симбиоз своими рукамиДля примера покажу, как сделать мультизагрузочную флешку из двух дистрибутивов: Memtest86+ для проверки оперативной памяти на ошибки (первый инструмент, если система непредсказуемо перегружается) и Offline NT Password & Registry Editor для сброса пароля в Windows и редактирования реестра без загрузки винды. Начнем с того, что создадим на флешке каталог iso, и поместим скачанные с официальных сайтов ISO-образы дистрибутивов в папки memtest и ntpasswd. Далее создадим на флешке menu.lst и добавим в конфиг два пункта для выбора ОС:
Название пункта меню задается через ключевое слово Title, а путь до ISO указывается с помощью слова map. По сути, все готово. Теперь можно вставить флешку в компьютер и пробовать перезагрузиться. Если в БИОСе установлена загрузка с USB-накопителя, то очень скоро ты увидишь меню загрузчика grub4dos с выбором только что настроенных ОС. Аналогичным образом можно прописать образы любых других LiveCD-дистрибутивов: Backtack, Ophcrack, Kaspersky Rescue Disk и каких угодно еще. В некоторых случаях при загрузке системы может выскакивать ошибка. Скорее всего, это связанно с тем, что ISO-образ является фрагментированным. Придать ему должный вид поможет GUI-утилита WinContig (wincontig.mdtzone.it/en). Возможности grub4dos позволяют реализовать самые изощренные комбинации загрузки, это хорошо описано в русской документации (greenflash.su/Grub4Dos/Grub4dos.htm). Но если не хочется заморачиваться даже с составлением menu.lst, есть вариант вообще не ковыряться в конфигах. Рецепт прост — воспользоваться специальной утилитой MultiBootISOs (www.pendrivelinux.com/bootmultipleiso-from-usb-multiboot-usb). Утилита записывает на флешку специальный бутлоадер на базе Syslinux и grub4dos, который автоматически конфигурирует меню для загрузки в зависимости от ISO-образов, которые записаны на флешке. Все реализовано настолько просто, что от тебя потребуется лишь положить ISO’шки в специально заготовленные на флешке каталоги с названиями систем, которые MultiBootISOs заботливо создаст во время инсталляции. Решение изначально поддерживает LiveCD-версии обычных дистрибутивов Linux (Ubuntu, Fedora, OpenSUSE и т.д.), но также совместимо с нашими специализированными системами: GParted, Ophcrack и т.д. Можно даже записать на флешку инсталляционный диск Windows 7. Главное помнить, что для такой увесистой подборке придется выделить флешку на 8, а еще лучше — 16 Гб. Флешка InsideЛюбая флешка — это очень простой девайс, состоящий всего из нескольких элементов. Самая большая микросхема — это контроллер, он отвечает за взаимодействие компьютера и памяти флешки. Другим важным компонентом является микросхема энергонезависимой NAND памяти, в которой и хранятся все данные с флешки. Эти компоненты размещены на плате с миниатюрными проводными дорожками вместе с USB-разъемом, стабилизатором питания и кварцевым резонатором.
1 — USB-коннектор, 2 — контроллер, 3 — место для подключения тестового обору- дования (во время производства) , 4 — чип постоянной памяти, 5 — кварцевый гене- ратор, 6. — светодиод, 7 — переключатель режима "только чтение", 8 — место для установки дополнительного чипа памяти. VID и PID не извлекаются!Некоторые программные сбои контроллера приводят к тому, что винда не может опознать подключенное устройство. Верный симптом — сообщение «Устройство USB не опознано» в момент подключения флешки. При этом при попытке считывания VID и PID один из них или сразу оба оказываются равны 0000. Это происходит, потому что микропрограмма контроллера не может считать часть прошивки, которая расположена в специальной области микросхемы памяти. В такой ситуации можно попробовать перевести контроллер в так называемый тестовый [a1] путем замыкания определенных выводов микросхемы памяти. У микросхемы множество выводов («лапок»), нумерация которых идет против часовой стрелки с того места, которое отмечено специальной точкой. Схема действий следующая:
|