Э. Сивер, С. Спейнауэр, С. Фиггинс, Дж. П. Хекман - Linux cправочник - 3-е издание (1114666), страница 67
Текст из файла (страница 67)
При установке Linux необходимо либо заменить первичный загрузчик, либо загружать Linux с дискеты.В системе Linux каждый диск и каждый раздел считаются отдельным устройством. Так, к примеру, весь первый жесткий диск системы известен как/dev/hda, а весь второй жесткий диск (если он есть) - как /dev/hdb. Первыйраздел первого диска - это /dev/hdal, а второй раздел - /dev/hda2.
Первыйраздел второго жесткого диска - /dev/hdbl и т. д. Если установлены дискиSCSI, а не IDE, то система имен работает таким же образом, с той единственной разницей, что устройства называются /dev/sda, /dev/sdal и т. д. Такимобразом, запись /dev/hda2 указывает, что раздел Linux — это второй разделпервого жесткого диска (как в примерах этой главы).Оставшаяся часть главы посвящена описанию различных методов загрузкисистемы Linux, а также параметрам, которые можно изменять с целью настройки и применяемого загрузчика, и ядра системы. Как LILO, так и Loadlinобеспечивают передачу параметров загрузчику и позволяют задавать параметры загружаемого ядра.LILO является стандартным загрузчиком для машин с архитектурой 1386. Насистемах Alpha эквивалентный загрузчик называется MILO (Mini Loader, минизагрузчик), а на системах Spare - SILO.L1LO: загрузчик Linux461LILO: загрузчик LinuxПриняв решение установить LILO, необходимо выбрать один из вариантовнастройки загрузчика.
Те, кто предпочитают с помощью двойной загрузкиработать с Linux или Windows 95/98, могут установить LILO в главную загрузочную запись (MBR) и посредством его соответствующей настройкиобеспечить возможность загрузки нужной системы. Двойная загрузка вкомбинации Linux и Windows NT не столь прозрачна, посколькуWindows NT устанавливает в MBR свой собственный загрузчик и ожидает,что именно он будет основным. Следовательно, необходимо добавить Linux вварианты загрузчика Windows NT, a LILO установить в раздел с Linux в качестве вторичного загрузчика.
В результате загрузчик Windows NT передаетуправление LILO, который и загружает Linux. To же относится к системеWindows 2000, в которой используется загрузчик NT. Подробности приведены в разделе «Двойная загрузка Linux и Windows NT/2000» далее в этойглаве.В дополнение к загрузке Linux LILO может загружать и прочие операционные системы, например MS-DOS, Windows 95/98 или OS/2. Все наиболеераспространенные дистрибутивы Linux позволяют настроить и установитьLILO в процессе установки самой системы; при необходимости его можно установить и позже.
LILO может устанавливаться в главную загрузочную запись (MBR) жесткого диска или в качестве вторичного загрузчика в раздел,содержащий систему Linux. LILO состоит из нескольких частей - собственнозагрузчика, файла настройки (/etc/lilo.conf), файла карты (/boot/map), содержащего информацию о расположении ядра, и программы lilo (/sbin/lilo),которая читает файл настройки и использует прочитанную информациюдля создания или обновления файла карты и установки необходимых файлов LILO.Если LILO устанавливается в MBR, он заменяет первичный загрузчик MS-DOS.Если вы столкнулись с проблемами в ходе его установки или просто хотитеудалить LILO из системы и восстановить исходный загрузчик, можно воспользоваться одним из следующих вариантов:•Загрузить Linux с дискеты и восстановить загрузочный сектор из резервной копии:% /sbin/lilo -u• Загрузить DOS и запустить специальную команду fdisk, которая реконструирует MBR:с : > fdisk /mbrНеобходимо помнить, что LILO выступает в двух ипостасях: как собственнозагрузчик и как команда lilo.
Команда lilo конфигурирует и устанавливаетзагрузчик и обновляет его при необходимости. Загрузчик является кодом,который выполняется во время загрузки машины и запускает Linux илидругую операционную систему.462Глава 4. Методы загрузкиКонфигурационный файл LILOИнформацию, необходимую для установки загрузчика, команда lilo получает из файла настроек /etc/lilo.conf. Среди прочего, lilo создает файл карты, вкотором содержится информация обо всех секторах диска, необходимых длязагрузки.Обратите внимание, всякий раз, когда вы изменяете /etc/lilo.conf, пересобираете или перемещаете ядро системы, необходимо перезапускать lilo, чтобыобновить файл карты и загрузчик.Конфигурационный файл начинается с раздела глобальных параметров, которые описаны ниже.
Глобальные параметры не зависят от загружаемойсистемы. Вот пример раздела глобальных параметров (символ # являетсяначалом комментария):boot = /dev/hdatimap = /boot/mapinstall = /boot/boot.bprompttimeout =30Загрузочное устройство /dev/hdaи Сохранить карту в файле /boot/nap# Файл, устанавливаемый как новый загрузочный сектори Всегда выдавать приглашение загрузчика# Установить ожидание в 3 (30 десятых долей секунды)За разделом глобальных параметров следуют параметры загрузки каждогоядра Linux и других операционных систем - по одному разделу на каждыйвариант.
Каждый из разделов носит название раздела образа, посколькуописывает загрузку одного из образов ядра (в данном случае образ - синоним двоичного файла, содержащего код ядра) либо другой операционнойсистемы. Каждый раздел образа для Linux начинается со строки image=.Например, раздел для Linux может выглядеть так:image = /boot/vmlinuz it Файл образа ядраlabel = linux# Метка загрузки, вводимая в ответ на приглашение загрузчикаroot = /dev/hda2» Расположение корневой файловой системыvga = askи Всегда предлагать пользователю выбор VGA-режимаread-onlyи Монтировать файловую систему в режиме "только для чте-шя"и выполнять проверку fsckЭквивалентный раздел для не-Linux системы начинается со строки other=вместо image=. Например:other = /dev/hda1label = dostable = /dev/hdaК Местоположение разделаft Расположение таблицы разделовИтак, следует размещать параметры LILO, одинаковые для всех вариантовзагрузки, в разделе глобальных параметров в файле /etc/lilo.conf, а специфичные для каждого из вариантов - в соответствующем разделе образа.
Если параметр дублируется в разделе глобальных параметров и в разделе образа, используется значение этого параметра из раздела образа.LILO: загрузчик Linux463Приведем пример полного файла /etc/lilo.conf для системы, раздел /dev/hda2 которой содержит Linux.## Глобальные параметрыboot = /dev/hda2map = /boot/mapdelay = 30timeout = 50promptvga=ask## Раздел образа: обычная загрузка Linuximage = /Poot/vmlinuzlabel = linuxroot = /dev/hda2install = /boot/boot.bnap = /boot/mapread-onlyfl# Раздел образа: для тестирования нового ядра Linuximage=/testvmlinuzlabel = testlinuroot = /dev/hda2install = /boot/boot.bmap = /boot/mapread-onlyoptionaln Пропустить образ, если он недоступен во время создания карты## Раздел образа: загрузка DOSother = /dev/hda1label = dosoader = /boot/chain.btable = /dev/hdan Текущая таблица разделов дискаtttt Раздел образа: загрузка Windows 95other = /dev/hda1label = win95loader = /boot/chain, btable = /dev/hdaГлобальные параметрыПомимо описанных ниже, в качестве глобальных параметров для LILO также могут использоваться параметры ядра append, read-only, read-write, rootи vga (описанные далее в разделе «Параметры, передаваемые ядру»).bacls.up-backup-fileСоздавать резервную копию загрузочного сектора в файле backup-file,тогда как обычно резервная копия получает имя /boot/'boot.nnnn, гдепппп - число, соответствующее типу дискового устройства.464Глава 4.
Методы загрузкиboot—boot-deviceУстановить имя устройства, содержащего загрузочный сектор. По умолчанию boot - это устройство, которое подмонтировано в качестве корневой файловой системы в настоящее время (например /dev/hda.2). Указание всего диска в качестве загрузочного устройства (например /dev/hda)является для LILO предписанием устанавливать загрузчик в главную загрузочную запись. Альтернативой является установка в произвольныйраздел диска, например в /dev/hda2.compactОбъединять запросы на чтение соседних секторов диска в целях ускорения процесса загрузки. Применение параметра compact рекомендуется, вчастности, при загрузке с дискет.
Но он может конфликтовать с параметром linear.default=raameИспользовать образ пате в качестве образа загрузки по умолчанию. Еслипараметр default отсутствует, выбирается первый из образов, описанныхв файле настройки.delay=£secsПараметр задает время ожидания (в десятых долях секунды) перед началом загрузки образа по умолчанию. Если установлен параметр serial, значение delay не может быть меньше 20. По умолчанию ожидания не происходит.disk=device-nameОпределить параметры диска device-name, если LILO не в состоянии автоматически распознать их.
В обычных условиях загрузчик самостоятельно определяет параметры устройства, и эти ухищрения не требуются. Задание параметра disk состоит из нескольких строк, например, таких:disk = /dev/sdabios = 0x80sectors = ...heads = ...и Обычно значение для первого диска - 0x80, для второго - 0x81Обратите внимание, что этот параметр не совпадает с параметрами геометрии диска, которые можно определить при помощи параметров команды hd. Дело в том, что disk предоставляет информацию LILO, a hd ядру системы. Далее кратко описаны ключевые слова, которые можноуказывать с параметром disk.
Подробную информацию можно найти в руководстве пользователя LILO, которое входит в комплект поставки загрузчика.bios=bios-device-codeЧисло, используемое BIOS для адресации устройства. Смотрите предыдущий пример.cylinders=ci//mdersКоличество цилиндров диска.LILO: загрузчик Linux465Количество головок диска.inaccessibleУказание LILO, что BIOS не может получить доступ к диску; предотвращает последующие проблемы с загрузкой системы, если LILOсчитает, что BIOS имеет доступ к диску.pari\tion=partition-deuiceНачинает новый раздел.
Раздел содержит единственную переменную,start=partition-offset, которая определяет адрес первого сектора раздела (отсчет от нуля).partition=/dev/sda1start=2048sectors=sectorsКоличество секторов на одной дорожке диска.disktab=disktab-fileЭтот параметр не используется по причине появления параметра disk=.fix-tableПараметр позволяет Шо поправить адреса вида сектор/дорожка/цилиндрв таблице разделов. Иногда это бывает необходимо, если разделы не выровнены по границам дорожек, а на диске присутствует еще одна операционная система, например MS-DOS. Подробнее параметр описан на страницах руководства по файлу lilo.conf.foTce-backup=backup-fileАналогично backup, но приводит к перезаписыванию старой резервнойкопии, если таковая существует.ignore-tableУказание Шо игнорировать поврежденные таблицы разделов.install=boof -sectorУстановить указанный файл в качестве нового загрузочного сектора.
Приотсутствии этого параметра используется файл /boot/boot.b.Iba32Генерировать 32-битные логические адреса блоков вместо адресов видасектор/головка/цилиндр, позволяя загружать систему с любого раздела нажестком диске размером больше 8,4 Гбайт. Этот параметр позволяет преодолеть «барьер» в 1024 цилиндра. Требуется версия LILO не ниже 21-4 иподдержка интерфейса пакетных вызовов EDD в BIOS.1Если BIOS новее 1998 г., он должен поддерживать этот интерфейс.466Глава 4.