Как я оживлял Linux
Автор: Николай Ткаченко
Житейский случай восстановления случайно стертых разделов жесткого диска. Как и у многих пользователей, на одном винчестере у меня содержится несколько различных ОС. В данном случае - ASP Linux 9.2 и Windows XP (да, вы правильно догадались: "пингвин" для работы, а "окошки" для экспериментов). И вот в один прекрасный день возникло у меня желание познакомиться с wine - утилитой, которая способна запускать программы win32 из-под Linux. Пришла мысль подключить еще один винчестер и - для чистоты эксперимента - поставить туда "винду". Вот тут-то все и началось… Я отвлекся и при инсталляции W2K, конечно же, поубивал все разделы не на том диске. А разделы были такие:
Один знакомый посоветовал воспользоваться замечательной утилитой EasyRecovery: "Я сам ею пользовался при нужде. И мне он помог спасти файлы!". Ну, взял я эту программку, установил (под Windows 98), запустил. Да - красиво! Я так понимаю, она предназначена для комплексного обслуживания HDD-носителя. Но вот разочарование: среди упомянутых типов файловых систем, которые понимает EasyRecovery, ни слова о ext2-3. "Хорошо,- думаю,- хоть NTFS спасу. А потом что-то придумаем…". Каким же было мое разочарование, когда эта утилита с проработанным до мелочей GUI не смогла найти ни малейших следов удаленного раздела! Пришлось запасаться терпением и более детально изучать способы решения проблемы. GPART: все лучшее - бесплатно! Начну именно с той утилиты, которая мне помогла и вообще понравилась. Найдена она была по адресу. Я взял файл для Линукс - gpart.linux. Переименовал в gpart и записал на дискету (размер файла - 265 364 байт). После чего загрузился с ASP Linux CD-ROM в режиме консоли восстановления. Выполнил dmesg, чтобы еще раз убедиться, что винчестер у меня это устройство hdb:
Теперь нужно смонтировать дискету и запустить утилиту:
После краткого "раздумья" на экран буде выведена информация о возможном размещении стертых разделов. Вот в таком виде:
Несколько слов о полученной информации. В строку, помеченной type, указан тип файловой системы, в коде и символическом представлении. Вообще, эта утилита "понимает" следующие системы:
В строке size находится информация, касающаяся "секторной приписки" раздела и количества секторов, занимаемых им. То есть строка:
означает, что размер диска - 16731 Мб, занимает он 34 266 640 секторов, с 31 760 505 по 66 027 144. Последняя строка - chs - предоставляет нам данные о топологическом размещении разделов, в координатах "цилиндр/головка/сектор" (в нашем случае это не так важно). И что теперь? Теперь мы можем просто восстановить таблицу размещения разделов при помощи команды:
Такой синтаксис предписывает утилите "вычислить" таблицу разделов на устройстве hdb и вписать его туда же (то есть восстановить). Но, в принципе, нам предоставляются и другие возможности: сохранить эти данные про запас (gpart -W /dev/fd0 /dev/hdb, на дискету. На тот случай если придется ее восстанавливать) или разбить другой диск по образу и подобию текущего (gpart -W /dev/hda /dev/hdb). Если вы любите делать все своими руками - из осторожности, например (все-таки восстанавливать партиции - дело не тривиальное) - можно воспользоваться традиционным fdisk. Не забудьте только добавить ключ -u - тогда при построении таблицы разделов можно оперировать номерами секторов. Восстанавливаем загрузчик Линукс Разработчики дистрибутива ASP Linux предлагают вместо традиционного LILO использовать для загрузки ОС их детище - ASP Loader. Суть в том, что все загрузчики ОС прописывают себя в MBR. После того как были воссозданы, как описано выше, потерянные разделы, компьютер все-таки отказался грузиться. Ну, не получилось у gpart в первозданной целостности реанимировать такую тонкую вещь, как первый сектор диска. Не беда, снова загружаемся с компакт-диска в режиме восстановления. Что нужно сделать, так это подмонтировать раздел диска, являющийся корневым при нормальной работе ОС в "/". Для этого и предусмотрена специальная утилита pivot_root. Хорошо. Монтируем /dev/hdb1 куда-нибудь:
Создаем вспомогательную папку tmp/old-root. И теперь:
Все, мы воссоздали ту файловую структуру, которая соответствует обычной загрузке ОС. Осталось выполнить команду aspldr (или lilo, если использовался этот загрузчик). Осталось перегрузить систему.
Красота требует… денег Наверное, вы удивитесь, но средства восстановления утерянных разделов существуют не только для Линукс но и для Windows всех модификаций Эта программа испытывалась в следующих условиях. Было создано три раздела: Linux ext3, Windows Extended и NTFS. Они были отформатированы соответствующим образом и на них были скопированы файлы. Поле этого утилитой fdisk эти разделы были удалены. Дальше за дело взялся RecoveryExpert. Сразу скажу: работать с ним легко - весь процесс восстановления сопровождался короткими, но понятными подсказками. Если отбросить традиционные для коммерческих продуктов диалоги приветствия и поздравления с завершением, то работа программы состояла из трех частей: выбора винчестера, на котором нужно восстановить данные, анализа диска и самого восстановления. В самом начале пользователю представляется выбор: контролировать весь процесс работы или понадеяться на интеллектуальные способности программы. Рекомендую выбрать ручной режим. Далее требуется более точно указать пространство диска (рис. 1), на котором следует искать утерянные данные. Если в следующем диалоговом окне вы выберете полный, а не быстрый анализ винчестера, то наверняка успеете попить пивка и даже выкурить трубочку. Ведь программа будет вынуждена сканировать каждый сектор на предмет наличия метки файловой системы - тогда как при быстром анализе предполагается, что раздел начинается с первого сектора цилиндра, а это дает значительный рост производительности. Когда процесс сканирования подойдет к концу, укажите те разделы, которые, собственно, нуждаются в восстановлении (рис. 2). Как я говорил, на диске существовал расширенный раздел с логическим диском. В документации к gpart этот случай описывался как не вполне тривиальный. Интересно, что RecoveryExpert (эксперт?) отреагировал на данную ситуацию подобным же образом (забегая наперед, скажу, что раздел все же был восстановлен и данные не потерялись). Следующим делом пользователю представляется случай полюбоваться на графическое представление структуры диска после его успешного восстановления. Потом - то же самое, но в текстовом виде (рис. 3). Осталось нажать кнопку Приступить и пожелать себе удачи.
Страница сайта http://silicontaiga.ru
Оригинал находится по адресу http://silicontaiga.ru/home.asp?artId=5010 |