Новости :

Восстановление загрузчиков Linux/FreeBSD

Достаточно частой является ситуация, когда на одном компьютере одновременно установлены две операционные системы, например, Windows и Linux или Windows и FreeBSD. При этом нередко случается необходимость переустановить Windows.
Те, кто оказывался в подобной ситуации, знают, что в таких случаях происходит затирание загрузчика Linux (FreeBSD), и вторая операционная система (Linux или FreeBSD) становится недоступной для загрузки.

Загрузчик становится недоступен потому, что при установке/переустановке Windows переписывает MBR - Master Boot Record (главную загрузочную запись диска), записывая туда свой загрузчик. Соответственно, любой другой загрузчик, находившийся там, будет затёрт. Очевидно, специалисты Microsoft ставили целью избавить конечного пользователя Windows от проблем, связанных с загрузчиком, и пытались облегчить установку ОС. Тем же, у кого на диске расположена не одна, а несколько операционных систем, такая ситуация только добавляет хлопот.

Затирания загрузчика при переустановке Windows можно избежать, если до инсталляции операционных систем произвести некоторые манипуляции с диском. Но об этом речь пойдет ниже.

А сейчас давайте рассмотрим, что же делать, если загрузчик Linux/FreeBSD стал недоступен. Конечно, можно заново переустановить Linux/FreeBSD, но делать это всякий раз после переустановки Windows, согласитесь, не хотелось бы.


    Восстановление загрузчика состоит из следующих основных этапов:

    1. Вначале необходимо каким-то образом загрузить установленную систему.
    2. Затем, при необходимости, следует поправить конфигурационные файлы загрузчика и перепрописать его в MBR.


Загрузка системы Linux


Для загрузки системы можно использовать, например, загрузочную дискету Linux/FreeBSD, создать которую всегда предлагается в ходе инсталляции ОС.

Если у вас нет загрузочной дискеты, но есть загрузочный CD, то можно поступить следующим образом. Обычно на загрузочных дисках присутствует возможность загрузки в режиме Rescue. В качестве примера берём Linux Red Hat.
В приглашении boot: пишем:

boot: linux rescue 

На экран будет выдана информация, куда примонтирована файловая система, например:

 
/mnt/sysimage 

делаем его корневым:

  
chroot /mnt/sysimage 

потом создаём дискету:

  
mkbootdisk --device=/dev/fd0 <версия ядра> 

Версию ядра можно посмотреть по:

uname -r 

Обратите внимание, версия ядра может не совпадать с установленной в самой ОС!


Еще один способ создания загрузочной дискеты Linux - с помощью установочного CD с Linux.
Обратитесь к диску из Windows. Вполне возможно, что программа автостарта запустит меню, где одним из пунктов будет предложено создать загрузочную дискету. Если программа автостарта не сработала, необходимо выполнить следующие действия.
Находясь в Windows, перейдите в каталог dosutils диска. Там вы увидите программы:

rawwritewin.exe
rawwrite.exe

Запустив rawwritewin.exe мышью, либо из командной строки, вы получите диалоговое окно с предложением выбрать путь к образу диска. Образы дисков находятся в каталоге images, вам нужно выбрать файл imagescdrom.img, если дистрибутив Linux расположен на CD, и imageshd.img, если дистрибутив лежит на жестком диске. В Red Hat Linux для создания загрузочной дискеты используется один образ - imagesbootdisk.img.
Подробнее об особенностях создания загрузочной дискеты с вашим дистрибутивом вы всегда можете прочитать в файле INSTALL.txt, расположенном в корне диска с дистрибутивом (если дисков несколько - в корне первого диска).

После этого вам будет предложено вставить в дисковод чистую дискету, и на нее запишется образ загрузочного диска.

Для предпочитающих аскетичный интерфейс те же действия можно совершить, набрав в командной строке, например:

i:dosutilsrawrite.exe -f i:imagescdrom.img 

Где первая буква (в данном примере - i) - буква вашего CD-ROM-диска.

Подробнее получить справку о команде rawwrite.exe можно, набрав ее с опцией -h:

>i:dosutilsrawrite.exe -h


Восстановление загрузчика Linux


Итак, загрузочную дискету вы создали. Загружаемся с нее и видим следующее приглашение:

boot: 

Этим приглашением система просит указать ей boot-раздел (раздел, с которого ей следует грузить ядро).
Указываем первый диск, на котором расположен ваш Linux:

boot: vmlinuz -S root=/dev/hda5 

где /dev/hda5 - это первый раздел диска, на котором установлен Linux. В данном случае это пятый раздел первого IDE диска.

Если вы неправильно укажете имя раздела, например, ошибетесь в цифре, то увидите похожую ошибку:

kernel panic: VFS: Unable to mount root fs on 3a:05  

Ошибка означает, что диспетчер файловых систем не может смонтировать root-раздел с того диска, который вы ему указали.

Если вы указали раздел правильно, то, скорее всего, вам удастся загрузить систему и войти в нее под пользователем root. Ошибки, которые, возможно, вы увидите при загрузке, игнорируйте.


Иногда загрузить систему таким образом не удается. Не отчаивайтесь.
В ответ на приглашение:

boot:

Наберите:

vmlinux root=/dev/ваш_root_раздел init=/bin/bash/ rw

Этим вы монтируете ядро в режиме чтение-запись, а вместо процесса init, выполняющего в системе вызов интерпретатора команд, загружаете интерпретатор команд bash. Будьте осторожны, в этих условиях вы легко можете повредить систему, так как из-за отсутствия init вы лишились контроля за недопустимыми действиями с вашей стороны. Сделайте только необходимые для восстановления загрузчика изменения (речь о них пойдет ниже), затем сбросьте кеш диска командой:

sync

и перемонтируйте корневую файловую систему в режим только для чтения:

mount -o remount,ro /

После этого дайте команду:

reboot

для перезагрузки системы.

Если вы совершили правильно все действия по восстановлению загрузчика (включая те, о котрых пойдет речь ниже), перед вами окажется ваш привычный lilo (GRUB).


Правка конфигурационных файлов для восстановления загрузчика


После того, как вы попали в систему, наберите путь к загрузчику, например:

/sbin/lilo -v  

если в качестве загрузчика используется lilo.

Или:

/sbin/grub-install /dev/hda  

для загрузчика GRUB. Где /dev/hda - это ваш диск.


Восстановление загрузчика FreeBSD


Для восстановления загрузчика FreeBSD также можно воспользоваться различными способами.

Первый способ
Находясь в Windows, можно вставить установочный CD в дисковод, и через командную строку зайти в каталог TOOLS на этом диске (или же просто пишем команду через Run с указанием всех путей):

 ...TOOLS> bootinst.exe boot.bin   

Второй способ
Загружаемся с установочного диска и попадаем в sysinstall - универсальный инсталлятор/конфигуратор системы.
Выбираем вариант установки Custom, затем заходим в Partition. Попадаем в редактор дисков и, не делая никаких изменений, нажимаем (W)rite.
В диалоговом окне подтверждения отвечаем Yes, затем в появившемся окне выбора загрузчика выбираем Boot Manager.
Эти манипуляции позволят перезаписать загрузчик в MBR.
После чего следует выйти из программы установки и перезагрузить компьютер.

Третий способ
Аналогично загружаемся с установочного диска, в меню выбираем Fixit, там выбираем floppy, если есть загрузочная дискета или CDROM# 2 (опция "live" filesystem, требует наличия 2-го CD FreeBSD).

Откроется консоль, в которой нужно написать:

Fixit# fdisk -B -b /boot/boot0 загрузочное_устройство   

где загрузочное_устройство:
/dev/ad0 - первый IDE-диск или
/dev/da0 - первый SCSI-диск.

Примечание:
Если вы планируете использовать весь диск под FreeBSD, то устанавливать загрузчик не нужно. В fdisk после создания слайса FreeBSD нужно выделить его и нажать кнопку (S)et bootable. В меню выбора загрузчика следует отметить Standart MBR (no boot manager).


Разбивка диска для установки двух и более операционных систем


Чтобы полностью избежать ситуации, когда ваш Linux/FreeBSD загрузчик затирается при переустановке Windows, можно ставить Windows не на первый раздел диска. Оставьте первый раздел диска только для размещения на нем MBR и системных файлов, а операционные системы, в том числе Windows, ставьте на другие разделы.

В этом случае большой размер первого раздела не потребуется, достаточно будет 23-25 Mb. К, сожалению, раздел меньшего размера вам сделать не удастся, так как в этом случае при инсталляции Windows вы будете получать ошибки с сообщениями о нехватке места.

Разбивать диск на разделы можно любой программой, предназначенной для работы с партициями, например, PartionMagic, PartitionExpert. Файловую систему для этого диска можно выбрать FAT16.

На этом же диске, по своему желанию, можете поместить DOS, командную оболочку, скажем, Norton Commander или Volcov Commander, - это может оказаться удобным, например, когда вы грузитесь с загрузочной дискеты DOS или Windows.

Операционную систему Windows ставьте, например, на второй раздел диска. Если у вас нет опыта установки нескольких операционных систем на один диск, то ставьте сначала Windows, а затем Linux или FreeBSD. В этом случае в качестве загрузчика будет использоваться lilo или GRUB.

При таком разбиении диска повторная установка Windows не вызовет затирания MBR и не приведет к потере Linux/FreeBSD загрузчика. Вы сможете переустанавливать операционные системы на вашей машине столько, сколько захотите, без боязни потерять доступ к какой-то из них.


Дополнительная документация


LILO mini-HOWTO
Мультизагрузка с GRUB
Linux + Win9x + GRUB HOWTO
Linux + WindowsNT mini-HOWTO
Использование FreeBSD совместно с другими операционными системами
Загрузка FreeBSD с использованием GRUB

Источник http://ru-board.com/new/article.php?sid=159

Автор lynx
Комментарии: (0) | UNIX | 2006-07-04