Изучаем Linux, 101: Загрузка системы

Последовательность начальной загрузки Linux, начиная с BIOS

Из этой статьи вы узнаете о процессе загрузки Linux. Вы можете использовать этот материал для подготовки к экзамену LPI 101 программы сертификации на администратора Linux начального уровня или просто для общего развития.

Об этой серии

Эта серия статей поможет вам освоить задачи администрирования операционной системы Linux. Вы также можете использовать материал этих статей для подготовки к экзаменам первого уровня сертификации профессионального института Linux (LPIC-1).

Чтобы посмотреть описания статей этой серии и получить ссылки на них, обратитесь к нашему перечню материалов для подготовки к экзаменам LPIC-1. Этот перечень постоянно дополняется новыми статьями по мере их готовности и содержит самые последние (по состоянию на апрель 2009 года) цели экзаменов сертификации LPIC-1. Если какая-либо статья отсутствует в перечне, можно найти ее более раннюю версию, соответствующую предыдущим целям LPIC-1 (до апреля 2009 года), обратившись к нашим руководствам для подготовки к экзаменам института Linux Professional Institute.

Краткий обзор

Эта статья описывает процесс загрузки, начиная с BIOS. Вы научитесь:

  • Передавать команды менеджеру загрузки
  • Использовать опции ядра на этапе загрузки
  • Просматривать события загрузки в log-файлах

Некоторые этапы загрузки являются общими для большинства компьютеров, однако для разных архитектур могут существовать определенные различия, связанные с аппаратным обеспечением. В этой статье рассматриваются системы с архитектурами x86 и x86_64, для загрузки которых используется BIOS. В современных компьютерах с жесткими дисками емкостью более 2 ТБ на смену BIOS/MBR применяется новая система загрузки Extensible Firmware Interface ( EFI), использующая таблицу разделов GUID Partition Table ( GPT). Рассмотрение этой системы не входит в цели экзамена LPI и не рассматривается в этой статье. Для получения дополнительной информации обратитесь к разделу Ресурсы.

Все примеры этой статьи (если это не оговаривается отдельно) выполнены в операционной системе Fedora 14 с версией ядра 2.6.35. Результаты, полученные в других операционных системах, могут отличаться.

Эта статья поможет вам подготовиться к сдаче экзамена LPI 101 на администратора начального уровня (LPIC-1) и содержит материалы цели 101.2 темы 101. Цель имеет вес 3.

Необходимые условия

Как связаться с Яном

Ян – один из наших наиболее популярных и плодовитых авторов. Ознакомьтесь со всеми статьями Яна (EN), опубликованными на сайте developerWorks. Вы можете найти контактные данные в профиле Яна и связаться с ним, а также с другими авторами и участниками ресурса My developerWorks.

Чтобы извлечь наибольшую пользу из наших статей, необходимо обладать базовыми знаниями о Linux и иметь работоспособный компьютер с Linux, на котором можно будет выполнять все встречающиеся команды. Иногда различные версии программ выводят результаты по-разному, поэтому содержимое листингов и рисунков может отличаться от того, что вы увидите на вашем компьютере. В частности, могут отличаться параметры BIOS различных компьютеров и загрузочные экраны различных дистрибутивов Linux.

Также вы должны быть знакомы с материалом статьи "Изучаем Linux, 101: Разметка жесткого диска".


Процесс загрузки

Прежде чем перейти к рассмотрению таких менеджеров загрузки, как LILO и GRUB, давайте выясним, как ПК начинает свою работу, или загружается. У каждого компьютера есть код базовой системы ввода/вывода ( B asic I nput O utput S ervice, или BIOS), хранящийся в энергонезависимой памяти, например, ROM, EEPROM или флэш-память. Этот код выполняется каждый раз при включении или перезагрузке ПК. При этом выполняется процедура начального самотестирования компьютера при включении питания (Power-on Self Test, POST), определяется загрузочный диск (одно из доступных съемных или встроенных устройств), после чего загружается первый сектор главной загрузочной записи Master Boot Record (MBR) этого диска. В роли загрузочного диска может выступать обычный жесткий диск, твердотельный SSD накопитель, USB-накопитель или привод со съемными носителями, такое как дискета, CD- или DVD-диск. Несмотря на то, что в этой статье мы будем рассматривать загрузку с жестких дисков, этот процесс одинаков для всех типов устройств.

Как уже упоминалось в статье "Изучаем Linux, 101: Разметка жесткого диска", главная загрузочная запись также содержит таблицу разделов, поэтому объем выполняемого кода в MBR не превышает 512 байтов, что не так уж много. Отметим, что каждый диск (в том числе дискеты, CD- и DVD-диски, SSD- и USB-накопители) содержит выполняемый код в своей главной загрузочной записи, пусть даже его хватает лишь на то, чтобы вывести сообщение "Non-bootable disk in drive A:" (в приводе А: стоит диск, с которого нельзя загрузиться). Этот код, загружаемый BIOS из первого сектора, называется первичным загрузчиком, или загрузчиком первой стадии.

Стандартная главная загрузочная запись жестких дисков, использующаяся операционными системами DOS, PC DOS и Windows ®, просматривает таблицу разделов, ищет в ней основной раздел на загрузочном диске, помеченный как активный, загружает первый сектор из этого раздела и передает управление в начало загруженного кода. Этот новый фрагмент кода также известен как загрузочная запись раздела. На самом деле загрузочная запись раздела является еще одним загрузчиком первой стадии, но она уже обладает достаточной функциональностью, позволяющей загрузить набор блоков раздела. Код, расположенный в этом новом наборе блоков, называется загрузчиком второй стадии. В операционных системах MS-DOS и PC-DOS загрузчик второй стадии выполняет непосредственную загрузку оставшейся части операционной системы. Вот так операционная система вашего компьютера самостоятельно загружается и начинает работать.

Это хорошо работает в компьютере с одной операционной системой, но что, если вы хотите установить на свой компьютер несколько операционных систем – предположим, OS/2, Windows XP и три различных дистрибутива Linux? Вы могли бы использовать некую специальную программу (такую, как DOS-программа FDISK) для изменения активного раздела и последующей перезагрузки системы, однако это слишком неудобный вариант. Более того, диск может иметь только четыре основных раздела, а стандартная запись MBR – только один активный основной раздел; загрузка с логического раздела невозможна. Тем не менее, в нашем примере упоминаются пять операционных систем, для каждой из которых требуется отдельный раздел. Что же делать?

Решением в этой ситуации является использование некоего специального кода, позволяющего пользователю выбирать, какую операционную систему необходимо загружать. Приведем некоторые примеры.

Loadlin
Исполняемая DOS-программа, запускаемая из работающей операционной системы DOS для загрузки с раздела Linux. Эта программа была популярна в те времена, когда настройка системы с множественной загрузкой была сложным и рискованным делом
Менеджер загрузки OS/2
Программа, устанавливаемая в небольшой отдельный раздел. Этот раздел помечается как активный, а в процессе стандартной загрузки MBR запускается менеджер загрузки OS/2, который выводит меню для выбора загружаемой операционной системы.
Интеллектуальный системный загрузчик
Программа, которая может размещаться в разделе с операционной системой и вызываться либо загрузочной записью активного раздела, либо главной загрузочной записью. Приведем примеры.
  • BootMagic – часть пакета Norton PartitionMagic.
  • LILO – сокращенно от LInux LOader.
  • GRUB – сокращенно от GRand Unified Boot loader (сейчас он называется GRUB Legacy).
  • GRUB 2 – новый загрузчик, который лишь недавно начали включать в состав популярных дистрибутивов.

Очевидно, если вы можете передать управление системой какой-либо программе, код которой занимает более 512 байтов и позволяет выполнить поставленную задачу, то можно без особых сложностей загружаться с логических разделов или с разделов, не расположенных на загрузочном диске. Это реализовано во всех вышеперечисленных решениях одним из двух способов: либо загрузочная запись загружается с произвольного раздела, либо программы умеют определять, какие файлы должны быть загружены для того чтобы начался процесс загрузки.

Загрузка по цепочке

Когда менеджер загрузки получает управление, то помимо прочего, он может загрузить другой загрузчик. Этот механизм называется chain loading (загрузка по цепочке) и наиболее часто используется тогда, когда менеджер загрузки, расположенный в главной загрузочной записи (MBR) загружает загрузчик, расположенный в загрузочной записи раздела. Это происходит почти всегда, когда загрузчик Linux получает запрос на загрузку с раздела Windows или DOS, но может происходить и тогда, когда загрузчик Linux одной системы получает запрос на загрузку загрузчика другой системы. Например, с помощью загрузчика LILO, расположенного в одном разделе, можно загрузить загрузчик GRUB, расположенный в загрузочной записи другого раздела, и получить доступ к его меню.

Менеджеры загрузки Linux

Теперь мы сосредоточимся на рассмотрении LILO и GRUB, поскольку эти менеджеры загрузки включены в состав большинства дистрибутивов Linux. LILO существует уже давно, а GRUB был разработан позже. В настоящее время под руководством Free Software Foundation разрабатывается его обновленная версия GRUB 2 (см. раздел Ресурсы), а исходный загрузчик GRUB сейчас называется GRUB Legacy. Я немного расскажу о GRUB 2, чтобы дать вам представление об основных отличиях между GRUB и GRUB 2, а также о том, как эти два загрузчика могут работать в связке друг с другом. В оставшейся части статьи мы будем говорить о GRUB, подразумевая, что речь идет о GRUB Legacy (при отсутствии явных упоминаний о GRUB 2). Также на сегодняшний день доступна новая версия загрузчика LILO – ELILO, которая была разработана для загрузки компьютеров, использующих вместо BIOS интерфейс EFI (Extensible Firmware Interface), разработанный Intel. Для получения дополнительной информации о GRUB 2 и ELILO обратитесь к разделу Ресурсы.

В процессе инсталляции вашего дистрибутива Linux вы, вероятно, сможете выбрать для установки один из нескольких предлагаемых загрузчиков. Как GRUB, так и LILO работают с большинством современных жестких дисков емкостью до 2 ТБ, хотя LILO уже не входит в состав некоторых дистрибутивов, в особенности Fedora. Помните о том, что технологии жестких дисков стремительно развиваются, поэтому всегда следует быть уверенным в том, что выбранный загрузчик, так же как и дистрибутив Linux (или другой ОС) или BIOS компьютера будут работать с вашим новым диском. В противном случае можно потерять все хранящиеся на диске данные. Точно так же, если вы добавляете дополнительный дистрибутив в существующую систему, стоит убедиться в том, что в MBR установлена самая последняя версия LILO или GRUB. Самая последняя версия GRUB или LILO потребуется и в том случае, если вы планируете загружать систему с LVM-раздела или дискового RAID-массива.

Загрузчики второй стадии, использующиеся в LILO и GRUB, позволяют выбирать для загрузки одну из нескольких операционных систем. Тем не менее, LILO и GRUB сильно различаются в следующем: при внесении изменений в систему (таких как обновление ядра или выполнение ряда других действий) для повторного создания загрузочного меню LILO требуется использовать определенную команду, тогда как при использовании GRUB это можно сделать, просто отредактировав текстовый конфигурационный файл. GRUB 2 также требует повторной сборки из конфигурационного файла, который обычно хранится в директории /etc.

Теперь еще раз кратко перечислим этапы загрузки компьютера:

  1. При включении ПК базовая система ввода/вывода (BIOS – Basic Input Output Service) выполняет самодиагностику.
  2. По завершении самодиагностики BIOS загружает главную загрузочную запись (MBR – Master Boot Record), обычно расположенную в первом секторе загрузочного диска, размер которого составляет 512 байтов. Как правило, загрузочным диском является первый жесткий диск компьютера, хотя им может быть и дискета, компакт-диск или USB-накопитель.
  3. В случае жесткого диска MBR загружает загрузчик первой стадии; в Linux-системах это, как правило, загрузчик первой стадии LILO или GRUB, представляющий собой еще одну запись, содержащуюся в одном секторе размером в 512 байтов.
  4. Загрузчик первой стадии загружает последовательность записей, которая называется загрузчиком второй стадии (или иногда загрузчиком стадии 1.5).
  5. Загрузчик второй стадии загружает операционную систему. В Linux этим загрузчиком является ядро и, возможно, начальный RAM-диск для загрузки Linux (initial RAM disk, initrd).

Ваш компьютер должен поддерживать один из следующих из следующих распространенных менеджеров загрузки: LILO (LInux LOader) или GRUB (GRand Unified Boot loader). Вы должны уметь использовать выбранный вами менеджер загрузки для обычной загрузки компьютера, как это было описано выше. Если вам необходимо освежить ваши знания об установке загрузчиков или основах загрузки компьютера, обратитесь к другой статье этой серии "Изучаем Linux, 101: Менеджеры загрузки".

Вы можете влиять на процесс загрузки системы следующим образом:

  1. Вы можете выбрать устройство, с которого необходимо загружать компьютер. В обычном режиме вы можете загружать компьютер с жесткого диска, но иногда может возникнуть необходимость загрузиться с дискеты, USB-накопителя, диска CD или DVD или по сети. Для реализации возможности выбора дополнительных загрузочных устройств необходимо соответствующим образом настроить BIOS; кроме того, во время загрузки может потребоваться нажать дополнительную клавишу для отображения загрузочного меню. Меню выбора загрузочного устройств одной из моих систем изображено на рисунке 1. Способ настройки и выбора загрузочных устройств зависит от вашего компьютера и его BIOS. Эта тема выходит за рамки целей экзамена LPI (для получения дополнительной информации вы обратитесь к документации вашего компьютера).
    Рисунок 1. Выбор загрузочного устройства
    Выбор загрузочного устройства
  2. Вы можете взаимодействовать с менеджером загрузки и выбирать одну из нескольких возможных конфигураций для загрузки. Далее в этой статье я покажу, как использовать этот способ при работе с загрузчиками LILO и GRUB.
  3. Вы можете использовать GRUB и LILO для передачи параметров в ядро Linux; это позволяет управлять тем, как ядро запускает систему после того, как загрузчик первой стадии передает ему управление.

LILO

TПо умолчанию конфигурационным файлом LILO является файл /etc/lilo.conf. В листинге 1 приведен пример компьютера с установленной ОС Slackware на устройстве /dev/sda10, ОС Windows на устройстве /dev/sda1 и ОС Fedora 14 на устройстве /dev/sdb12. Этот пример был получен с помощью команды /sbin/liloconfig.

Листинг 1. Пример конфигурационного файла LILO
# LILO configuration file
# generated by 'liloconfig'
#
# Start LILO global section
lba32 # Allow booting past 1024th cylinder with a recent BIOS
boot = /dev/root
#compact # faster, but won't work on all systems.
# Boot BMP Image.
# Bitmap in BMP format: 640x480x8
bitmap = /boot/slack.bmp
# Menu colors (foreground, background, shadow, highlighted
# foreground, highlighted background, highlighted shadow):
bmp-colors = 255,0,255,0,255,0
# Location of the option table: location x, location y, number of
# columns, lines per column (max 15), "spill" (this is how many
# entries must be in the first column before the next begins to
# be used. We don't specify it here, as there's just one column.
bmp-table = 60,6,1,16
# Timer location x, timer location y, foreground color,
# background color, shadow color.
bmp-timer = 65,27,0,255
# Standard menu.
# Or, you can comment out the bitmap menu above and
# use a boot message with the standard menu:
#message = /boot/boot_message.txt

# Append any additional kernel parameters:
append=" vt.default_utf8=0"
prompt
timeout = 300
# Normal VGA console
vga = normal
# VESA framebuffer console @ 1024x768x64k
# vga=791
# VESA framebuffer console @ 1024x768x32k
# vga=790
# VESA framebuffer console @ 1024x768x256
# vga=773
# VESA framebuffer console @ 800x600x64k
# vga=788
# VESA framebuffer console @ 800x600x32k
# vga=787
# VESA framebuffer console @ 800x600x256
# vga=771
# VESA framebuffer console @ 640x480x64k
# vga=785
# VESA framebuffer console @ 640x480x32k
# vga=784
# VESA framebuffer console @ 640x480x256
# vga=769
# ramdisk = 0 # paranoia setting
# End LILO global section
# Linux bootable partition config begins
image = /boot/vmlinuz
root = /dev/sda10
label = Slackware13
read-only # Partitions should be mounted read-only for checking
# Linux bootable partition config ends
# Windows bootable partition config begins
other = /dev/sda1
label = Windows
table = /dev/sda
# Windows bootable partition config ends
# Linux bootable partition config begins
image = /boot/vmlinuz
root = /dev/sdb13
label = Fedora14
read-only # Partitions should be mounted read-only for checking
# Linux bootable partition config ends

Параметр bitmap в конфигурационном файле листинга 1 имеет значение /boot/slack.bmp, указывающее на картинку, которая будет отображаться вместо стандартного текстового приглашения LILO, как показано на рисунке 2. На этом рисунке подсвечен загрузочный образ, выбираемый по умолчанию (Slackware13); также в списке присутствуют образы Windows и Fedora14. Используйте для выбора загрузочного образа клавиши управления курсором, после чего нажмите Enter. Если параметр timeout в конфигурационном файле не равен 0, то система будет ждать указанное количество десятых долей секунды (в нашем примере задано значение 300, соответствующее 30 секундам), после чего будет загружен выбранный образ.

Рисунок 2. Загрузочный экран LILO операционной системы Slackware 13
Загрузочный экран LILO операционной системы Slackware 13

Использование текстового приглашения

В вышеприведенном примере мы использовали картинку для отображения загрузочного меню. Традиционное меню загрузки LILO отображает краткое текстовое приглашение, похожее на приглашение, которое появляется при нажатии клавиши Tab. Вы можете либо ввести имя дистрибутива, который хотите загрузить, либо нажать клавишу Enter для загрузки первого дистрибутива из списка. Это продемонстрировано в листинге 2 и на рисунке 3.

Листинг 2. Стандартное текстовое приглашение LILO
Slackware13      Windows         Fedora14
boot:
Рисунок 3. Стандартное текстовое приглашение LILO
Стандартное текстовое приглашение LILO

Если вместо графического экрана приветствия вы захотите использовать текстовое приглашение, то закомментируйте строки bitmap и bmpxxx и раскомментируйте строку с параметром message, указав в качестве значения имя текстового файла, содержащего отображаемое сообщение. Теперь текстовое приглашение не столь кратко, а для выбора загрузочных образов используется библиотека curses. Как и раньше, вы можете вводить параметры. На рисунке 4 наш файл с сообщением содержит текст "Booting pinguino >>>" и как и раньше мы можем загрузиться в однопользовательском режиме, используя параметр S.

Рисунок 4. Текстовый загрузочный экран LILO в Slackware 13 (с использованием библиотеки curses)
Текстовый загрузочный экран LILO в Slackware 13 (с использованием библиотеки curses)

Примечание. Чтобы вывести приглашение, возможно, нужно будет удерживать нажатой клавишу Shift во время загрузки.

Команда lilo

Помните о том, что каждый раз при внесении изменений в файл /etc/lilo.conf или при установке нового ядра вы должны запускать команду lilo. Команда lilo перезаписывает главную загрузочную запись (MBR) или загрузочную запись раздела, и только после этого вступают в силу все изменения, включая запись абсолютного местоположения ядра на жестком диске. Если ваш конфигурационный файл содержит образы Linux, расположенные на нескольких различных разделах, то вы должны смонтировать эти разделы, поскольку команде lilo необходимо получить к ним доступ для нахождения образов.

Помимо просмотра конфигурационного файла LILO для получения информации о вариантах загрузки операционных систем можно использовать опцию -q команды lilo. Для более подробного вывода добавьте опцию -v. В листинге 3 приведены два примера: первый использует графическую конфигурацию (листинг 1), а второй – текстовую конфигурацию (рисунок 4).

Листинг 3. Получение информации о конфигурации LILO
root@echidna:~# lilo -q -C /etc/lilo-graphic.conf
Slackware13     *
Windows
Fedora14

root@echidna:~# lilo -q -v -C /etc/lilo-text.conf
LILO version 22.8, Copyright (C) 1992-1998 Werner Almesberger
Development beyond version 21 Copyright (C) 1999-2006 John Coffman
Released 19-Feb-2007 and compiled at 20:09:28 on Feb 14 2010

Reading boot sector from /dev/root
Installed:  Tue Sep  6 15:51:49 2011

Global settings:
  Delay before booting: 0.0 seconds
  Command-line timeout: 30.0 seconds
  No unattended booting
  No PC/AT keyboard hardware presence check
  Always enter boot prompt
  Boot-time BIOS data saved
  Boot-time BIOS data auto-suppress write bypassed
  Large memory (>15M) is NOT used to load initial ramdisk
  Non-RAID installation
  Boot device will not be used for the Map file
  Serial line access is disabled
  Boot prompt message is 1083 bytes
  No default boot command line
Images:
  Slackware13     *
    No password
    Boot command-line won't be locked
    No single-key activation
    VGA mode: NORMAL
    Kernel is loaded "high"
    No initial RAM disk
    No fallback
    Options: "ro root=80a  vt.default_utf8=0"
  Windows
    No password
    Boot command-line won't be locked
    No single-key activation
    No fallback
    No options
  Fedora14
    No password
    Boot command-line won't be locked
    No single-key activation
    VGA mode: NORMAL
    Kernel is loaded "high"
    No initial RAM disk
    No fallback
    Options: "ro root=81d  vt.default_utf8=0"

Загрузка по цепочке с помощью LILO

Вы могли заметить, что в конфигурационном файле LILO для загрузочного раздела Windows задано устройство (/dev/sda1), тогда как для разделов Slackware и Fedora указаны образы, располагающиеся в корневых разделах /dev/sda10 и /dev/sdb13, соответственно. На тех компьютерах, которые могут иметь несколько загрузочных разделов, я часто создаю небольшой раздел, содержащий GRUB, с которого можно загрузить любой другой раздел; в обычных случаях для этого используется загрузка по цепочке, но с помощью других средств, когда, например, система на разделе использует другой загрузчик, например, GRUB2. Поскольку на этом разделе размещен загрузчик GRUB Legacy, его можно загрузить по цепочке. Чтобы добавить LILO для загрузки по цепочке другого раздела, например, этого раздела GRUB, можно добавить запись, показанную в листинге 4.

Листинг 4. Добавление раздела для загрузки GRUB по цепочке
# Linux bootable partition config begins
other = /dev/sda2
  label = GRUB
# Linux bootable partition config ends

GRUB

Конфигурация GRUB по умолчанию содержится в файле /boot/grub/grub.conf или /boot/grub/menu.lst. Если в вашей системе присутствуют оба этих файла, то, вероятно, один из них является символической ссылкой на другой. В листинге 5 приведен пример конфигурации GRUB той же системы, на которой мы рассматривали конфигурацию LILO. Обратите внимание, что для удобства чтения мы разделили три оператора, описывающих ядро, на несколько строк.

Листинг 5. Пример конфигурационного файла GRUB
# grub.conf generated by anaconda
#
# Note that you do not have to rerun grub after making changes to this file
# NOTICE:  You do not have a /boot partition.  This means that
#          all kernel and initrd paths are relative to /, eg.
#          root (hd1,12)
#          kernel /boot/vmlinuz-version ro root=/dev/sdb13
#          initrd /boot/initrd-[generic-]version.img
#boot=/dev/sdb13
default=0
timeout=5
splashimage=(hd1,12)/boot/grub/splash.xpm.gz
hiddenmenu
title Fedora (2.6.35.14-95.fc14.x86_64)
        root (hd1,12)
        kernel /boot/vmlinuz-2.6.35.14-95.fc14.x86_64 ro 
            root=UUID=5e22a2e0-5ac2-47d5-b98a-d5b25eff585a 
            rd_NO_LUKS rd_NO_LVM rd_NO_MD rd_NO_DM 
            LANG=en_US.UTF-8 SYSFONT=latarcyrheb-sun16 
            KEYTABLE=us rhgb quiet
        initrd /boot/initramfs-2.6.35.14-95.fc14.x86_64.img
title Fedora (2.6.35.13-92.fc14.x86_64)
        root (hd1,12)
        kernel /boot/vmlinuz-2.6.35.13-92.fc14.x86_64 ro 
            root=UUID=5e22a2e0-5ac2-47d5-b98a-d5b25eff585a 
            rd_NO_LUKS rd_NO_LVM rd_NO_MD rd_NO_DM 
            LANG=en_US.UTF-8 SYSFONT=latarcyrheb-sun16 
            KEYTABLE=us rhgb quiet
        initrd /boot/initramfs-2.6.35.13-92.fc14.x86_64.img
title Fedora (2.6.35.13-91.fc14.x86_64)
        root (hd1,12)
        kernel /boot/vmlinuz-2.6.35.13-91.fc14.x86_64 ro 
            root=UUID=5e22a2e0-5ac2-47d5-b98a-d5b25eff585a 
            rd_NO_LUKS rd_NO_LVM rd_NO_MD rd_NO_DM 
            LANG=en_US.UTF-8 SYSFONT=latarcyrheb-sun16 
            KEYTABLE=us rhgb quiet
        initrd /boot/initramfs-2.6.35.13-91.fc14.x86_64.img
title GRUB
        rootnoverify (hd0,1)
        chainloader +1
title Slackware 13
        rootnoverify (hd0,9)
        chainloader +1
title Windows
        rootnoverify (hd0,0)
        chainloader +1

В GRUB присутствует меню с графическим интерфейсом. Кроме того, пароли в GRUB шифруются с помощью алгоритма MD5, в отличие от паролей LILO, передаваемых открытым текстом. Но, пожалуй, самым важным отличием является то, что при внесении изменений в конфигурационный файл вам не требуется переустанавливать GRUB в главную загрузочную запись. Обратите внимание на то, что многие дистрибутивы автоматически обновляют конфигурацию GRUB (или LILO) при обновлении ядра, но если вы устанавливаете новое ядро вручную или создаете новый начальный RAM-диск, вам может потребоваться отредактировать конфигурационный файл.

Кроме того, для настройки загрузочных записей разделов при помощи GRUB их не обязательно монтировать. Обратите внимание на записи root (hd0,9) и splashimage=(hd1,12)/boot/grub/splash.xpm.gz. GRUB обращается к жестким дискам по именам hd n, где n – это целое число, начиная с 0. Точно так же нумеруются и разделы диска (тоже начиная с 0). Примечание. В GRUB2 диски именуются по-другому, поэтому будьте внимательны, если вы одновременно работаете с GRUB и GRUB2.

Таким образом, на этом компьютере имя (hd0,0) обозначает основной раздел Windows /dev/sda1, а имя (hd0,9) – логический раздел Slackware /dev/sda10. Для флоппи-дисковода обычно используется имя (fd0). Не забывайте заключать эти имена в кавычки, если вы вызываете GRUB с параметрами из интерпретатора bash, например, при установке GRUB на дискету, USB-носитель или в главную загрузочную запись.

Новые версии GRUB позволяют использовать для указания элемента rootметку или идентификатор UUID. Для получения дополнительной информации о метках и идентификаторах обратитесь к разделу "Метки, идентификаторы и ссылки" статьи Изучаем Linux, 101: монтирование и демонтирование файловых систем.

Когда компьютер загружается с помощью GRUB, то часто по умолчанию предлагается загрузить определенную ОС, как показано на рисунке 5. Если ничего не предпринимать, то по истечению заданного интервала времени загружается указанная система. Время до начала загрузки указывается в секундах, поэтому параметр timeout=5 в листинге 5 означает, что будет задан пятисекундный интервал.

Рисунок 5. Загрузка операционной системы по умолчанию в GRUB
Загрузка операционной системы по умолчанию в GRUB

Если нажать любую клавишу и отменить загрузку по умолчанию, то появится меню выбора ОС, похожее на меню, изображенное на рисунке 6.

Рисунок 6. Меню загрузки GRUB
Меню загрузки GRUB

При появлении меню GRUB можно выбрать загрузочный образ, перемещаясь по списку с помощью клавиш управления курсором.

Собственные фоновые изображения

Если вы хотите выбрать другое изображение для меню GRUB, то необходимо использовать 14-цветный пиксельный файл X Window (.xpm), упакованный с помощью gzip. Преобразованное JPEG–изображение может выглядеть не совсем так, как вы ожидаете, поэтому необходимо экспериментировать. Преобразовать изображение до 14-цветовой гаммы можно с помощью различных графических программ, например, GIMP (в этом случае используйте действие Image->Mode->Indexed... и установите в поле Maximum number of colors значение 14), или инструментов командной строки, например, ImageMagick. В листинге 6 показан пример преобразования исходного файла размером 800x531 пикселей к требуемому формату в 640x480 пикселей. Сначала размер файла изменяется до 640 пикселей в высоту, а затем часть изображения обрезается до нужного размера. Далее количество цветов понижается до 14 и файл преобразуется из формата.jpg в формат .xpm. Наконец, изображение упаковывается с помощью gzip.

Листинг 6. Создание собственного фонового изображения для меню GRUB
$ identify woodenbong.jpg
woodenbong.jpg JPEG 800x531 800x531+0+0 8-bit DirectClass 210KB 0.000u 0:00.000
$ convert -resize "800x640" woodenbong.jpg woodenbong2.jpg
$ convert -crop "640x480+40+0" +repage  woodenbong2.jpg  grub-in.jpg
$ convert -colors 14 grub-in.jpg grub-menu.xpm
$ gzip grub-menu.xpm

Оболочка GRUB

В отличие от LILO, в GRUB имеется небольшая оболочка, поддерживающая несколько команд, которые позволяют выполнять такие действия, как редактирование команд перед выполнением, поиск и загрузка конфигурационного файла или вывод содержимого файлов с помощью cat. Находясь на определенной записи меню GRUB, вы можете нажать e для ее редактирования, c для переключения в командную строку GRUB, b для загрузки системы, p для ввода пароля и Esc для возврата в меню или возврата к предыдущему действию. Также существует команда grub, которая создает виртуальную оболочку, в которой можно проверить конфигурацию GRUB или попрактиковаться в выполнении команд GRUB. Некоторые команды доступны для обычного пользователя, но для выполнения большинства из них требуются привилегии пользователя root. В листинге 7 показано, как запустить оболочку команду grub от имени пользователя root. Обычно команда grub находится в директории /sbin или /usr/sbin.

Листинг 7. Запуск оболочки GRUB
# grub

    GNU GRUB  version 0.97  (640K lower / 3072K upper memory)

 [ Minimal BASH-like line editing is supported.  For the first word, TAB
   lists possible command completions.  Anywhere else TAB lists the possible
   completions of a device/filename. ]

grub>

Находясь в оболочке GRUB, можно получить полный список команд, выполнив команду help. Использование команды help имякоманды выводит справку по команде имякоманды. В листинге 8 показан список доступных команд и справочная информация по команде rootnoverify.

Листинг 8. Использование оболочки GRUB
grub> help
blocklist FILE                         boot
cat FILE                               chainloader [--force] FILE
color NORMAL [HIGHLIGHT]               configfile FILE
device DRIVE DEVICE                    displayapm
displaymem                             find FILENAME
geometry DRIVE [CYLINDER HEAD SECTOR [ halt [--no-apm]
help [--all] [PATTERN ...]             hide PARTITION
initrd FILE [ARG ...]                  kernel [--no-mem-option] [--type=TYPE]
makeactive                             map TO_DRIVE FROM_DRIVE
md5crypt                               module FILE [ARG ...]
modulenounzip FILE [ARG ...]           pager [FLAG]
partnew PART TYPE START LEN            parttype PART TYPE
quit                                   reboot
root [DEVICE [HDBIAS]]                 rootnoverify [DEVICE [HDBIAS]]
serial [--unit=UNIT] [--port=PORT] [-- setkey [TO_KEY FROM_KEY]
setup [--prefix=DIR] [--stage2=STAGE2_ terminal [--dumb] [--no-echo] [--no-ed
terminfo [--name=NAME --cursor-address testvbe MODE
unhide PARTITION                       uppermem KBYTES
vbeprobe [MODE]

grub> help rootnoverify
rootnoverify: rootnoverify [DEVICE [HDBIAS]]
    Similar to `root', but don't attempt to mount the partition. This
    is useful for when an OS is outside of the area of the disk that
    GRUB can read, but setting the correct root device is still
    desired. Note that the items mentioned in `root' which derived
    from attempting the mount will NOT work correctly.

grub>

В качестве практического упражнения вы можете продолжить работу в оболочке GRUB и найти конфигурационные файлы с помощью команды find. Затем вы можете загрузить конфигурационный файл из раздела (hd1,12), являющегося устройством /dev/sdb13, как показано в листинге 9.

Листинг 9. Использование GRUB для поиска и загрузки конфигурационного файла
grub> find /boot/grub/menu.lst
 (hd0,1)
 (hd0,5)
 (hd1,6)
 (hd1,8)
 (hd1,9)
 (hd1,10)
 (hd1,11)
 (hd1,12)

grub> configfile (hd1,12)/boot/grub/menu.lst
Press `ESC' to enter the menu... 24

При загрузке конфигурационного файла можно увидеть вывод, показанный в листинге 10. Помните о том, что все действия выполняются в оболочке GRUB, которая является лишь симуляцией реальной среды GRUB, не отображающей фоновое изображение. Тем не менее, данный вывод очень похож на то, что вы видите на фоновом изображении при реальной загрузке системы с помощью GRUB.

Примечание. Если ваше меню выглядит не так, как показано в листинге 10, а при нажатии клавиш курсора отображаются символы наподобие ^[[A, то это значит, что в вашу версию команды grub не включена поддержка библиотеки curses, необходимой для правильного отображения меню. Данная проблема может касаться ряда последних версий Fedora. В этом случае ваши возможности работы в оболочке grub будут ограничены.

Листинг 10. Меню GRUB
    GNU GRUB  version 0.97  (640K lower / 3072K upper memory)

 +-------------------------------------------------------------------------+
 | Fedora (2.6.35.14-95.fc14.x86_64)                                       |
 | Fedora (2.6.35.13-92.fc14.x86_64)                                       |
 | Fedora (2.6.35.13-91.fc14.x86_64)                                       |
 | GRUB                                                                    |
 | Slackware 13                                                            |
 | Windows                                                                 |
 |                                                                         |
 |                                                                         |
 +-------------------------------------------------------------------------+
      Use the ^ and v keys to select which entry is highlighted.
      Press enter to boot the selected OS, 'e' to edit the
      commands before booting, or 'c' for a command-line.

Предположим, вы выделили третий пункт меню Fedora (2.6.35.13-91.fc14.x86_64) и нажали клавишу e для его редактирования. Вы должны увидеть нечто похожее на содержимое листинга 11.

Листинг 11. Редактирование элемента конфигурации GRUB
    GNU GRUB  version 0.97  (640K lower / 3072K upper memory)

 +-------------------------------------------------------------------------+
 | root (hd1,13)                                                           |
 | kernel /boot/vmlinuz-2.6.35.13-91.fc14.x86_64 ro root=UUID=5e22a2e0-5>  |
 | initrd /boot/initramfs-2.6.35.13-91.fc14.x86_64.img                     |
 |                                                                         |
 |                                                                         |
 +-------------------------------------------------------------------------+
      Use the ^ and v keys to select which entry is highlighted.
      Press 'b' to boot, 'e' to edit the selected command in the
      boot sequence, 'c' for a command-line, 'o' to open a new line
      after ('O' for before) the selected line, 'd' to remove the
      selected line, or escape to go back to the main menu.

Снова используйте клавиши управления курсором для выбора строки, которую необходимо редактировать, и нажмите e для ее редактирования. В этом примере предполагается, что изначально ОС Fedora была установлена в раздел /dev/sdb14, а затем был удален раздел с меньшим номером, предположим, /dev/sdb8. В результате раздел с установленной ОС Fedora стал называться /dev/sdb13, или hd1,12 в терминах GRUB. Переместите курсор с помощью клавиш со стрелками после символа '3' в имени '(hd1,13)', а затем удалите символ '3' и замените его на '2'. По завершении нажмите клавишу Enter, чтобы сохранить изменения, или клавишу Esc для их отмены. Наконец, если вы работали не в оболочке GRUB, а в настоящей системе, нажмите b для ее загрузки.

Когда оболочка GRUB загружена, она способна отображать содержимое файловой системы и работает от имени пользователя root, поэтому всегда необходимо использовать пароли для защиты GRUB. Помните о том, что если пользователь имеет возможность загрузиться со сменного носителя, он может использовать свою собственную конфигурацию GRUB. Для получения дополнительной информации по защите GRUB, а также информации относительно прочих вопросов безопасности прочитайте соответствующий раздел в справочном руководстве GRUB (раздел Ресурсы) или запустив команду info grub.


Параметры ядра

Параметры ядра (иногда их называют параметры загрузки) сообщают ядру информацию о параметрах аппаратного обеспечения, которые оно может не определить самостоятельно; это позволяет переопределить те параметры, которые могут быть некорректно определены или проигнорированы ядром. Например, это может потребоваться, если вы хотите загрузить систему в однопользовательском режиме (например, для ее восстановления), загрузить многопроцессорный компьютер в однопроцессорном режиме или указать альтернативную корневую файловую систему. На компьютерах с ОЗУ, объем которого превышает определенное значение, некоторые уровни ядра требуют указания параметра, включающего поддержку памяти большой емкости.

Иногда может потребоваться выполнить загрузку с указанием дополнительных параметров. Например, может потребоваться загрузить систему в режиме \single-user, для чего используется параметр S, или выбрать для загрузки предыдущее рабочее ядро, например, чтобы выяснить, почему система не загружается с его новой измененной версией. Чтобы увидеть список доступных для загрузки образов и строку приглашения LILO boot:, нажмите клавишу Tab, после чего вы можете либо ввести имя образа, либо нажать клавишу Enter для загрузки первого элемента списка. Если вы хотите добавить параметры, введите их после имени образа. В листинге 12 и на рисунке 7 показан вывод, который можно увидеть при нажатии клавиши Tab; наберите в строке Slackware13 для выбора образа Slackware 13, добавьте параметр S, чтобы загрузиться в однопользовательском режиме, и нажмите клавишу Enter для начала загрузки ОС.

Листинг 12. Указание параметров загрузки при работе с LILO
Slackware 13     Windows        Fedora 14
boot: Slackware13 S
Рисунок 7. Загрузка Slackware в однопользовательском режиме
Загрузка Slackware в однопользовательском режиме

При использовании GRUB можно указывать другие команды ядра и операторы initrd или, что более предпочтительно, редактировать существующие записи, как было показано выше. Например, для загрузки в однопользовательском режиме можно указать параметр S.

Процесс init

По завершении загрузки ядра обычно запускается процесс /sbin/init. Этот процесс остается запущенным до самого завершения работы системы и ему всегда назначается идентификатор 1, как показано в листинге 13.

Листинг 13. Процесс init
[root@echidna ~]# ps --pid 1
  PID TTY          TIME CMD
    1 ?        00:00:00 init

Программа init запускает ряд сценариев для дальнейшей загрузки системы. Обычно эти сценарии располагаются в директории /etc/rc.d/init.d или /etc/init.d и выполняют такие действия, как задание имени хоста, проверку файловой системы на предмет ошибок, монтирование дополнительных файловых систем, обеспечение сетевого взаимодействия, запуск служб печати и так далее. По завершении выполнения всех сценариев init запускает программу под названием getty, которая отображает на консолях строку входа в систему. Графические окна входа управляются графическими менеджерами дисплея, такими как GDM или Gnome.

Если ядро было загружено, но запуск init завершился неудачей, то можно попытаться восстановить систему, указав альтернативную программу инициализации. Например, если указать параметр init=/bin/sh, будет загружена командная строка с привилегиями пользователя root, из которой можно попытаться восстановить систему.

Дополнительную информацию о различных параметрах загрузки вы можете найти на man-страницах bootparam или в файле /usr/src/linux/Documentation/ramdisk.txt (в некоторых системах он может вызываться через /usr/src/linux-$(uname -r)/Documentation/kernel-parameters.txt).

Излишне говорить о том, что если какие-либо параметры необходимо применять при каждой загрузке, их следует добавить в конфигурационный файл. Если вы используете LILO, то не забывайте запускать команду lilo после каждого внесения изменений в конфигурацию.


События загрузки

В процессе загрузки Linux на консоль выводится большое количество сообщений, содержащих информацию о стадиях загрузки ядра, аппаратном обеспечении компьютера и т. д. Обычно эти сообщения быстро пролистываются и вы можете не успеть прочесть их, если только процесс загрузки не приостановится в ожидании каких-либо действий (например, при невозможности установления связи с сервером времени или при необходимости проверки файловой системы). С появлением проекта Linux Bootsplash (раздел Ресурсы) эти сообщения могут выводиться поверх графического фона или быть спрятаны и замещены индикатором текущего состояния. Если ваш дистрибутив Linux поддерживает использование скрытого режима, то события загрузки можно снова отобразить, нажав определенную клавишу, например, F2.

dmesg

Хорошо было бы иметь возможность просматривать сообщения о загрузке в любой момент. Поскольку стандартное устройство вывода связано с процессом, а у ядра идентификатор процесса отсутствует, то выводимые ядром (и модулем) сообщения помещаются в кольцевой буфер ядра, который можно просмотреть с помощью команды dmesg, выводящей информацию из буфера на стандартное устройства вывода. Естественно, этот вывод можно перенаправить в файл, чтобы позже его можно было проанализировать или отправить разработчикам ядра для проверки и отладки. В листинге 14 показан пример вывода, который вы можете увидеть в своей системе.

Листинг 14. Фрагмент вывода dmesg
[root@echidna ~]# dmesg | head -n 30
[    0.000000] Initializing cgroup subsys cpuset
[    0.000000] Initializing cgroup subsys cpu
[    0.000000] Linux version 2.6.35.14-95.fc14.x86_64 (mockbuild@x86-07.phx2.fedoraprojec
t.org) (gcc version 4.5.1 20100924 (Red Hat 4.5.1-4) (GCC) ) #1 SMP Tue Aug 16 21:01:58 U
TC 2011
[    0.000000] Command line: ro root=UUID=5e22a2e0-5ac2-47d5-b98a-d5b25eff585a rd_NO_LUKS
 rd_NO_LVM rd_NO_MD rd_NO_DM LANG=en_US.UTF-8 SYSFONT=latarcyrheb-sun16 KEYTABLE=us rhgb 
quiet
[    0.000000] BIOS-provided physical RAM map:
[    0.000000]  BIOS-e820: 0000000000000000 - 000000000009dc00 (usable)
[    0.000000]  BIOS-e820: 000000000009dc00 - 00000000000a0000 (reserved)
[    0.000000]  BIOS-e820: 00000000000e0000 - 0000000000100000 (reserved)
[    0.000000]  BIOS-e820: 0000000000100000 - 00000000bf6b0000 (usable)
[    0.000000]  BIOS-e820: 00000000bf6b0000 - 00000000bf6c8000 (ACPI data)
[    0.000000]  BIOS-e820: 00000000bf6c8000 - 00000000bf6cb000 (ACPI NVS)
[    0.000000]  BIOS-e820: 00000000bf6cb000 - 00000000c0000000 (reserved)
[    0.000000]  BIOS-e820: 00000000e0000000 - 00000000f0000000 (reserved)
[    0.000000]  BIOS-e820: 00000000fec00000 - 00000000fec10000 (reserved)
[    0.000000]  BIOS-e820: 00000000fed1c000 - 00000000fed20000 (reserved)
[    0.000000]  BIOS-e820: 00000000fee00000 - 00000000fee01000 (reserved)
[    0.000000]  BIOS-e820: 00000000ff000000 - 0000000100000000 (reserved)
[    0.000000]  BIOS-e820: 0000000100000000 - 0000000134000000 (usable)
[    0.000000] NX (Execute Disable) protection: active
[    0.000000] DMI present.
[    0.000000] e820 update range: 0000000000000000 - 0000000000001000 (usable) ==> (reserv
ed)
[    0.000000] e820 remove range: 00000000000a0000 - 0000000000100000 (usable)
[    0.000000] No AGP bridge found
[    0.000000] last_pfn = 0x134000 max_arch_pfn = 0x400000000
[    0.000000] MTRR default type: uncachable
[    0.000000] MTRR fixed ranges enabled:
[    0.000000]   00000-9FFFF write-back
[    0.000000]   A0000-BFFFF uncachable
[    0.000000]   C0000-C7FFF write-protect
[    0.000000]   C8000-E3FFF uncachable

Кольцевой буфер ядра также используется для некоторых событий, возникающих после загрузки системы, например, это могут быть сбои в работе программ или события работы устройств с "горячей" заменой. В листинге 15 показаны записи, связанные с подключением USB-накопителя.

Листинг 15. События в кольцевом буфере ядра, возникающие после загрузки системы
[root@echidna ~]# dmesg | tail -n 19
[70259.964953] usb 1-4: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[70259.964957] usb 1-4: Product: Storage Media
[70259.964960] usb 1-4: Manufacturer: Sony
[70259.964963] usb 1-4: SerialNumber: 0205093006441
[70260.228187] Initializing USB Mass Storage driver...
[70260.229608] scsi4 : usb-storage 1-4:1.0
[70260.229749] usbcore: registered new interface driver usb-storage
[70260.229752] USB Mass Storage support registered.
[70261.232195] scsi 4:0:0:0: Direct-Access     Sony     Storage Media    0100 PQ: 0 ANSI:
 0 CCS
[70261.233159] sd 4:0:0:0: Attached scsi generic sg3 type 0
[70261.237931] sd 4:0:0:0: [sdc] 1014784 512-byte logical blocks: (519 MB/495 MiB)
[70261.238809] sd 4:0:0:0: [sdc] Write Protect is off
[70261.238814] sd 4:0:0:0: [sdc] Mode Sense: 43 00 00 00
[70261.238818] sd 4:0:0:0: [sdc] Assuming drive cache: write through
[70261.243554] sd 4:0:0:0: [sdc] Assuming drive cache: write through
[70261.243566]  sdc:
[70261.317555] sd 4:0:0:0: [sdc] Assuming drive cache: write through
[70261.317561] sd 4:0:0:0: [sdc] Attached SCSI removable disk
[70261.616396] SELinux: initialized (dev sdc, type vfat), uses genfs_contexts

Файл /var/log/messages

Как вы только что видели, после запуска в системе процесса /sbin/init ядро продолжает записывать события в кольцевой буфер, но теперь для записи событий процессы используют демон syslog, а события, как правило, записываются в файл /var/log/messages. В отличие от кольцевого буфера, каждая строка syslog содержит метку времени, а файл журнала не удаляется при перезагрузках системы. Если вы ищете ошибки, возникшие на этапе выполнения сценариев инициализации, то первым делом вы должны просмотреть записи в файле /var/log/messages.

Названия большинства демонов оканчиваются на 'd'. В листинге 16 показано, как посмотреть несколько последних сообщений о состоянии демонов после перезагрузки системы.

Листинг 16. Сообщения о состоянии демонов в файле /var/log/messages
[root@echidna ~]# grep "^Sep.*d\:" /var/log/messages|tail -n 14
Sep  7 18:21:08 echidna acpid: waiting for events: event logging is off
Sep  7 18:21:12 echidna abrtd: Registered Analyzer plugin 'Kerneloops'
Sep  7 18:21:12 echidna abrtd: Registered Analyzer plugin 'Python'
Sep  7 18:21:12 echidna abrtd: Registered Reporter plugin 'Logger'
Sep  7 18:21:13 echidna abrtd: Registered Analyzer plugin 'CCpp'
Sep  7 18:21:13 echidna abrtd: Registered Action plugin 'KerneloopsScanner'
Sep  7 18:21:13 echidna abrtd: Registered Reporter plugin 'Bugzilla'
Sep  7 18:21:13 echidna abrtd: Registered Reporter plugin 'KerneloopsReporter'
Sep  7 18:21:13 echidna abrtd: Checking for unsaved crashes (dirs to check:5)
Sep  7 18:21:13 echidna abrtd: Registered Database plugin 'SQLite3'
Sep  7 18:21:13 echidna abrtd: Done checking for unsaved crashes
Sep  7 18:21:13 echidna abrtd: Init complete, entering main loop
Sep  7 18:21:26 echidna auditd[2032]: Started dispatcher: /sbin/audispd pid: 2034
Sep  7 18:21:26 echidna audispd: audispd initialized with q_depth=120 and 1 active plugins

В директории /var/log вы можете найти log–файлы многих других программ. Например, в ней можно обнаружить журнал событий загрузки системы X Window.

На этом мы завершаем знакомство с процессом загрузки операционной системы Linux.

Ресурсы

Научиться

  • Оригинал статьи: Learn Linux, 101: Boot the system (EN).
  • Используйте перечень материалов для подготовки к экзаменам LPIC-1 для поиска статей developerWorks, которые помогут вам подготовиться к сдаче экзаменов программы сертификации LPIC-1, основанной на целях по состоянию на апрель 2009 года.
  • На Web-сайте программы сертификации LPIC (EN) вы найдете подробные цели, списки задач и примерные вопросы всех трех уровней сертификации на администратора Linux-систем профессионального института Linux. В частности, на этом сайте представлены цели экзаменов LPI 101 и LPI 102 по состоянию на апрель 2009 года. Всегда обращайтесь к Web-сайту программы сертификации LPIC, чтобы узнать последние цели.
  • Просмотрите всю серию статей для подготовки к экзаменам института LPI на сайте developerWorks, основанных на предыдущих целях, определенных до апреля 2009 года, чтобы изучить основы администрирования Linux и подготовиться к экзаменам для получения сертификата администратора Linux.
  • В статье "Make the most of large drives with GPT and Linux" (EN) (developerWorks, июль 2009 г.) вы найдете информацию об интерфейсе Extensible Firmware Interface (EFI) и таблице разделов GUID Partition Table (GPT).
  • Узнайте больше о менеджере загрузки ELILO на домашней странице проекта ELILO: EFI Linux Boot Loader (EN).
  • Справочное руководство Linux BootPrompt-HowTo (EN) поможет вам разобраться с параметрами загрузки.
  • Для получения дополнительной информации о подсистеме upstart прочитайте обзор upstart (EN).

Обсудить

Комментарии

developerWorks: Войти

Обязательные поля отмечены звездочкой (*).


Нужен IBM ID?
Забыли Ваш IBM ID?


Забыли Ваш пароль?
Изменить пароль

Нажимая Отправить, Вы принимаете Условия использования developerWorks.

 


Профиль создается, когда вы первый раз заходите в developerWorks. Информация в вашем профиле (имя, страна / регион, название компании) отображается для всех пользователей и будет сопровождать любой опубликованный вами контент пока вы специально не укажите скрыть название вашей компании. Вы можете обновить ваш IBM аккаунт в любое время.

Вся введенная информация защищена.

Выберите имя, которое будет отображаться на экране



При первом входе в developerWorks для Вас будет создан профиль и Вам нужно будет выбрать Отображаемое имя. Оно будет выводиться рядом с контентом, опубликованным Вами в developerWorks.

Отображаемое имя должно иметь длину от 3 символов до 31 символа. Ваше Имя в системе должно быть уникальным. В качестве имени по соображениям приватности нельзя использовать контактный e-mail.

Обязательные поля отмечены звездочкой (*).

(Отображаемое имя должно иметь длину от 3 символов до 31 символа.)

Нажимая Отправить, Вы принимаете Условия использования developerWorks.

 


Вся введенная информация защищена.


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=40
Zone=Linux
ArticleID=801716
ArticleTitle=Изучаем Linux, 101: Загрузка системы
publish-date=02132012