| Главная > Операционные системы > |
| Как поставить много операционных систем на одном компьютере |
Как поставить много операционных систем на одном компьютере Предлагаемая Вашему вниманию статья описывает методику установки на одной машине всех основных операционных систем для персональных компьютеров: MS DOS + Windows 3.11 + Windows 95 + Windows NT + OS/2 + Linux. Рассматриваются способы организации загрузки систем с использованием загрузчиков от Linux, Windows NT и OS/2. Изложение рассчитано на пользователя, способного самостоятельно инсталлировать каждую из необходимых ему систем по отдельности, но не слишком искушенного в их настройке и использовании. 1. Пролог Эта статья написана для тех, кто хочет держать под рукой сразу несколько операционок. А также для тех, кто любит их периодически сносить и ставить заново. Одна система может быть рабочей, другая - для изучения, третья - для развлечения и т.д. Наличие нескольких ОС на одном десктопе облегчит кому-то переход с одной системы на другую. 1.1. Постановка задачи: о чем шумим, мужики? У меня есть маленькая слабость - люблю пообщаться с новенькими, симпатичными (и не очень) операционными системами. Основной рабочей системой для меня в настоящий момент является Windows NT. Под ней я пишу программы, планирую работу, пишу отчеты и т.п.. DOS никогда не помешает, места не требует, часто нужен для игрушек. Иногда попадаются игрушки и энциклопедии, которые не хотят нормально работать ни на чем, кроме Виндовоза 95-й модели. Мой ручной сканер теоретически должен работать под Win95 и под Win3.11. Но тем не менее почему-то совершенно не переваривает Win95 (с чего бы это?). Принтер (BJC-240) печатает везде. Но под DOS проблема с русификацией. А цветная печать лучше идет под 3.11. Ну и так далее. Список продолжите сами. Ну а Linux... Linux - это для души, что бы в жизни не разочароваться. Возникло естественное желание иметь все при себе - сразу и много. Проштудировав все найденные HowTo, Help'ы и др. первоисточники, поэкспериментировав, насадив синяков и шишек я добился, чтобы на моем компьютере мирно уживался целый зоопарк разнообразных систем. Просто прилепить их одну к другой было не сложно. Хотелось сделать это по возможности элегантно. В частности, в статье не рассматриваются варианты с трехэтажным меню, двойная загрузка и т.д. Специально для тех, кто все время работал только в одной из перечисленных систем, я буду стараться отмечать особенности поведения разных ОС в рассматриваемых ситуациях.
1.2. Первоисточники: не я первый, не я последний При написании статьи были использованы следующие материалы:
1.3. Лицензия: чужой земли мы не хотим ни пяди... Отказ от ответственности.Вы можете использовать изложенные здесь идеи, примеры и другую информацию на свой страх и риск. Автор материала не несет ни какой ответственности за повреждения программ и данных, наступившие в результате использования приведенной в данной статье информации. ВНИМАНИЕ! Удаление и реорганизация разделов диска, их форматирование ведет к необратимой потере данных, хранящихся в этих разделах. До начала экспериментов сделайте копии данных, которые Вам было бы жалко потерять, запаситесь загрузочными дискетами. Автор не несет никакой ответственности, включая и моральную ответственность, за качество информации, полученной в результате использования ссылок на другие материалы. Ни одна из приведенных в статье рекомендаций не является ни наилучшим ни единственно возможным способом решения поставленной проблемы. Дерзайте! Не повторяйте чужих ошибок - гораздо приятнее иметь собственные. Авторские права.Данная статья находится под защитой Генеральной Общедоступной Лицензии GNU (GPL или copyleft), под которой находится и Linux. В частности это означает, что материалы, приведенные в данной статье могут использоваться без какой-либо оплаты (даром). Материалы могут копироваться как в целом так и по частям на любом носителе, снабженном заметным и подобающим образом представленным уведомлением о copyright и уведомлением об отсутствии гарантии. Вы можете модифицировать предлагаемую методику или ее части, а далее копировать и распределять эти модификации и другие работы снабдив модифицированные файлы на видном месте в начале уведомлением, что вы изменили файлы, и датой изменений. При этом Вышеуказанные материалы могут быть использованы дл извлечения прибыли как путем продажи копий самих материалов так и их составных частей а также путем следования рекомендациям, в них содержащимся. К копиям вышеуказанных материалов не может применяться копирайт, ограничивающий права покупателей по сравнению с данным копирайтом. 1.4. Термины и определения: что в имени тебе моем Винтеловская платформа - компьютер PC с одной из следующих операционных систем: MS DOS, Windows95, WindowsNT или OS/2. Загрузочный файл - файл, содержащий образ загрузочного сектора раздела. Не знаю как в DOS'е, а в LINUX'е его можно получить командой dd if=/dev/hda of=boot.save bs=512 count=1 MBR может иметь два формата: DOS MBR и lilo MBR. 2. Немного теории В данном разделе рассказывается о логической организации данных на винчестере и о процессе загрузки операционных систем. Изложенный в разделе материал необходим для понимания процессов, происходящих при переключении между установленными ОС в процессе загрузки. Если Вы собираетесь экспериментировать, использовать схемы загрузки, отличные от предлагаемых в данной статье, если изложенная здесь методика по каким-либо причинам не работает, если Вы просто хотите понять, почему и как это работает, то этот раздел следует прочитать или хотя бы просмотреть (в зависимости от степени подготовки). Если Вы хотите просто иметь под рукой несколько систем и это Вам удалось сделать, то данный раздел можно пропустить. 2.1. Организация диска Физический диск состоит из нескольких областей, называемых разделами (партициями, partitions). На одном диске может быть от 1 до 4 первичных разделов (primary partition). Один из них можно объявить расширенным разделом (extended partition). Расширенный раздел делится на логические разделы (logical partitions). Такой механизм позволяет разбить большой диск на необходимое количество разделов. Нулевой сектор каждого физического диска содержит таблицу разделов (partition table). Этот сектор называется master boot record (MBR). Первые 446 (0x1BE) байт MBR заняты программой-загрузчиком. За ними следует таблица разделов длиной 64 (0x40) байт. Последние два байта содержат "магическое число" которое используется для проверки, является ли данный сектор загрузочным. +------------------------+ 0x000 | | | Program code | | | | | |------------------------| 0x1BE | Partition table | | | |------------------------| 0x1FE | Magic number (0xAA55) | +------------------------+ Таблица разделов содержит 4 записи для 4 первичных разделов. Каждая запись имеет следующую структуру: struct partition { char active; /* 0x80: bootable, 0: not bootable */ char begin[3]; /* CHS for first sector */ char type; char end[3]; /* CHS for last sector */ int start; /* 32 bit sector number (counting from 0) */ int length; /* 32 bit number of sectors */ };(где CHS означает Cylinder/Head/Sector). Каждый первичный раздел, расширенный раздел и каждый логический раздел также содержат свою таблицу разделов. Таблицы разделов хранятся в загрузочных секторах своих разделов (нулевой сектор раздела). В Linux диск в целом (то есть физический диск) доступен по имени устройства /dev/hda, /dev/hdb, /dev/sda, и т.п.. В винтеловских операционных системах легального доступа к физическому диску нет (т.е. я не могу, например, подставить имя физического диска в команду копирования). Первичные разделы (и расширенный раздел) в Linux доступны по именам /dev/hda1 ... /dev/hda4. В винтеловских системах доступно только по одному первичному разделу из каждого физического диска по именам C:, D: и т.д. Такой раздел называется активным. Расширенный раздел и остальные первичные разделы недоступены. Логические разделы в Linux доступны по именам /dev/hda5, /dev/hda6 ... В остальных системах логические разделы получают однобуквенные имена, начина с последнего задействованного имени первичного раздела. В конфигурациях с одним винчестером логические разделы получат имена D:, E: и т.д. Пример: +-------------------------------------------------+ | Partition table /dev/hda | | +-----------------------------------------------| | | Partition 1 /dev/hda1 | | | | | |-----------------------------------------------| | | Partition 2 /dev/hda2 C: | | | | | |-----------------------------------------------| | | Extended partition /dev/hda3 | | | +---------------------------------------------| | | | Extended partition table | | | |---------------------------------------------| | | | Partition 3 /dev/hda5 D: | | | | | | | |---------------------------------------------| | | | Extended partition table | | | |---------------------------------------------| | | | Partition 4 /dev/hda6 E: | | | | | +-------------------------------------------------+ Этот диск содержит два первичных раздела (/dev/hda1 и /dev/hda2) и расширенный раздел (/dev/hda3). Раздел 2 объявлен активным. Пользователи DOS, обратите внимание - имя раздела /dev/hda4 не задействовано, т.к. соответствующий ему первичный раздел не создан. Расширенный раздел состоит из двух логических разделов (/dev/hda5 и /dev/hda6). В итоге пользователи Linux видят устройства /dev/hda, /dev/hda1, /dev/hda2, /dev/hda3, /dev/hda5, /dev/hda6. Пользователи винтеловских систем видят устройства C:, D:, E:. Почуствуйте разницу... 2.2. Загрузка системы Этот раздел является свободным переводом (пересказом) соответствующего раздела из Microsoft TechNet. При включении компьютера CPU устанавливается в реальный режим, исполняемый адрес (IP) устанавливается в 0xFFFF:0x0000. По этому адресу расположена программа POST (Power on Self Test). Она определяет количество доступной памяти, тестирует ее, определяет наличие других компонент (клавиатура, винчестер...), инициализирует карты адаптеров. На экране обычно появляются сообщения о количестве памяти, о ее тестировании, перечень обнаруженных устройств (гибкие и жесткие диски, процессор, COM-порты и т.д.). В конце POST выдает int 19h - прерывание на перезагрузку компьютера. Обработчик прерывания пытается найти загрузочное устройство. ... Пропустим мимо загрузку с дискеты ... Жесткий диск является загрузочным устройством в случае, если его первый сектор содержит Главную Загрузочную Запись (Master Boot Record, MBR), которая загружается в память. MBR содержит программу, которая начинает выполняться. Эта программа ищет активный раздел в таблице разделов. Далее загрузочная запись активного раздела считывается в память. Она начинается в первом логическом секторе активного раздела. В разделе, отформатированном под файловую систему FAT, загрузочная запись занимает один сектор (512 байт). В разделе, отформатированном под файловую систему HPFS (вероятно, имелась в виду NTFS?) загрузочная запись занимает 16 секторов. Программа, расположенная в загрузочной записи, загружает первый слой программ, необходимых для запуска операционной системы. Если по каким-либо причинам на диске C: не найден активный раздел, процесс загрузки продолжается обработкой прерывания 18h. Реальная программа по этому адресу располагается очень редко, но такой "крючок" может быть очень полезен в некоторых ситуациях. При удаленной загрузке, когда операционная система загружается с сервера, это прерывание перенаправляется на ROM сетевой карты программой POST сетевой карты. В случае MS DOS программа, размещенная в загрузочной записи, загружает IO.SYS по адресу 700h, затем MSDOS.SYS и передает управление разделу SYSINIT модуля IO.SYS. 2.3. Расфасовка Первая проблема при инсталляции ОС: как разбить диск на разделы, какую файловую систему использовать, как распределить системы по разделам. Я при разметке винчестера придерживаюсь следующих правил (примечание - я работал только с дисками IDE).
3. Как примирить кошку с собакой Пусть имеется диск /dev/hda1 C: DOS /dev/hda2 Boot Maneger /dev/hda3 swap for LINUX /dev/hda5 D: Windows 95 /dev/hda6 E: Windows NT /dev/hda7 E: OS/2 /dev/hda8 LINUX 3.1. Концептуальная схема
Windows95 (и, вероятно, DOS, NT, про OS/2 не знаю) записывают DOS MBR при инсталляции. Содержимое MBR можно поменять явно:
При установке Windows95 необходимо сохранить старую DOS. В файле MSDOS.SYS должны быть указаны параметры: BootMulti=1 (разрешает загрузку старого DOS'а) и BootMenu=1 (показывает меню загрузки) или BootKeys=1 (по умолчанию загружает Windows95, но по F8 переходит в режим меню). [Paths] WinDir=D:\WIN95 WinBootDir=D:\WIN95 HostWinBootDrv=D [Options] BootMenu=1 BootKeys=1 BootMulti=1 BootGUI=1 DoubleBuffer=1 Network=1 ; ;The following lines are required for compatibility with other programs. ;Do not remove them (MSDOS.SYS needs to be >1024 bytes). ;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxa 3.2. Управление загрузкой Возможно большое количество разнообразных вариантов конфигураций загрузки. Некоторые наиболее общие варианты описаны в последующих разделах. Рассматриваются варианты, базирующиеся на использовании NT Loader, OS/2 Boot Meneger, lilo и на загрузка родного DOS из-под Windows 95. 3.3. Схема с lilo Lilo можно загружать с дискеты. из DOS MBR, в качестве MBR. Меняется только инсталляция / деинсталляция. Настройка lilo во всех случаях одинаковая. LILO, запускаемая с дискетыLILO, запускаемая DOS-MBR+-------------------------------------------------------+ | Master Boot Record Boot sector Operating system | |-------------------------------------------------------| | DOS-MBR ------------> LILO --------> Linux | | ---> other OS | +-------------------------------------------------------+ Это "безопасная" ("safe") установка LILO: LILO загружается стандартной DOS-MBR. Никакие другие загрузочные сектора не затрагиваются. Если что-то должно загружаться без участия LILO, то соответствующий раздел помечается как "активный" программой fdisk. Инсталляция:
Деинсталляция:
LILO в качестве MBR+----------------------------------------+ | Master Boot Record Operating system | |----------------------------------------| | LILO ---------------> Linux | | ---> other OS | +----------------------------------------+ LILO может также управлять процессом загрузки в целом. Установленная как MBR, LILO обеспечивает загрузку как Linux так и любой другой ОС. Данный метод имеет недостаток: старый MBR затирается и его необходимо восстанавливать (выполнив команду MS-DOS "FDISK /MBR" или установив Win95 ... 8={} ) если Linux необходимо удалить из системы. Инсталляция:
Деинсталляция:
Ниже приведен файл lilo.conf, обеспечивающий загрузку WinNT, WIn95 + MS DOS, Linux и OS/2 Boot Manager. В c:\boot.ini необходимо поставить timeout=0, чтобы не показывать меню WIndows NT. # # general section # boot = /dev/hda install = /boot/boot.b message = /boot/message prompt # wait 20 seconds (200 10ths) for user to select the entry to load timeout = 200 # # default entry # other = /dev/hda1 label = nt4 table = /dev/hda loader = /boot/chain.b # # additional entries # other = /boot/bootsect.dos label = dos loader = /boot/chain.b image = /vmlinuz.gen label = linux root = /dev/hda7 read-only other = /dev/hda3 label = bm loader = /boot/chain.b Файл bootsect.dos создается при инсталляции NT и лежит в корневой директории диска C:\. Его необходимо скопировать в каталог LINUX'а, т.к. lilo не понимает FAT. Прочие файлы поставляются с LINUX'ом. Не забывайте выполнять lilo после изменения файла конфигурации. 3.4. Схема с NT Loader При установке Windows NT загрузочная запись заменяется для поддержки загрузки ОС Windows NT. Загрузочная запись текущей ОС сохраняется в файле BOOTSECT.DOS, независимо от того, какая ОС была установлена перед Windows NT. Ниже приведен файл boot.ini, обеспечивающий загрузку WinNT, WIn95 + MS DOS и Linux. В файле bootsect.lnx должна быть копия загрузочного сектора Linux.
|
Главная Алфавитный индекс Справка Добавить FAQ E-mail |
Новости Поиск по сайту |
© УкрFAQ 2002 |