Настройка загрузки

Настройка загрузки "Одно из двух: либо мы грузим Linux, либо... одно из двух."

В прошлой статье мы рассмотрели процесс установки операционной системы Linux. Сегодня мы рассмотрим процесс реализации множественной загрузки. Т.е. возможность выбора загрузки ОС Windows или Linux на одном компьютере.
Есть три способа настроить множественную загрузку: Windows 9X + loadlin, Linux Loader (lilo) и меню Windows 2000. Рассмотрим каждый из них.
Первый способ применяется тогда, когда на компьютере стоит Windows 9X и нет желания ставить какой-либо Boot Loader. Тогда для реализации множественной загрузки используются файлы autoexec.bat и config.sys. Почти все знают, наверно, что если во время загрузки Windows 9X нажать клавишу F8, то выскочит загрузочное меню. Так вот, мы создадим такое же меню, которое будет появляться во время загрузки и позволяет выбрать, что мы будем загружать, Linux или Windows. Для этого изменим файл config.sys следующим образом:

[COMMON]
; <Здесь располагаются команды загрузки общих драйверов и т.п>

[MENU]
MENUITEM=W,Windows
MENUITEM=L,Linux

[W]
; <Здесь располагаются команды загрузки драйверов,
; необходимых для работы в Windows>

[L]
; <Здесь чаще всего ничего нет>

Кратко поясним. Как видно из примера, в секции MENU мы задаем два варианта загрузки на выбор. Для этого первым в строке идет ключевое слово MENUITEM, далее символ равенства, а после него обозначение, которое будет использоваться для обозначения секции, соответствующей данному варианту, в которой будут написаны команды загрузки драйверов для этого же варианта. После запятой следует строчка, которая будет появляться на экране, обозначая данный вариант. Стоит упомянуть, что секция COMMON должна содержать команды загрузки драйверов, общих для всех вариантов загрузки.
Далее, необходимо изменить файл autoexec.bat, чтобы он выглядел примерно так:

@echo off
SET PATH=C:\WINDOWS;C:\WINDOWS\COMMAND
SET PROMPT=$p$g
SET TEMP=C:\WINDOWS\TEMP
SET TMP=C:\WINDOWS\TEMP
mode con codepage prepare=((866) C:\WINDOWS\COMMAND\ega3.cpi)
mode con codepage select=866
keyb ru,,C:\WINDOWS\COMMAND\keybrd3.sys

goto %config%
:W
win
goto END
:L
cd linux
linux.bat
:END

Часть до команды "goto %config%" представляет собой самые обычные команды, присутствующие в любом подобном файле. Здесь, как и в config.sys, следует описать команды общие для всех вариантов загрузки системы. Команда "goto %config%" говорит системе, что необходимо глянуть, какой вариант выбрал юзер во время загрузки, и перейти на соответствующую секцию. Секция варианта начинается с двоеточия и обозначения, которое вы дали данному варианту в секции MENU файла config.sys. Далее, с новой строки, идут команды загрузки необходимой операционной системы. Для Windows это обыкновенная команда "win". Для загрузки же Linux необходимо сделать следующее: создаем на диске C: каталог Linux, копируем в него файл loadlin.exe, который берем на компакт-диске с дистрибутивом Linux. Обычно он лежит в каталоге \dosutils. Затем, грузимся в Linux с использованием загрузочной дискеты, созданной при установке, и копируем в тот же каталог ядро Linux. Оно располагается в каталоге /boot и называется vmlinuz-X.X.XX. Если Linux стоит на ReiserFS, то для загрузки может понадобиться файл initrd-X.X.XX.img или подобный. Он располагается там же. После этого идем обратно в Windows и в каталоге Linux создаем файл linux.bat. В него пишем следующую команду:

loadlin.exe vmlinuz root=/dev/ hdaX rw
или для загрузки с ReiserFS:
loadlin.exe vmlinuz root=/dev/ hdaX rw initrd=initrd.img
где: vmlinuz — файл ядра Linux; /dev/hdaX — раздел, на который установлен Linux.

Параметр initrd указывает, что в память надо загрузить файл с драйвером ReiserFS. Далее в autoexec.bat мы прописываем команду перехода в созданный нами каталог и запуск файла linux.bat. Последней командой в не последней секции должна быть команда "goto END", где END — метка в конце файла. По этой команде мы переходим в конец файла и, следовательно, завершаем выполнение операции загрузки.
Необходимо добавить, что данный метод будет работать в том случае, если в файле msdos.sys параметры BootMulti и BootGUI равны 0. Для Windows ME еще потребуется поставить патч, который включает возможность работы в DOS. Его можно найти в Internet, введя в строку поисковика "Real DOS-Mode Patch for Windows ME".
Второй способ применяется в тех случаях, если вам нравится использовать Boot Loader или не стоит Windows. Тогда для выбора варианта загрузки используется загрузчик lilo — Linux Loader. Обычно он ставится в процессе установки Linux. Но не всегда так, как хотелось бы. Рассмотрим, как сконфигурировать lilo на ваш вкус и поставить его. Для этого необходимо загрузиться в Linux как root и отредактировать файл /etc/lilo.conf. Документация по конфигурации lilo лежит в каталоге /usr/doc либо в /usr/share/doc. Там же есть скрипт QuickInst, запустив который можно настроить и поставить lilo. Я кратко опишу структуру файла lilo.conf. Этот файл состоит из команд и переменных. Команда указывает действие либо часть конфигурационного файла, переменная же задает какой-либо из параметров и его значение. Основные команды и переменные:
— BACKUP=<backup_file> — указывает, что при установке lilo следует скопировать оригинальный boot sector в файл <backup_file> для возможного последующего его восстановления;
— BOOT=<boot_device> — устанавливает имя устройства для загрузки, т.е. тот диск, в чей boot sector будет ставиться lilo. Если Linux стоит на первом винчестере, то стоит использовать /dev/hda;
— COMPACT — позволяет более компактно установить lilo;
— DEFAULT=<name> — указывает, какой вариант использовать в качестве дефолтового во время загрузки;
— DELAY=<tsecs> — указывает количество времени в десятых долях секунды, после которого будет загружаться первый вариант;
— INSTALL=<boot_sector> — устанавливает указанный файл в качестве нового boot sector'а. Если параметр не указан, то используется файл /boot/boot.b;
— TIMEOUT=<tsecs> — указывает количество времени в десятых долях секунды, после которого, если не была нажата ни одна клавиша, будет загружаться первый или дефолтовый вариант;
— LABEL=<name> — указывает название варианта, которое надо вводить в строке приглашения lilo для загрузки соответствующей операционной системы;
— PASSWORD=<password> — указывает пароль, который надо вводить при попытке загрузки данного варианта, пароль чувствителен к регистру;
— SINGLE-KEY — включает загрузку варианта по нажатию соответствующей клавиши (первая буква названия варианта или символ, указанный в команде ALIAS);
— ALIAS=<symbol> — указывает символ, который будет соответствовать данному варианту загрузки;
— INITRD=<name> — указывает файл, который будет загружен во время загрузки как начальный RAM-диск, служит для того же, что и в первом варианте при использовании loadlin;
— IMAGE=<name> — указывает имя ядра Linux для загрузки, используется для реализации загрузки с несколькими вариантами ядра;
— OTHER=<file_name> — указывает файл, содержащий boot sector другой операционной системы, которая загружается в данном варианте загрузки;
В нашем случае, если Windows стоит на первом разделе, для получения boot sector'а надо выполнить следующую команду:

dd if=/dev/hda1 of=/boot/boot. sect bs=512 count=1
где: if — параметр, указывающий раздел; of — параметр, указывающий выходной файл; bs — размер блока; count — количество читаемых блоков.

Пример конфигурационного файла:
password = Cool
single-key
image = /vmlinuz
label = linux
alias = 1
other = /dev/hda1
label = windows
alias = 2

В данном случае создаются два варианта, причем lilo будет устанавливаться на текущий раздел, т.е. на раздел Linux, который должен быть активным. Для установки lilo надо набрать команду "lilo". Если файл конфигурации не содержит ошибок, то lilo будет установлен. После перезагрузки появится строка, в которой для загрузки необходимой операционной системы надо будет ввести имя варианта или нажать соответствующую клавишу, смотря как вы сконфигурируете lilo.
Третий вариант используется, если у вас стоит Windows 2000 и вы хотите реализовать загрузку Linux в меню W2k-загрузчика. Для этого надо сделать так: ставим lilo в boot sector Linux-раздела с одним лишь вариантом загрузки и TIMEOUT=0, потом делаем слепок данного boot sector'a, как это описывалось выше, и копируем его на Win2k раздел, например как c:\linux.sect. После чего грузимся в оную операционную систему и добавляем в файл BOOT.INI следующую строку:

C:\linux.sect="Linux"

В данном случае при перезагрузке в меню появится пункт "Linux", выбрав который вы загрузите Linux. Стоит сказать, что будет лучше, если Win2k стоит на NTFS — меньше проблем будет. Активным разделом должен быть раздел Win2k.
Надеюсь, данные методы помогут вам настроить множественную загрузку.

За кривизну чьих-либо рук автор ответственности не несет;-)

X-Stranger, xstranger@tut.by


(c) компьютерная газета




Компьютерная газета. Статья была опубликована в номере 19 за 2001 год в рубрике soft :: linux

©1997-2024 Компьютерная газета