Настройка и работа в Linux
adb5321d

NT и Linux: загрузчик NT Loader


Теперь обратимся непосредственно к процессу установки Linux. Будем предполагать, что Windows NT/Windows 2000 установлена в разделе /dev/hda2.

  • Изготовим загрузочные дискеты для загрузки и восстановления NT. Для создания загрузочной дискеты достаточно скопировать на отформатированную дискету файлы ntldr, ntdetect.com и boot.ini из корневого каталога загрузочного диска. Программу создания дискеты аварийного восстановления для Windows 2000 можно запустить из панели управления (пункт ), а в Windows NT 4.0 найдите ее с помощью поиска в справочной системе ().
  • С помощью программы PartitionMagic освободим часть дискового пространства и создадим на свободном месте раздел типа ext2 (файловая система Linux) и раздел подкачки.
  • Проведем процедуру инсталляции Linux. В процессе установки необходимо изготовить загрузочную дискету. Этот диск понадобится нам на одном из следующих этапов. Кроме того, в последующем можно будет просто каждый раз, когда надо загрузить Linux, использовать эту дискету. Это тоже вариант загрузки, тем более что, в отличие от DOS, после загрузки система о дискете уже не вспоминает. Установим LILO не в главный загрузочный сектор диска, а в первый сектор того раздела, который отведен для Linux. Для определенности предположим, что Linux устанавливается в первый сектор раздела hda3. В принципе, если установить LILO в MBR, то и это не смертельно. Конечный результат (загрузка через NT Loader) может быть получен и в этом случае, но усилий потребуется больше, так как формат главного загрузочного сектора, создаваемого LILO и Windows, различен. Поэтому, если поставить LILO в MBR, придется потом восстанавливать MBR от Windows.
  • После завершения инсталляции загрузим Linux с помощью загрузочной дискеты.
  • Скопируем загрузочный сектор Linux в файл; он понадобится для того, чтобы загрузчик Windows NT мог запускать 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.

    Если раздел hda1 сформатирован в системе FAT, можно сразу создать файл bootsect.lnx в корневом каталоге диска C:.

  • Далее необходимо перезагрузиться, чтобы запустить Windows NT, для чего в Linux следует выполнить команду:
    [root]# shutdown -h now

    Поскольку главная загрузочная запись не была изменена, должна загрузиться NT. После завершения загрузки необходимо перенести файл /mnt/floppy/bootsect.lnx в корневой каталог диска C:, точнее, в корневой каталог того раздела, с которого загружается NT. В зависимости от того, как устанавливалась NT, это может быть как раздел FAT16, так и раздел NTFS. Признаком нужного раздела является наличие в нем файлов ntldr и boot.ini (эти файлы могут быть скрытыми). Файлу bootsect.lnx можно присвоить атрибут read-only.

  • После завершения загрузки NT найдем файл boot.ini в корневом каталоге и добавим в него строчку:
    C:\bootsect.lnx=


  • Осталось перезапустить компьютер еще раз, причем при загрузке уже будет возможность выбора. Если выбрать пункт Linux, будет запущен LILO, который и загрузит Linux.


  • Отдельно рассмотрим случай, когда по ошибке или намеренно LILO был установлен в MBR. В этом случае загрузочная запись Windows NT будет затерта, сделав невозможной загрузку NT. Если есть намерение пользоваться загрузчиком OS Loader от NT, а не LILO, последовательность действий несколько изменяется: вместо шага 6 необходимо проделать приведенную ниже последовательность действий.

  • Загрузить Windows NT/2000 с загрузочных дискет. При этом необходимо выбрать в меню загрузчика пункт Recover, а затем - режим Command mode. При запросе следует зарегистрироваться с учетной записью администратора системы.
  • Восстановить главную загрузочную запись диска, например, при помощи команды fdisk /mbr. (У меня это получалось, хотя в некоторых статьях и утверждается, что восстановить таким образом MBR удается не всегда.) В Windows 2000 имеются специальные команды fixboot и fixmbr; они запускаются из консоли восстановления. Если выполнить их обе в указанном порядке, Windows 2000 вновь будет загружаться нормально.
  • Перезапустить компьютер с загрузочной дискеты Linux и зарегистрироваться в системе с полномочиями root.
  • Ввести команду cd /etc и открыть файл lilo.conf. В начале файла есть ссылка на загрузочный раздел по умолчанию, например, /dev/hda.
  • С помощью любого редактора следует изменить это значение на те диск и раздел, куда была установлена Linux. Если она установлена в раздел /dev/hdc1, именно это и следует записать, т.е. поменять /dev/hda на /dev/hdc1. Если вы не помните, куда именно установлена Linux, найдите переменную image файла /etc/lilo.conf: в ней хранится нужное значение.
  • Выполнить команду /etc/lilo (без аргументов) для записи загрузчика в раздел /dev/hdc1. В ответ будет выдано предупреждение о том, что раздел не является первым на диске; именно это и нужно, чтобы загрузочная запись Windows 2000 осталась в целости и сохранности.


  • После этого следует выполнить шаги 6-8 приведенного ранее алгоритма.

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


    Содержание раздела