![]() |
В.А.КостроминОС Linux на Вашем персональном компьютере |
![]() Закажите в LinuxCenter |
Назад | Вернуться к оглавлению. | Далее |
17. Несколько ОС на одном компьютере или загрузка ОС по выбору (продолжение) |
В этом разделе, говоря о Windows NT, я все время буду иметь в виду и Windows 2000, так как в части установки Линукс тут различий нет. Будем предполагать, что Windows NT/2000 установлена в разделе /dev/hda2. Раз ОС Windows NT на Вашем компьютере уже установлена, значит и OS Loader тоже уже установлен, а, следовательно, вполне логично использовать его и для загрузки Линукс. Я надеюсь, что Вы сделали резервную копию всей ценной для Вас информации с жесткого диска(ов). После этого можно перейти к установке Линукса. Этапы установки можно описать следующим образом.
1. Если Вы не сделали этого ранее, то до начала каких-либо действий по инсталляции Линукс изготовьте загрузочные дискеты для загрузки и восстановления Windows NT (воспользуйтесь пунктом ?????).
2. С помощью программы PartitionMagic освободите часть дискового пространства и создайте на свободном месте раздел типа ext2 (файловая система Линукс) и swap-раздел. О том, как это сделать и что надо при этом учесть, было рассказано в предыдущих разделах.
3. Проведите процедуру инсталляции Linux, следуя рекомендациям, прилагаемым к имеющемуся у Вас дистрибутиву. В ходе процедуры инсталляции учтите следующее:
4. После завершения инсталляции загрузите Линукс с помощью загрузочной дискеты (если Вы установили LILO в раздел Линукс и не трогали MBR, то другой возможности у Вас пока нет). После этого можно убрать загрузочную дискету из дисковода (обратите внимание на то, что ее даже размонтировать не надо).
5. Скопируйте загрузочный сектор Linux в файл; он понадобится для того, чтобы загрузчик Windows NT/2000 мог запускать Linux. Для этого надо смонтировать чистую дискету, например, так:
[root]# mount -t vfat /dev/fda1 /mnt/floppyи перейти в каталог /mnt/floppy
[root]# cd /mnt/floppyи выполнить команду
[root]# dd if=/dev/hda3 of=/mnt/floppy/bootsect.lnx bs=512 count=1которая позволяет записать содержимое загрузочного сектора диска /dev/hda3 в файл /mnt/floppy/bootsect.lnx.
Примечание. Хочу заметить, что если диск C: (hda1) сформатирован в системе FAT (у меня это именно так, поскольку первой была установлена Windows 95, а, кроме того, в случае любых затруднений я всегда могу загрузиться хотя бы в ДОС с дискеты), то можно сразу создать файл bootsect.lnx в корневом каталоге диска C:. Отмечу, что я не знаю (не пробовал) можно ли будет загружаться без дискеты, если первый раздел загрузочного диска отформатирован в NTFS. Но думаю, что проблем и здесь не будет, кроме необходимости переноса boot-сектора через дискету. поскольку пока что поставляемые в дистрибутиве варианты ядра не поддерживают NTFS (для ее поддержки надо переконфигурировать ядро, смотри по этому поводу раздел о конфигурации ядра).
6. Далее необходимо перезагрузиться, чтобы запустить Windows NT, для чего даем в Линукс команду:
[root]# shutdown -h nowПоскольку главная загрузочная запись не была изменена, должна загрузиться Windows NT. После завершения загрузки необходимо перенести файл /mnt/floppy/bootsect.lnx в корневой каталог диска C:, точнее - в корневой каталог того раздела, с которого загружается Windows NT. В зависимости от того, как Вы устанавливали Windows NT, это может быть как FAT16-раздел, так и NTFS-раздел. Признаком нужного раздела является наличие в нем файлов ntldr и boot.ini (эти файлы могут быть скрытыми!). Файлу bootsect.lnx можно присвоить атрибут read-only.
7. После завершения загрузки NT ищем файл boot.ini в корневом
каталоге и
добавляем в него следующую строчку:
C:\bootsect.lnx="LINUX"
(естественно, что в кавычках Вы можете поставить все, что Вам угодно).
8. Осталось перезапустить компьютер еще раз, причем при загрузке Вы уже будете иметь возможность выбрать Linux для загрузки. После этого будет запущен LILO, который загрузит Linux.
Теперь отдельно рассмотрим случай, когда Вы (по ошибке или намеренно) установили lilo в главную загрузочную запись диска (Master Boot Record, MBR). В этом случае загрузочная запись Windows NT/2000 будет затерта и загрузить Windows NT (смотри шаг 6 выше) уже будет невозможно. Если Вы все еще намерены пользоваться загрузчиком OS Loader от NT, а не lilo, последовательность действий несколько изменяется: вместо шага 6 необходимо проделать следующее:
6.1. Загрузите Windows NT/2000 с загрузочных дискет (смотри шаг 1). При этом необходимо выбрать в меню загрузчика пункт Recover, а затем - режим Command mode. При запросе следует зарегистрироваться с учетной записью администратора системы (Administrator).
6.2. Восстановите главную загрузочную запись диска. Для этого можно дать команду fdisk /mbr. У меня получалось, хотя в некоторых статьях утверждается, что восстановить таким образом MBR удается не всегда. В Windows 2000 имеются специальные команды fixboot и fixmbr. Выполните их обе в указанном порядке. Теперь Windows 2000 снова будет загружаться нормально.
6.3. Перезапустите компьютер с загрузочной дискеты Linux и зарегистрируйтесь в системе с полномочиями администратора (root).
6.4. Введите команду cd /etc и откройте файл lilo.conf. В начале файла есть ссылка на загрузочный раздел по умолчанию, например, /dev/hda.
6.5. С помощью любого редактора, например, редактора Kedit из KDE, следует изменить это значение на диск и раздел, куда была установлена Linux. Если Linux установлена в раздел /dev/hdc1, то именно это и следует записать, т.е. поменять /dev/hda на /dev/hdc1. Если вы не помните, куда именно установлен Linux, найдите последнюю переменную файла /etc/lilo.conf - переменную image. В ней хранится нужное значение.
6.6. Выполнить lilo для записи загрузчика в раздел /dev/hdc1 (команду lilo нужно выполнить без аргументов). Будет выдано предупреждение о том, что раздел не является первым на диске. Именно это нам и нужно, чтобы загрузочная запись Windows 2000 осталась в целости и сохранности.
6.7. Выполнить шаги 6-8 приведенного выше алгоритма.
Вы легко можете заметить, что сложная последовательность операций 6.1-6.6 с двумя лишними перезагрузками потребовалась только для того, чтобы перенести загрузочный сектор Линукс из MBR в первый сектор раздела, отведенного для Линукс, и восстановить MBR от Windows.
Все, на этом установка завершена и Вы имеете возможность на этапе загрузки выбирать ту ОС, которая будет осуществлять управление Вашим компьютером.
Так же, как в случае с Windows NT, приведем пошаговые инструкции того, как в этом случае настроить процесс загрузки.
1. До начала каких-либо действий по инсталляции Линукс изготовьте загрузочную дискету Windows.
2. С помощью программы PartitionMagic освободите часть дискового пространства и создайте на свободном месте раздел типа ext2 (файловая система Линукс) и swap-раздел. О том, как это сделать, рассказано выше. Если обьем Вашего жесткого диска превышает 8,4 ГБ, особенно внимательно прочитайте разделы 17.2-17.4.
3. Проведите процедуру инсталляции Linux, следуя рекомендациям, прилагаемым к имеющемуся у Вас дистрибутиву. Учтите, что если Вы вознамерились использовать загрузчик Lilo, Вам необходимо при инсталляции системы установить Lilo в основную загрузочную запись (Master Boot Record). Изготавливать в процессе установки загрузочную дискету, в принципе, не обязательно, но я очень рекомендую Вам это сделать.
Примечание: В документации по LILO говорится, что загрузчик lilo может устанавливаться не обязательно в главную загрузочную запись диска, а может располагаться в загрузочной записи первичного активного Linux-раздела или даже логического раздела в расширенном разделе. В таком случае в MBR должно быть нечто, способное его загрузить, например, стандартный загрузчик MS-DOS или Windows (записывается командой fdisk /mbr). Но необходимости применения такого варианта я не вижу (раз уж Вы используете lilo в качестве основного загрузчика), поэтому здесь его рассматривать не будем.
4. На следующем шаге нужно заставить lilo загружать ОС по выбору. Lilo конфигурируется с помощью файла /etc/lilo.conf и команды lilo. Эта команда устанавливает (или переустанавливает) Lilo.
Рассмотрим небольшой пример файла конфигурации LILO. Для примера будем считать, что устройство /dev/hda1 является разделом с DOS/Windows, а раздел /dev/hda2 содержит Linux. В таком случае файл /etc/lilo.conf может иметь примерно такой вид:
boot = /dev/hda2
compact
delay = 50
# message = /boot/bootmesg.txt
root = current
image = /boot/vmlinuz-2.2.11-4bc
label = linux
read-only
other = /dev/hda1
table = /dev/hda
label = dos
Дадим некоторые пояснения к этому примеру.
Строка TABLE=<device> содержит указание на устройство, на котором находится таблица разбиения диска. LILO не передает информацию о разбиении загружаемой операционной системе, если эта переменная не задана. (Некоторые операционные системы имеют другие средства для определения того, из какого раздела они загружены.) Не забывайте, что необходимо выполнить команду /sbin/lilo, если Вы изменили ссылку на таблицу разбиения, задаваемую переменной TABLE.
Если Вы задали строку (лучше сказать, секцию) other = /dev/hda1 в файле /etc/lilo.conf, то в корневом каталоге диска /dev/hda1 (диска C: в терминологии Microsoft) должен находиться вторичный загрузчик. У меня, например, на одном из компьютеров с многовариантной загрузкой там находится NT Loader (поскольку Windows NT была установлена до Линукс) и lilo успешно загружает Windows NT. Только надо установить задержку времени равной нулю, чтобы не получать собственного меню загрузки NT Loader. Впрочем, если Вы хотите по каким-то причинам видеть это меню, то значение timeout в файле boot.ini надо задать отличным от нуля (задается в секундах). Это может понадобиться, например, для обеспечения возможности загружать Windows 98 как еще один вариант ОС.
Если вы хотите грузить Win 9? непосредственно из lilo, то добавьте в /etc/lilo.conf:
other = /boot/bootsect.dos label = winгде файл bootsect.dos берется из корневого каталога того диска, на котором стоит NT Loader .
5. После того, как Вы откорректировали файл /etc/lilo.conf, необходимо выполнить команду /etc/lilo, чтобы изменения вступили в силу. Эта команда (которая в руководстве называется map-installer) устанавливает загрузчик системы, который будет активизирован во время следующей загрузки машины. Прежде, чем запускать /etc/lilo для модификации загрузочных процедур, выполните эту команду с параметром -t. При этом будет выполнена вся процедура инсталляции загрузчика, кроме изменения map-файла, записи модифицированного загрузочного сектора и изменения таблицы разбиения диска, то есть выполнен тест нового варианта. Если добавить еще опцию -v, это позволит убедиться в том, что сделанные Вами изменения разумны.
Когда /sbin/lilo перезаписывает загрузочный сектор, он автоматически сохраняет старое содержимое в файле, по умолчанию /boot/boot.NNNN, где NNNN соответствует номеру устройства, например, 0300 - это /dev/hda, 0800 - это /dev/sda и так далее. Если такой файл уже существует, он не перезаписывается. Но можно задать альтернативный файл для сохранения загрузочного сектора.
Файл /boot/boot.NNNN можно использовать для восстановления старого содержимого загрузочного сектора, если более простой метод его восстановления недоступен. Соответствующие команды имеют вид:
dd if=/boot/boot.0300 of=/dev/hda bs=446 count=1 или dd if=/boot/boot.0800 of=/dev/sda bs=446 count=1(bs=446 потому что восстанавливаем только программу-загрузчик и не трогаем таблицу разбиения диска).
Копию загрузочного сектора лучше сохранить на дискете. В случае, если неприятности произойдут, Вы сможете восстановить старую загрузочную запись MBR, выполнив команду (предполагается, что дискета смонтирована в каталог /mnt):
[root:~#] dd if=/mnt/MBR of=/dev/hda bs=446 count=1
Восстановить старый MBR при необходимости можно также командой /sbin/lilo с опцией -u. Только надо иметь в виду, что эта команда отрабатывает корректно при условии, что каталог LILO (а именно, /boot) не изменялся со времени инсталляции.
Стандартный MBR от MS-DOS может быть восстановлен также, если воспользоваться загрузочной дискетой системы DOS, восстановив MBR командой FDISK /MBR. Она изменяет только код программы-загрузчика в MBR, не изменяя таблицу разбиения диска.
6. После переустановки загрузчика надо перезагрузить компьютер, опробовав разные варианты загрузки.
В заключение подраздела приведем некоторые сведения о том, какие затруднения могут возникать при использовании lilo.
Когда LILO загружается, он выводит на дисплей слово "LILO". Пи этом вывод каждой буквы обозначает завершение определенного действия или этапа загрузки LILO. Если загрузка сорвется, то по числу выведенных букв можно судить о причине возникновения проблемы.
Установка других операционных систем
При инсталляции MS-DOS и Windows 95/98 ее стандартный загрузчик независимо от Вашего желания записывается в Master Boot Record (MBR), а признак активности в таблице разделов ставится на раздел MS-DOS (Windows 95/98). А стандартный загрузчик MS-DOS и Windows 95/98 умеет только передавать управление на первый сектор активного раздела. Поэтому, если Вы вначале установите Линукс, а потом будете ставить Windows 95/98 или MS-DOS, то Линукс перестанет загружаться. Говорят, что Windows NT и 2000 загрузчик из MBR не трогают (но учтите, что сам я этот факт не проверял). Восстановить загрузку LILO можно либо путем перезапуска /sbin/lilo (если LILO установлен в MBR), либо сделав активным раздел LILO (если он установлен в первичный раздел).
С проблемами, возникающими при установке после Линукс другой ОС, обычно можно справиться, загрузившись в Линукс с помощью загрузочной дискеты, откорректировав конфигурационный файл LILO (добавив вызов новой ОС) и запустив /sbin/lilo.
Перенос каталога /boot в DOS-раздел
Последние версии ядра Линукс поддерживают возможность размещения файлов, необходимых на этапе загрузки, в файловой системе MS-DOS (или UMSDOS). Поскольку в большинстве случаев разделы DOS занимают как раз те области диска, где связанные с BIOS ограничения не действуют, это позволяет решить многие проблемы больших дисков, возникающие в тех случаях, когда раздел, отведенный для Линукс, не может быть использован для размещения в нем каталога /boot.
Для того, чтобы реализовать такой вариант загрузки, DOS-раздел монтируется в режиме чтение/запись, создается каталог (например, /dos/linux), в который перемещаются все файлы из каталога /boot и образы ядер Линукс, каталог /boot заменяется символической ссылкой на каталог /dos/linux, новое местоположение каталога /boot указывается в файле /etc/lilo.conf, и, наконец, запускается /sbin/lilo.
LOADLIN предоставляет Вам самый безопасный способ загрузки Линукс с жесткого диска, если Вы имеете на нем загрузочный ДОС-раздел. Большинство новичков, устанавливающих Линукс, слишком нетерпеливы для того, чтобы читать очень хорошее, но очень длинное описание загрузчика LILO, прилагаемое к этой программе (да еще по-английски!). Поэтому они начинают использовать его некорректно, в результате чего теряют возможность вообще загрузить какую-нибудь операционную систему. Для таких людей гораздо удобнее начать освоение Линукс, используя для загрузки LOADLIN.
LOADLIN не требует какой-либо установки, надо только разместить саму программу и образы ядра на одном из дисков, доступных в ДОС. С помощью LOADLIN можно загрузить Линукс с CD или сетевого диска, не используя загрузочной дискеты. Это делает LOADLIN великолепным инструментом на те случаи, когда необходимо загрузить Линукс после какого-то сбоя в работе загрузчика LILO.
Версия 1.6 LOADLIN.EXE работает практически при любых конфигурациях ДОС и имеет очень мало ограничений. Она может использовать расширенную память и может загружать большие ядра (bzImages) и образы виртуальных дисков (initrd) непосредственно в верхние области ОП.
Применение LOADLIN не означает, что Линукс работает под ДОС, так как эта программа обеспечивает "логическую перезагрузку" Вашего компьютера, после чего ДОС полностью заменяется на Линукс. Если Вы хотите вернуться в ДОС, Вы должны перезагрузить компьютер, например, с помощью команды "reboot".
Итак, что же необходимо для того, чтобы воспользоваться программой LOADLIN.
Если Вы запустите команду loadlin без параметров
C:\LOADLIN> loadlin [Enter]то получите подсказку по использованию программы. Удобнее может оказаться запустить ту же программу с параметром more (в стиле Линукс):
C:\LOADLIN> loadlin | more [Enter]
Теперь мы можем рассмотреть последовательность действий по установке Линукс в том варианте, когда загружаться она будет с помощью LOADLIN.
1. Выделите раздел для Линукс (как это сделать - смотрите в предыдущих разделах).
2. Установите Линукс в выделенный раздел. При этом lilo установите в первый сектор Линукс-раздела, чтобы не перезаписать MBR и не потерять возможность загружаться в Windows.
3. После завершения процедур установки загрузите Линукс (если не получается по-другому, то используйте загрузочную дискету). Смонтируйте ДОС-раздел (будем считать, что в Линукс ДОС-раздел именуется как /dev/hda1, а Линукс-раздел - как /dev/hda3)
[root]# mount -t vfat /dev/hda1 /mnt/CСоздайте каталог /mnt/C/loadlin и разархивируйте в него содержимое файла LODLIN16.TGZ с дистрибутивного CD-диска Линукс. Кроме того, поместите туда же файл с образом ядра из каталога /boot. Найти нужный файл образа ядра можно с помощью файла /etc/lilo.conf: найдите в нем строку "image=..." и Вы увидите нужное имя справа от знака равенства. У меня, например, полное имя этого файлы - vmlinuz-2.2.16-3bc, но я при копировании в каталог /mnt/C/loadlin переименовал его в vmlinuz; это имя и буду использовать далее в примерах.
4. Теперь перезагрузите компьютер в ДОС. Если у Вас есть возможность з агрузить непосредственно ДОС, то делайте это сразу, а если нет, то загружайте Windows, при появлении сообщения "Загрузка Windows 95" нажимайте клавишу F8 и выбирайте вариант "Command prompt only". Если Вы не успели нажать F8, то можно дождаться завершения загрузки Windows 95, после чего в меню "Пуск" выбрать пункт "Завершение работы" и в нем - "Перезагрузить компьютер в режиме эмуляции ДОС".
После выхода в режим ДОС перейдите в каталог C:\LOADLIN и выполните команду
C:> CD \LOADLIN C:\LOADLIN> LOADLIN vmlinuz /dev/hda3 ro vga=askили, если Вы хотите загрузить ядро с установкой RAM-диска:
C:\LOADLIN> LOADLIN vmlinuz /dev/ram rw initrd=diskimageМожно также записать все аргументы команды LOADLIN в файл (например, с именем param) и вызвать ту же команду следующим образом:
C:\LOADLIN> LOADLIN @paramsТакая возможность особенно полезна для тех случаев, когда Вы задаете много аргументов командной строки и ее длина становится больше 127 символов. Полное описание всех возможных аргументов (параметров) команды LOADLIN Вы сможете найти в файле PARAMS.DOC или в Интернет на сайтах http://sunsite.unc.edu/mdw/HOWTO/BootPrompt-HOWTO.html и http://rsphy1.anu.edu/~gpg109/BootPrompt-HOWTO.html .
Все, теперь Вы можете пользоваться этим способом загрузки Линукс. Единственное, что остается, это избавиться от необходимости каждый раз при загрузке вводить команду loadlin со всеми параметрами. Для облегчения можно создать bat-файл или прописать вызов loadlin в файл config.sys. Рассмотрим эти возможности подробнее.
Загрузка Линукс из CONFIG.SYS
Начиная с версии 6.0 DOS стало возможным выбирать различные конфигурации запуска MS-DOS с помощью стартового меню. Оно выводится во время интерпретации файла CONFIG.SYS. Следовательно, можно добавить в него дополнительный пункт, выбор которого будет приводить к загрузке Линукс.
Вот пример файла CONFIG.SYS для случая чистого DOS:
SWITCHES=/F [MENU] menuitem=DOS, Выход в DOS menuitem=LINUX_1, Загрузка LINUX menuitem=LINUX_2, Загрузка LINUX с помощью файла параметров menuitem=LINUX_3, Загрузка LINUX с помощью файла параметров, с указанием загрузочного раздела menuitem=LINUX_4, Создание файла сообщений об ошибках [DOS] device=c:\dos\himem.sys device=c:\dos\emm386.exe 2048 ram DOS=HIGH,UMB SHELL=C:\COMMAND.COM C:\ /e:1024 /p ... и так далее [LINUX_1] shell=c:\loadlin\loadlin.exe c:\loadlin\zimage root=/dev/hda3 ro [LINUX_2] shell=c:\loadlin\loadlin.exe @c:\loadlin\linux.par [LINUX_3] shell=c:\loadlin\loadlin.exe @c:\loadlin\linux.par root=/dev/hda3 [LINUX_4] shell=c:\loadlin\loadlin.exe c:\loadlin\vmlinuz -d c:\dump.txt root=/dev/hda1 rem rem Эта команда запускает Линукс в режиме отладки, причем отладочная rem информация записывается в файл c:\dump.txt. rem В этом режиме все происходит как при обычном запуске, но Linux не загружается, rem ВНИМАНИЕ: Не запускайте таким образом Линукс из CONFIG.SYS, если Вы rem не используете [MENU] в CONFIG.SYS, потому что тогда Вам необходима rem загрузочная дискета DOS для того, чтобы загрузиться нормально. [COMMON] rem Здесь можно расположить все другие команды, общие для всех конфигураций rem запуска ....
Пример файла CONFIG.SYS для Windows 95
Если у Вас на машине установлены Windows 95 и Linux, требуется отключить некоторые опции в скрытом файле C:\MSDOS.SYS (это простой текстовый файл).
ВНИМАНИЕ: НЕ ПЫТАЙТЕСЬ ЗАПУСТИТЬ LOADLIN ИЗ ГРАФИЧЕСКОЙ ОБОЛОЧКИ !
Поменяйте атрибуты файла C:\MSDOS.SYS так, чтобы он стал доступным для
модификации и отредактируйте его:
C:\MSDOS.SYS -------------------------------------- BootGUI=0 Logo=0 ... ---------------------------------------------------Это позволит избежать загрузки графической оболочки и выбор пункта меню W95 будет вызывать переход к обычной командной строке ДОС. (Чтобы загрузить графическую оболочку, Вы должны будете ввести команду C:> win).
Файл CONFIG.SYS в этом случае должен иметь примерно такой вид:
C:\CONFIG.SYS ------------------------------------- [menu] menuitem=W95, Загрузка DOS menuitem=LINUX, Загрузка Linux menudefault=W95,10 [W95] rem все, что Вам требуется для запуска DOS ... [LINUX] shell=c:\loadlin\loadlin.exe @C:\loadlin\linuxpar.1 [COMMON] rem ЗДЕСЬ НЕ ДОЛЖНО БЫТЬ НИЧЕГО ! rem переместите все, что здесь было, в секцию W95 ---------------------------------------------------
Если Вы почему-либо не хотите запускать Линукс из конфигурационных файлов, но хотите облегчить процедуру запуска его из командной строки, можете создать командный файл (например, linux.bat), с помощью которого просто запускать Линукс, предварительно загрузившись в режиме ДОС. Я думаю, что приведенных выше данных вполне достаточно для создания необходимого bat-файла.
В заключение хочется отметить, что следуя рекомендациям настоящего раздела, Вы получите только возможность загружать по выбору ту или иную ОС. Совершенно другой подход предлагает компания VMWare Inc., которая создала систему виртуальных машин. Эта система позволяет одновременно иметь на компьютере две (или даже несколько ОС). Виртуальным машинам посвящен отдельный раздел настоящей энциклопедии.
Назад | Вернуться к оглавлению. | Далее |
![]() |
В.А.Костромин
Последние изменения в содержание файла внесены 2 февраля 2001 г. |
|
|