Linux WindowsNT

Этот mini-HOWTO описывает способ, как установить две операционные системы: Linux и Windows NT на один компьютер, и как загружать любую из них через меню LILO. Имеется также другой mini-HOWTO "Linux+NT-Loader", который описывает, как загрузить любую из этих систем через загрузочное меню Windows NT. 1. ВВЕДЕНИЕ

Bill Wohler написал в v1.1 Linux+WindowsNT mini-HOWTO:

"Из-за аппаратных или программных проблем, или из-за неправильных действий, я рвал на себе волосы в течении нескольких дней, пока пытался установить NT и Linux на моем новом компьютере HP Vectra PC на работе."

Я могу сказать, что это правда, и в моем случае тоже, но вы действительно сможете получить обе системы Linux и Windows NT, сосуществующие на одной машине и сможете переключаться между ними.

"Ни в коем случае не работайте с Disk Administrator из NT 3.51, чтобы отформатировать разделы. Он спрашивает, можно ли записать сигнатуру "которая не вызовет абсолютно никакого вреда". Когда он сделал это, пришлось исправлять таблицу разделов (шаги 3 и 7, см. ниже). Из-за этих проблем, я был ограничен одним разделом FAT. Также помните, что даже если вы заставите работать Disk Administrator, вам будет нужен хотя бы маленький раздел для обмена файлами между Linux и NT, пока Linux не понмает файловую систему NTFS."

Хорошо, утилиты NT Disk Administrator будет достаточно, чтобы проверить ваши жесткие диски до и после использования утилиты Partition Magic от Power Quest. Эта утилита может быть необходима, чтобы 'сжать' ваш раздел (NTFS или FAT) NT, чтобы получить свободное место для будущего раздела Linux.

"Я установил сначала Linux, а затем NT, это основано на моем опыте, я мог бы сначала установить первым NT и потом Linux."

Конечно вы все способны установить сначала Windows NT и потом Linux. Мы посмотрим, как это сделать и как использовать LILO (Linux Loader), чтобы выбрать, какую опрационную систему загружать. Но перед этим мы увидим, как это делал Bill Wohler - предыдущий составитель этого mini-HOWTO.

КАК УСТАНОВИТЬ: СНАЧАЛА LINUX, ЗАТЕМ WINDOWS NT

1. Установить Linux в минимальной (воздержитесь от установки остального, пока вы не выиграете сражение Linux/NT). Сделайте все ваши разделы на диске в Linux, включая раздел NT (сделайте его FAT). У меня не получилось создать больше, чем один NT раздел. Я также сделал его первым разделом, но я не знаю необходимо ли это.

2. Отредактируйте файл /etc/lilo.conf, сделайте boot=/dev/sda (I was not successful at installing LILO on the Linux partition--/dev/sda3 in my case) и запустите "lilo".

3. Сохраните MBR: dd if=/dev/sda of=/dev/fd0 bs=512 count=1 Используйте дискету. Делайте это каждый раз, когда вы изменяете таблицу разделов на диске.

4. Установите NT, часть 1. Когда произойдет перезагрузка, загрузитесь в Linux.

5. Добавте строки NT в файл /etc/lilo.conf, например:

other=/dev/sda1

label=NT

table=/dev/sda

и запустите lilo. Если lilo пожалуется на эти строчки (Я забыл сообщение, которое выдается), добавьте флаг "linear" в /etc/lilo.conf около ключевого слова "compact". Кроме того, если ваша таблица разделов искажена NT, вы будете должны использовать "ignore-table" или следуйте за инструкциями в шаге 7. Смотрите также "fix-table".

6. Перезагрузитесь, выберите NT из меню LILO, и завершайте установку NT. Вам будет необходим загрузочный диск "Boot Disk XU, HP Vectra AIC 7880 Driver A.01.02", чтобы установить драйверы ethernet и компакт диск "XU/VT Drivers and Documentation" (каталог video/disk4, если я правильно вспомнил), чтобы установить драйвера для видеокарты Matrox MGA Millennium.

7. Вернитесь в Linux, запустите fdisk и опасайтесь получить ошибку - "partition doesn't end on cylinder boundary" ("раздел не заканчивается на границе цилиндра") на вашем Linux разделе. У вас будет эта ошибка на NT разделе, хотя это вроде нормально.

/dev/sda1 1 1 322 329301 6 DOS 16-bit >=32M

Раздел 1 не заканчивается на границе цилиндра:

phys=(321, 39, 9) should be (321, 63, 32)

Cfdisk странно сообщает, но это вроде нормально:

Unusable 0.04*

/dev/sda1 Primary DOS 16-bit >=32Mb 321.59*

Unusable 0.39*

Если получили предупреждение "cylinder boundary" на ваших Linux разделах, достаточно использовать cfdisk, чтобы сделать что-либо, например, изменение загрузочного сектора.

Если, однако, NT действительно исказил диск, и cfdisk не хочет даже работать, жалуясь, что не может открыть /dev/sda, тогда вам придется сделать несколько больше действий. Сохраните MBR. Очистите и восстановите MBR (но не сигнатуру) командами:

dd if=/dev/zero of=/dev/sda bs=512 count=1

dd if=/dev/fd0 of=/dev/sda bs=510 count=1

Установите оставшуюся часть Linux.

Если вы предпочитаете, чтобы NT записала MBR вместо LILO, вы должны сначала очистить MBR:

dd if=/dev/zero of=/dev/sda bs=446 count=1 (в Linux) или выполните низкоуровневое форматирование утилитами для SCSI. Я слышал, что низкоуровневое форматирование на IDE - это фатально, так что не думайте об этом.

fdisk /mbr (вы уже очевидно создали диск для загрузки DOS, который содержит fdisk).

удалите раздел NT и создайте его снова в установке NT.

продолжите установку NT.

Эпилог: После первой отправки этого сообщения я слышал от нескольких людей, что они не имели никаких проблем с Disk Administrator для NT, и они устанавливали либо NT, либо Linux без всяких проблем. Хочется надеяться, что у вас будет также.

Начиная с первого издания этого mini-HOWTO, было много написано подобных документов. Пожалуйста, проконсультируйтесь с ними. Если ваши знания отличны от представленных, тогда вы должны представить свой mini-HOWTO или представить пересмотренную версию этого документа человеку поддерживающему HOWTO, (сошлитесь на это предложение) и пошлите копию (CC) мне. В конечном итоге кто-то объединит все эти копии в единый документ.

В заключении. Я боюсь, что этот документ не описывает все, что я знаю по этой теме. Для получения дополнительной информации читайте конференции по Linux. Я использую NT один раз в году и то под принуждением.

КАК УСТАНОВИТЬ: СНАЧАЛА NT, ЗАТЕМ WINDOWS LINUX

Если у вас только один жесткий диск IDE

Прежде всего я предложил бы установить свежий дистрибутив Windows NT 4.0 на ваш жесткий диск. Я предполагаю, что вы уже сделали резервную копию важных данных, тогда установка NT должна пройти без проблем. Во времы установки NT, инсталлятор не спросит вас, где разместить загрузчик NT. Он будет помещен в MBR (Главная загрузочная запись) на вашем жестком диске. Имеется возможность восстановить предыдущее содержимое MBR (например? от предыдущего содержимого Lilo). Я предложил бы вам (до инсталляции NT) загрузить компьютер с дискеты DOS, имеющей программу FDISK. В командной строке a:\ введите: fdisk /mbr и снова перезагрузите компьютер (без дискеты).

После успешной установки NT, вы увидите, что система использует целый жесткий диск или определенный раздел жесткого диска (в зависимости от того, как вы выбрали в процессе установки). Т.о. рекомендуется 'сжать' раздел, где находится NT, чтобы освободить некоторое пространство на диске. На этом свободном пространстве вы установите Linux. После того, как ваш NT сконфигурирован и запускается, вы должны загрузить ваш компьютер, используя дискету с утилитой Partition Magic. Это графическая утилита позволяет видеть все разделы на всех жестких дисках, которые у вас имеются. Вы сможете сделать изменения ваших разделов и не потерять ваши данные. Первое - сделайте ваши существующие разделы меньше, т.о. вы получите некоторое свободное место на диске для других целей. Хотя я вам советую сделать резервную копию до того, как вы будете делать любые изменения разделов, я обычно делаю 'сжатие' разделов NT, когда NT установлена не полностью (т.о. если будет необходимость, повторный запуск установки не вызовет проблем). Partition Magic (или другая подобная утилита) будет 'сжимать' ваши данные на NT разделе (NTFS или FAT) в начало или в конец раздела. Вы можете сами выбрать, где размещать данные - в начале или в конце диска (я обычно выбираю чтобы данные NT раздела были в начале, т.о. в конце диска будет свободное пространство). После 'сжатия' вы можете перезагрузить вашу систему (NT), чтобы проверить результат: вы можете использовать для этого Проводник Windows или Disk Administrator.

Пока все хорошо. Следующий шаг - установка Linux. Возмите ваш дистрибутив RedHat (я надеюсь, что с другими пакетами подобно), поместите установочный диск в устройство и перезагрузите компьютер. Ну что же, когда вы выберите тип установки (Gnome или KDE Workstation, Custom и т.п.) вы можете выбрать запланированные заранее компоненты для установки, но я рекомендую сначала установить Workstation. Это лучше, т.к. установка Linux будет автоматически искать свободное пространство на (первом) жестком диске, сделайте все разделы необходимые Linux, отформатируйте их должным образом и выберите большинство опций по умолчанию, т.о. установка пройдет лучше (позже, если вы хотите, вы можете или добавить отсутствующие компоненты, или переустановить Linux, выбрав Custom). Lilo запишется в MBR.

После окончания установки Linux, вы должны перезагрузить компьютер и после перезагрузки вы увидите только Lilo, с единственным пунктом "Linux" в меню загрузки (или может быть больше, чем один пункт для загрузки Linux, в случае, когда у вас многопроцессорная система). Но не паникуйте! Ваш Windows NT находится там, где вы его установили. Вам будет необходимо найти и отредактировать файл /etc/lilo.conf. Сначала, когда вы откроете этот файл, вы увидите только одну (или больше) записей для загрузки Linux. Вы должны точно знать расположение (читай: раздел), где установлен Windows NT, т.о., вы должны добавить соответствующую запись в файл /etc/lilo.conf. После того, как вы это сделаете, перезапустите Lilo, и при следующей перезагрузке вы увидите обе записи 'linux' и 'nt' в меню Lilo.

Моя добавленная запись для NT: other=/dev/hda1

label=nt

Т.о., полный файл /etc/lilo.conf подобен этому:

boot=/dev/hda

timeout=50

prompt

default=linux

vga=normal

read-only

image=/boot/vmlinuz-2.2.12-20

label=linux

root=/dev/hda3

other=/dev/hda1

label=nt

Несколько больше объяснений относительно моего файла /etc/lilo.conf: После установки Windows NT, я назначил для этого устройства букву C:. Помимо этого, я хотел иметь другой NTFS раздел, чтобы хранить и резервировать важные данные. Вот почему я сделал и другой NT раздел, которому назначил диск D:. Оба NTFS раздела занимали приблизительно 3 Гб каждый, и программа установки Linux находила их как разделы /dev/hda1 и /dev/hda2. Остаток свободного места был 2 Гб, где я сделал раздел /root (1.9 Гб) и раздел /swapp (100 MB) (/dev/hda3 и /dev/hda4 соответственно).

Если у вас больше чем один (SCSI) жесткий диск

Примечание: У меня на одном компьютере было несколько SCSI дисков. Именно поэтому я помещал слово 'SCSI' в скобки. У меня было несколько SCSI устройств - SCSI CD ROM и ленточное SCSI устройство. Т.о. это не подразумевает, что вы будете использовать SCSI устройства. Вам достаточно обработать несколько IDE дисков, и, я надеюсь, процесс установки сильно не изменится.

Прежде всего я предложил бы установить свежий дистрибутив Windows NT 4.0 на ваш первый жесткий диск. Я предполагаю, что вы уже сделали резервную копию важных данных, тогда установка NT должна пройти без проблем. Вы можете просто скопировать ваши данные на второй жесткий диск. Во время установки NT инсталлятор не спросит вас, где разместить загрузчик NT. Он будет помещен в MBR (Главная загрузочная запись) на вашем первом жестком диске. Имеется возможность восстановить предыдущее содержимое MBR (например от предыдущего содержимого Lilo). Я предложил бы вам (до инсталляции NT) загрузить компьютер с дискеты DOS, содержащей программу FDISK. В командной строке a:\ введите: fdisk /mbr и снова перезагрузите компьютер (без дискеты). Если вы хотите быть уверены, что ваша машина 'чистая', вы можете также удалить все существующие разделы на ваших других дисках в процессе установки Windows NT в том случае, если вы *не* сделали никаких резервных копий на других дисках.

После успешной установки NT вы увидите, что система использует целый жесткий диск или определенный раздел жесткого диска (в зависимости от того, что вы выбрали в процессе установки). Т.о. рекомендуется 'сжать' раздел, где находится NT, чтобы освободить некоторое пространство на диске. На этом свободном пространстве вы установите Linux. Вы можете также подумать об использовании других дисков для Linux. В этом случае вы будете должны запустить установку Linux и попробовать использовать, например /dev/sdb (или sdc, или sdd, в случае если у вас SCSI диски) или /dev/hdb (или hdc, или hdd, в случае если у вас SCSI диски). Обратите внимание, что установка Linux приняла все, что я выбрал, но так или иначе, после окончания установки, LILO был не в состоянии что-либо сделать. Фактически, загрузка всегда останавливалась после вывода на экран 'LI', т.о., нет возможности запустить Linux вообще. После некоторых размышлений, я решил сделать установку на первом диске. После того, как ваш NT сконфигурирован и запускается, вы должны загрузить ваш компьютер, используя дискету с утилитой Partition Magic. Это графическая утилита позволяет видеть все разделы на всех жестких дисках, которые у вас имеются. Вы сможете сделать изменения ваших разделов и не потерять ваши данные. Первое - сделайте ваши существующие разделы меньше, и вы получите некоторое свободное место на диске(ах) для других целей. Хотя я вам советую сделать резервную копию до того, как вы будете делать любые изменения разделов, я обычно делаю 'сжатие' разделов NT, когда NT установлена не полностью (т.о., если будет необходимость, повторный запуск установки не вызовет проблем). Partition Magic (или другая подобная утилита) будет 'сжимать' ваши данные на NT разделе (NTFS или FAT) в начало или в конец раздела. Вы можете сами выбрать, где размещать данные - в начале или в конце диска (я обычно предпочитаю, чтобы данные NT раздела были в начале, тогда в конце диска будет свободное пространство). После 'сжатия' вы можете перезагрузить вашу систему (NT), чтобы проверить результат: вы можете использовать для этого Проводник Windows или Disk Administrator. Также обратите внимание, как NT может 'видеть' все (другие) диски на вашей машине (как разделы или как свободное пространство).

Пока все хорошо. Следующий шаг - установка Linux. Возмите ваш дистрибутив RedHat (я надеюсь, что с другими пакетами будет точно также), поместите установочный диск в устройство и перезагрузите компьютер. Когда вы выберите тип установки (Gnome или KDE Workstation, Custom и т.п.) вы можете выделить запланированные заранее компоненты для установки, но я рекомендую сначала установить Workstation. Это лучше, т.к. установка Linux будет автоматически искать свободное пространство на первом жестком диске, сделайте все разделы необходимые Linux, отформатируйте их должным образом, и выберите большинство опций по умолчанию, т.о. установка пройдет лучше (позже, если вы хотите, вы можете или добавить отсутствующие компоненты, или переустановить Linux, выбрав Custom). Lilo запишется в MBR на вашем первом жестком диске.

После окончания установки Linux, вы должны перезагрузить компьютер и после перезагрузки вы увидите только Lilo с единственным пунктом "Linux" в меню загрузки (или может быть больше одного пункта для загрузки Linux, в том случае, когда у вас многопроцессорная система). Но не паникуйте! Ваш Windows NT находится там, где вы его установили. Вам будет необходимо найти и отредактировать файл /etc/lilo.conf. Сначала, когда вы откроете этот файл, там будет только одна (или больше) запись для загрузки Linux. Вы должны точно знать расположение (читай: раздел), где установлен Windows NT, т.о. вы должны добавить соответствующую запись в файл /etc/lilo.conf. После того, как это сделано, перезапустите Lilo, и при следующей перезагрузке увидите обе записи 'linux' и 'nt' в меню Lilo.

Моя добавленная запись для NT: other=/dev/sda1

label=nt

Т.о., полный файл /etc/lilo.conf подобен этому:

boot=/dev/sda

map=/boot/map

install=/boot/boot.b

prompt

timeout=50

default=linux

image=/boot/vmlinuz-2.2.12-20smp

label=linux-mp

initrd=/boot/initrd-2.2.12-20smp.img

read-only

root=/dev/sda6

image=/boot/vmlinuz-2.2.12-20

label=linux-up

initrd=/boot/initrd-2.2.12-20.img

read-only

root=/dev/sda6

other=/dev/hda1

label=nt

Несколько больше объяснений относительно моего файла /etc/lilo.conf: После установки Windows NT на первый диск, я назначил для этого устройства букву C:. После того, как я подготовил достаточно свободного пространства за разделом NTFS, я позволил установке Linux обработать дальнейшую разбивку. Хотя Linux должен поддерживать, как минимум, 4 основных раздела на диск, скорее всего установка сделает расширенный раздел, т.к. каждый раз она обнаруживает, что на диске уже имеется основной раздел. Эти 'виртуальные' основные разделы идут с /dev/sda1 до /dev/sda4 (включая расширенный), расширенный должен стать /dev/sda4. Первый логический раздел в пределах расширенного радела будет /dev/sda5 (в моем случае, это был раздел /boot, который физически располагался от начала первого жесткого диска). Т.о., разделы /root и /swapp были /dev/sda6 и /dev/sda7 соответственно. Вы можете видеть строку "root=/dev/sda6" сообщающую вам это. Lilo запишется в MBR, и все прекрасно запустится.

Ну что же, вы можете спросить меня: Хорошо, но что, если у меня несколько жестких установлены в машине? Хороший вопрос. Вы видите, я имею четыре SCSI диска и, конечно, я пробовал установить Linux на 2-м, дальше на 3-м и наконец на 4-м диске. Я делал это (установка Linux ни на что не жаловалась), но после перезагрузки Lilo останавливался после вывода 'LI', т.о. система не стартовала. Наконец я понял, что есть проблема с дисками, которые "далеки" от MBR, расположенный на первом диске. Именно поэтому, я предложил сделать их всех (NT и Linux) на первом диске. После этого все работало нормально, и не было проблем, связанных с тем, чтобы сделать диски видимыми (и используемыми) в обеих операционных системах. Я надеюсь, ваш первый диск достаточно большой, чтобы обе операционные системы (NT нужно около 150 MB, Linux требует около 580 MB (Gnome или KDE Workstations) и более 1.4 Гб (Custom)). Это означает, что первый диск должен быть заполнен на 2.4 Гб.

Вы можете также спросить меня: Что если я 'сжал' NT раздел так, что свободное пространство оказалось в начале диска? Хорошо, я пробовал делать так и устанавливать сначала Gnome Workstation (395 пакетов, 570 MB). В процессе установки все шло хорошо, но Lilo не был установлен, и загрузочная дискета не была сделана. Т.о. Linux не работал. Тогда я попытался установить KDE Workstation (377 пакетов, 582 MB) на то же место. Опять все шло хорошо, но Lilo не был установлен, и загрузочная дискета не была сделана. Исследуя это, я изучал структуру всех существующих разделов. Я был удивлен, когда новый логический раздел распознался (в пределах нового расширенного раздела), как расположенный после раздела NT! Другими словами, получился 'забавный' порядок: /dev/sda5, /dev/sda6, /dev/sda7 и, наконец, /dev/sda1. Такая система была несколько запутана.

Относительно двух подобных образов Linux (отличные в 'smp'). Это сервер с мульти-процессорной поддержкой. "Интеллектуальная" программа установки осмотрела аппаратные средства и предложила выбрать использовать 'несколько' или 'один' процессор. Однако у меня работает только один процессор.