Глава 11. Установка загрузчика операционных систем

Прежде всего, независимо от выбора между GRUB и LILO, необходимо чётко определиться с тем, где именно разместить загрузчик.

Если для загрузки всех операционных систем предполагается использовать один из предлагаемых инсталлятором загрузчиков, то в поле Загрузочное устройство необходимо выбрать первый диск системы; обычно это /dev/hda или /dev/sda. При таком выборе загрузчик будет размещён в MBR жёсткого диска и первым получит управление от BIOS. Для загрузки различных ОС информацию о их существовании следует просто прописать в файлах конфигурации загрузчика. При установке Linux рядом с уже существующими системами Windows инсталлятор автоматически ищет их загрузочные разделы и прописывает их в конфигурацию загрузчика. Например, вот так (третий пункт меню dos — /dev/hda1) выглядит отметка о необходимости загрузки DOS или Windows NT с FAT16:

Рисунок 11.1. Диалог конфигуратора загрузчика

Диалог конфигуратора загрузчика

Впоследствии, если появятся дополнительные разделы с новыми ОС, то их можно легко включить в конфигурацию загрузчика вручную. Например, для LILO необходимо сделать следующее: в файле /etc/lilo.conf добавить новый раздел описания ОС по аналогии со следующей записью:

    other=/dev/hda1
    label=windows
    table=/dev/hda
  

Данная запись сообщает LILO о том, что на раздел /dev/hda1 установлена неизвестная ОС; в меню её надо отобразить под именем “windows”; в случае выбора пользователем этого пункта меню передать управление на загрузочный сектор /dev/hda1.

После сохранения данного файла конфигурации необходимо дать команду:

$ lilo

для того, чтобы изменения вступили в силу.

Добавление новых записей в GRUB отличается от LILO. Например, для аналогичного добавления в конфигурационный файл GRUB (/boot/grub/menu.lst) необходимо добавить следующую запись:

    title Windows
    rootnoverify (hd0,0)
    chainloader +1
  

Если для загрузки ОС используется какое-либо другое программное обеспечение, то загрузчик Linux необходимо установить в загрузочный сектор корневого раздела, на который ОС Linux только что была установлена. Например, если корневой раздел (смонтированный как /) был размещён на /dev/hdb8, то и в поле Загрузочное устройство необходимо написать /dev/hdb8. Общее правило: если устройство указано как “полный” жесткий диск (без указания номера раздела — например, /dev/hda), то загрузчик будет поставлен в MBR указанного диска; если устройство указано как раздел диска (в конце номер раздела), то загрузчик будет установлен в загрузочный сектор соответствующего раздела. После того, как загрузчик Linux размещён, необходимо сообщить общему загрузчику всех ОС о существовании нового раздела и необходимости передачи ему управления. Как это сделать — смотрите в документации к используемому вами программному обеспечению.

В принципе, нет никаких проблем иметь на одной машине 6 и более операционных систем. Например, Windows 98, NT4, две OS/2 и две — Linux — отлично уживаются при условии, что каждой операционной системе выделено минимум по одному разделу на жёстком диске. Весь вопрос в допустимом количестве разделов на одном жёстком диске и объёме этого диска (который может быть недостаточным для размещения всех ОС).

Если Linux устанавливается поверх или рядом с уже существующими системами Windows, то обычно все проходит без проблем, и сразу после инсталляции есть возможность загрузить по выбору любую из имеющихся ОС. Однако если сначала установить Linux (зарезервировав место для разделов Windows и, как положено, поместив загрузчик в MBR), а уже позднее установить какую либо версию Windows, то более чем возможны проблемы с последующей загрузкой Linux. Дело в том, что большинство версий Windows при инсталляции без единого слова переписывают содержимое MBR загрузочного жёсткого диска, выкидывая прежнее содержимое и вставляя свой загрузчик, который о Linux и других не-Windows ничего знать не желает. К счастью, решение такой проблемы достаточно простое — перед установкой Windows необходимо в Linux изготовить загрузочную дискету командой:

$ mkbootdisk `uname -r`

(обратите внимание, здесь использованы “обратные” апострофы — backticks) или воспользоваться спасательной дискетой, созданной при установке Linux. После установки Windows, которая уничтожит загрузчик Linux в MBR, необходимо загрузить компьютер с этой дискеты, сообщить загрузчику о появлении новой ОС, как показано выше, и восстановить загрузчик Linux командами:

$ lilo

или

$ /boot/grub/install.sh

в зависимости от ваших персональных предпочтений (LILO/GRUB).

Для того, что бы иметь установленными и работающими две и более ОС Linux на одном компьютере, желательно следовать следующим рекомендациям:

  1. Иметь один общий swap-раздел на всех — ведь пользоваться им будут по очереди. Это может сэкономить некоторое место на диске.

  2. Использовать либо общий независимый загрузчик, а загрузчики каждой копии Linux установить в начальные секторы корневых разделов, либо иметь общий выделенный раздел /boot, монтируемый в корневые разделы, и один общий загрузчик LILO или GRUB, размещённый в MBR. Размер этого раздела может быть небольшим, порядка 20-30 Мб; обычно под него отводят один цилиндр жёсткого диска. При таких условиях не возникает проблем с обновлением ядра обеих копий Linux и с гибкостью конфигурации общесистемного загрузчика.