![]() |
Как я оживлял 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, если использовался этот загрузчик). Осталось перегрузить систему.
Красота требует… денег
Эта программа испытывалась в следующих условиях. Было создано три раздела: Linux ext3, Windows Extended и NTFS. Они были отформатированы соответствующим образом и на них были скопированы файлы. Поле этого утилитой fdisk эти разделы были удалены. Дальше за дело взялся RecoveryExpert. Сразу скажу: работать с ним легко - весь процесс восстановления сопровождался короткими, но понятными подсказками. Если отбросить традиционные для коммерческих продуктов диалоги приветствия и поздравления с завершением, то работа программы состояла из трех частей: выбора винчестера, на котором нужно восстановить данные, анализа диска и самого восстановления.
Следующим делом пользователю представляется случай полюбоваться на графическое представление структуры диска после его успешного восстановления. Потом - то же самое, но в текстовом виде (рис. 3). Осталось нажать кнопку Приступить и пожелать себе удачи.
Страница сайта http://silicontaiga.ru
Оригинал находится по адресу http://silicontaiga.ru/home.asp?artId=5010 |