Суббота, 2024-04-20, 10:18 AM
Главная страница | Регистрация | Вход Приветствую Вас заблудившийся пакет | RSS
Меню сайта

Категории каталога
Программирование [58]
.. все с этим делом связаное..
Нейронные сети [4]
Нейронные сети, использование алгоритмы роботы
OC [6]
Unix, FreeBSD, Windows, Linux Описание, совети, секреты, настройки
WEB [25]
web-programming и все с этим связаное
Сети [2]
Описание сетей, сетевых технологий, настройки и некоторые секреты
Мабила [9]
Описание мобильных технологий, программинг под мабилу, и просто интересные моменты
Разное [10]
то что не вошло в другие категории.. прикольные истории про программеров и деятелей информационной индустрии
История [6]
История этого компьтерного мира и некоторых ее учасников
FREE [3]
free on the web..

Наш опрос
Оцените мой сайт

Результаты · Архив опросов

Всего ответов: 129

Начало » Статьи » OC

Оживление Linux
И вот в один прекрасный день возникло у меня желание познакомиться с wine - утилитой, которая способна запускать программы win32 из-под Linux. Пришла мысль подключить еще один винчестер и - для чистоты эксперимента - поставить туда "винду". Вот тут-то все и началось:

Я отвлекся и при инсталляции W2K, конечно же, поубивал все разделы не на том диске. А разделы были такие:

*
hdb1(ext3) под корневой раздел "/", размер 5 Гб;
*
hdb2 своп (512 Мб);
*
hdb3(ext3) для пользовательских данных; его величина составляла 9 Гб, и он существовал уже несколько лет - "бэкапы" с него хоть и делались, но не ежедневно. А ведь жаль было расставаться с наработками за последние несколько дней!
*
hdb4(NTFS) с Windows XP - в этом разделе было много ерунды. И я был бы, в общем-то, рад переустановить эту ОС начисто, да вот только это означало потерять базу программы 1C.

Один знакомый посоветовал воспользоваться замечательной утилитой EasyRecovery: "Я сам ею пользовался при нужде. И мне он помог спасти файлы!". Ну, взял я эту программку, установил (под Windows 98), запустил. Да - красиво! Я так понимаю, она предназначена для комплексного обслуживания HDD-носителя. Но вот разочарование: среди упомянутых типов файловых систем, которые понимает EasyRecovery, ни слова о ext2-3. "Хорошо,- думаю,- хоть NTFS спасу. А потом что-то придумаем:". Каким же было мое разочарование, когда эта утилита с проработанным до мелочей GUI не смогла найти ни малейших следов удаленного раздела!

Пришлось запасаться терпением и более детально изучать способы решения проблемы.

GPART: все лучшее - бесплатно!

Начну именно с той утилиты, которая мне помогла и вообще понравилась. Найдена она была по адресу. Я взял файл для Линукс - gpart.linux. Переименовал в gpart и записал на дискету (размер файла - 265 364 байт). После чего загрузился с ASP Linux CD-ROM в режиме консоли восстановления. Выполнил dmesg, чтобы еще раз убедиться, что винчестер у меня это устройство hdb:
hdb: MAXTOR 6L040J2, ATA DISK drive
hdb: 66055248 sectors (33820 MB) w/1819KiB Cache, CHS=65531/16/63, UDMA (100)

Теперь нужно смонтировать дискету и запустить утилиту:
/mnt/floppy/gpart /dev/hdb

После краткого "раздумья" на экран буде выведена информация о возможном размещении стертых разделов. Вот в таком виде:

Primary partition (1)
type: 131(0x83)(Linux ext2 filesystem)
size: 5004mb #s (10249400) s (63-10249462)
chs: (0/1/1)-(1023/15/63) d (0/1/1)-(10168/1/56) r
::
Primary partition (4)
type: 007(0x07)(OS/2 HPFS, NTFS, QNX or Advanced UNIX)
size: 16731mb #s (34266640) s (31760505-66027144)
chs: (1023/15/63)-(1023/15/63) d (31508/7/1)-(65503/1/58) r

Несколько слов о полученной информации. В строку, помеченной type, указан тип файловой системы, в коде и символическом представлении. Вообще, эта утилита "понимает" следующие системы:

*
DOS/Windows FAT (FAT 12/16/32) Linux ext2;
*
Linux swap, версии 0 and 1 (Linux >= v2.2.X);
*
OS/2 HPFS;
*
Windows NT/2000 FS;
*
BSD метки дисков;
*
Solaris/x86 метки дисков;
*
Minix FS;
*
Reiser FS;
*
Linux LVM дисковый массив;
*
SGI XFS on Linux;
*
BeOS filesystem;
*
QNX 4.x filesystem.

В строке size находится информация, касающаяся "секторной приписки" раздела и количества секторов, занимаемых им. То есть строка:
size: 16731mb #s (34266640) s (31760505-66027144)

означает, что размер диска - 16731 Мб, занимает он 34 266 640 секторов, с 31 760 505 по 66 027 144.

Последняя строка - chs - предоставляет нам данные о топологическом размещении разделов, в координатах "цилиндр/головка/сектор" (в нашем случае это не так важно).

И что теперь? Теперь мы можем просто восстановить таблицу размещения разделов при помощи команды:
gpart -W /dev/hdb /dev/hdb

Такой синтаксис предписывает утилите "вычислить" таблицу разделов на устройстве 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 куда-нибудь:
mount -t ext3 /dev/hdb1 /tmp/hdb1

Создаем вспомогательную папку tmp/old-root. И теперь:
cd /tmp/hdb1
/tmp/hdb1/sbin/pivot_root. tmp/old-root

Все, мы воссоздали ту файловую структуру, которая соответствует обычной загрузке ОС. Осталось выполнить команду aspldr (или lilo, если использовался этот загрузчик). Осталось перегрузить систему.
Ключи утилиты gpart
При работе с описанной утилитой, полезными могут оказаться и другие опции ее работы:

-b backupfile: позволяет перед тем, как переписывать MBR, сохранить его в определенном файле.

-C c, h, s: можно вручную указать геометрию винчестера, если ее не удается корректно определить через ОС.

-f: без этого ключа gpart находит раздел, а потом продолжает сканирование от его конца. В этом-же случае производится полное, посекторное сканирование, что может кстати, занять продолжительное время.

-L: вывести список поддерживаемых типов файловых систем.

Красота требует: денег

Наверное, вы удивитесь, но средства восстановления утерянных разделов существуют не только для Линукс но и для Windows всех модификаций:-). Одним из лучших считается Acronis RecoveryExpert (стоимость - около $15).

Эта программа испытывалась в следующих условиях. Было создано три раздела: Linux ext3, Windows Extended и NTFS. Они были отформатированы соответствующим образом и на них были скопированы файлы. Поле этого из-под Windows 98 утилитой fdisk эти разделы были удалены. Дальше за дело взялся RecoveryExpert. Сразу скажу: работать с ним легко - весь процесс восстановления сопровождался короткими, но понятными подсказками. Если отбросить традиционные для коммерческих продуктов диалоги приветствия и поздравления с завершением, то работа программы состояла из трех частей: выбора винчестера, на котором нужно восстановить данные, анализа диска и самого восстановления.

Ищем удаленные разделы на не размеченной области диска

В самом начале пользователю представляется выбор: контролировать весь процесс работы или понадеяться на интеллектуальные способности программы. Рекомендую выбрать ручной режим. Далее требуется более точно указать пространство диска (рис. 1), на котором следует искать утерянные данные. Если в следующем диалоговом окне вы выберете полный, а не быстрый анализ винчестера, то наверняка успеете попить пивка и даже выкурить трубочку. Ведь программа будет вынуждена сканировать каждый сектор на предмет наличия метки файловой системы - тогда как при быстром анализе предполагается, что раздел начинается с первого сектора цилиндра, а это дает значительный рост производительности.

Выбрать для восстановления расширенный раздел MS-DOS не получается:-(

Когда процесс сканирования подойдет к концу, укажите те разделы, которые, собственно, нуждаются в восстановлении (рис. 2). Как я говорил, на диске существовал расширенный раздел с логическим диском. В документации к gpart этот случай описывался как не вполне тривиальный. Интересно, что RecoveryExpert (эксперт?) отреагировал на данную ситуацию подобным же образом (забегая наперед, скажу, что раздел все же был восстановлен и данные не потерялись).

Лучше потратьте несколько секунд на изучение информации. Параметры всех разделов верны?

Следующим делом пользователю представляется случай полюбоваться на графическое представление структуры диска после его успешного восстановления. Потом - то же самое, но в текстовом виде (рис. 3).

Осталось нажать кнопку Приступить и пожелать себе удачи.


Как организован диск
Почему вообще оказывается возможным спасти стертые программой типа fdisk разделы?

Современные винчестеры имеют объем 40:120 Гб. Все дисковое пространство одного физического устройства принято (и это разумно) делить на несколько частей, называемых разделами (партициями, partition). Зачем? Во-первых, некоторые операционные системы (UNIX-подобные) требуют этого сами по себе, в других случаях удобно "территориально" разделить программы и данные.

Подобно содержанию обычной книги, дающему информацию о размещении глав и разделов, на винчестере содержится специальный объект - MBR (Master Boot Record, основная загрузочная запись). Как раз там и описывается, как поделен диск,- точнее, какой номер первого сектора раздела, каково количество секторов, ему принадлежащих, предоставляется также некоторая другая информация. При включении компьютера BIOS считывает эту запись, загружает ее в память (а на самом деле это маленькая программка! вот поэтому и существуют загрузочные вирусы) и передает ей управление. В стандартном случае MBR просто загружает операционную систему, находящуюся в "активном" разделе. В другом случае - при использовании Linux и Windows 2000/XP - пользователю предлагается меню, позволяющее загружать ОС по выбору.

Кроме регистрации в MBR, первый блок (несколько секторов) каждого логического диска, имеет специальную метку. Эта метка не стирается, когда вы удаляете раздел, скажем, с помощью fdisk,- она будет затерта позднее, когда на данном логическом диске будет создана файловая система. Таким образом, просмотрев последовательно сектора на винчестере, с большой вероятностью можно найти все уделенные разделы. Это не очень сложно, тем более что для этих целей создано несколько программных решений.

Источник: http://www.codingclub.net/

Категория: OC | Добавил: X-SAM (2006-05-04) | Автор: Николай Ткаченко
Просмотров: 1220 | Рейтинг: 0.0

Всего комментариев: 0
Имя *:
Email *:
Код *:

Украинская Баннерная Сеть
Поиск по каталогу

Кнопки друзей

Статистика
Рейтинг сайтов Powered by MyPagerank.Net

Copyright DEBUGGER © 2007 Используются технологии uCoz