Мультизагрузка с GRUB Mini-HOWTO

Ivan Kanis, [email protected]
Перевод: Александр Саввин, [email protected]

v1.0, 2001-01-15


Вэтом документе описывается как с помощью GRUM установить Windows 98, Windows 2000, DOS и Linux.

Зачем ?

Я хотел загружать все операционные системы без необходимости прохождения нескольких меню.Я знаю, что могу установить NT поверх win9x, которые установлены поверх DOS. Но чтобы загрузить DOS мне придется пройти меню NT, а затем меню win9x. Мне же хотелось иметь возможность загружать все эти операционные системы за один раз.

Эта задача достаточно не простая. Проблема с операционными системами от Microsoft в том, что все они хотят загружаться из первичного (primary) раздела. Здесь поможет GRUB. Он может скрывать первичные разделы. Вы можете использовать до 3 разделов для установки операционных систем Microsoft. GRUB скроет других 2 раздела, так что операционные системы их не увидят. Это означает, что для доступа к данным из DOS, Win9x и Windows 2000 вам потребуется еще один раздел. 4-й раздел используется для расширенного (extended) раздела.

Мне, также, хотелось иметь систему меню, что позволяет GRUB.

Еще одна приятная особеность GRUB в том, что он поддерживает reiserfs, поэтому мне не нужно держать свой /boot файл в отдельном разделе ext2.


Процедура установки

1 Подготовка загрузочных дискет

Вам потребуются 3 дискеты. Первую сделайте загрузочной дискетой для DOS. Скопируйте на неё fdisk.exe и sys.exe.

FORMAT /S A:
COPY FDISK.EXE A:
COPY SYS.EXE A:

Вторую сделайте аварийной (emergency) дискетой для Windows 98. Третья дискета вам потребуется временно для GRUB.

2 Установка linux

Установите свой любимый дистрибутив linux. Для разбивки диска на разделы вам потребуется fdisk. Предварительно подсчитайте сколько места займёт каждая из ваших операционных систем.

Я разделил свой диск так:

   Device Boot    Start       End    Blocks   Id  System
/dev/hda1             1         6     48163+  16  Hidden FAT16
/dev/hda2             7        19    104422+  16  Hidden FAT16
/dev/hda3            20       593   4610655   1b  Hidden Win95 FAT32
/dev/hda4           594      3737  25254180    5  Extended
/dev/hda5           594       848   2048256    6  FAT16
/dev/hda6           849      2123  10241406    7  HPFS/NTFS
/dev/hda7          2124      2140    136521   82  Linux swap
/dev/hda8          2141      2523   3076416   83  Linux

Мой первый раздел для загрузки Windows 2000. 10МБ для этого вполне достаточно. В этом разделе содержаться файлы, необходимые только для загрузки NT - boot.ini, ntldr, ntdetect.com и т.д.... В моём примере NT будет размещаться в 6-м разделе. Этот раздел Hidden FAT16. My first partition is for booting Windows 2000. 10MG should be plenty to do that. This partition will only contains the file necessary to boot NT such as boot.ini, ntldr, ntdetect.com, etc... NT will reside in partition 6 in my example. This partition is Hidden FAT16.

Второй раздел - для DOS. Мне кажется 100 МБ достаточно. Это также FAT16.

Третий раздел - для Win9x. Я выделил 5 ГБ и для лучшей производительности сделал его FAT32.

Затем для оставшегося места на вашем жестком диске создайте расширенный раздел. Здесь он показан как 4-й раздел на диске.

Создайте раздел на 2 ГБ. Этот раздел используется для обмена данными между всеми операционными системами. Проверьте, что сумма этого и всех предыдущих разделов не превышает 8 ГБ. Это ограничение DOS.

Затем создайте раздел для своей Windows 2000. Я выделил 10 ГБ, поскольку этот вид windows словно ожиревшая свинья. Для скорости я сделал его разделом HPFS/NTFS.

После этого добавьте swap-раздел и раздел linux. Убедитесь, что у вас нет отдельного раздела для /boot. Думаю, для GRUB лучше, если /boot вы сохраните в корневом разделе.

По окончанию установки linux отформатируйте разделы fat16:

mkdosfs /dev/hda1
mkdosfs /dev/hda2
mkdosfs /dev/hda6

3 Установка GRUB

Проверьте, что у вас последняя версия GRUB. Я использую версию 0.5.96.1. Версия из моего дистрибутива устарела и принесла мне много бед. Самую последнюю версию вы можете скачать с http://www.fsf.org/.

Теперь вам нужно установить GRUB на дискету. Вам пока не нужно устанавливать его на жесткий диск, поскольку Windows 2000 его перепишет.

grub-install '(fd0)'

Создайте для GRUB следующий menu.lst. Этот файл живёт в /boot/grub.

#
# Образец конфигурационного файла загрузочного меню
#

# Автоматическая загрузка после минуты
timeout 60

# По умолчанию, загружаем второй пункт
default 1

# Fallback на первый пункт
fallback 0

title Windows 2000
unhide (hd0,0)
hide (hd0,1)
hide (hd0,2)
rootnoverify (hd0,0)
chainloader +1
makeactive

# Для загрузки Linux
title  Linux
root (hd0,7)
kernel /boot/vmlinuz-2.2.17 root=/dev/hda8 video=matrox:vesa:261

title Windows 98
hide (hd0,0)
hide (hd0,1)
unhide (hd0,2)
rootnoverify (hd0,2)
chainloader +1
makeactive

title DOS 6.22
hide (hd0,0)
unhide (hd0,1)
hide (hd0,2)
rootnoverify (hd0,1)
chainloader +1
makeactive

# Для загрузки Linux
title  Linux (single user)
root (hd0,7)
kernel /boot/vmlinuz-2.2.17 root=/dev/hda8 video=matrox:vesa:261 single

title Partition 2 (floppy)
hide (hd0,0)
unhide (hd0,1)
hide (hd0,2)
chainloader (fd0)+1

title Partition 3 (floppy)
hide (hd0,0)
hide (hd0,1)
unhide (hd0,2)
chainloader (fd0)+1

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

4 Установка windows 2000:

Мне потребовалось инициализировать первый раздел перед установкой windows 2000. Вставьте стартовый диск DOS и перегрузите компьютер. После появления командной строки DOS сделайте следующее:

FDISK /MBR
SYS C:

Теперь вы можете продолжать и устанавливать windows 2000. В этот момент Windows 2000 спросит о разделе, в который вы хотите установить. Раздел, созданный вами с помощью fdisk, будет выглядеть как разрушенный (damaged) или неотформатированный. Продолжайте и выбирайте его.

Чтобы спрятать меню Windows 2000 отредактируйте файл boot.ini, который должен быть на диске C:. Измените время таймаута с 30 на 0.

[boot loader]
timeout=0
default=multi(0)disk(0)rdisk(1)partition(1)\WINNT
[operating systems]
...

5 Установка DOS.

Вставьте дискету GRUB. Когда вы увидите меню, вставьте загрузочную дискету DOS. Выберите из меню раздел 2 (floppy). Нажмите enter. Загрузится дискета, а разделы 1 и 3 будут скрыты.

Запустите FDISK и проверьте, что устройство C: является разделом 2. Затем установите DOS:

SYS C:

6 Установка Windows 98

Вставьте дискету GRUB. Когда увидите меню, вставьте аварийную (Emergency) дискету Windows 98. Выберите в меню раздел 3 (floppy). Нажмите enter. Дискета загрузится, а разделы 1 и 2 будут скрыты.

Запустите FDISK и проверьте, что устройство C: является разделом 3. Затем установите Windows 98:

SYS C:

7 Заключительные действия

Протестируйте, что из GRUB всё работает:

Вы должны загрузить все 4 операционные системы с дискеты GRUB.

Если всё в порядке, то можно продолжать и установить GRUB на свой жесткий диск. Из linux наберите:

grub-install /dev/hda

Теперь вы можете загрузить все 4 операционные системы из меню GRUB. Наслаждайтесь!