Контактная информация

По всем интересующим вас вопросам связывайтесь при помощи контактной информации приведенной на этой странице!

skype: metsof
email: accusser@gmail.com

В социальных сетях...

Форма обратной связи

Авторизация

Статьи об операционной системе Linux

Сайдбар

Установка GRUB

01 марта 2014

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

Заново устанавливать GRUB нужно только в тех случаях, когда он стерт (например, после переустановки Windows), копия GRUB не работает или вы хотите заменить на GRUB другой загрузчик. Как правило, установка GRUB производится с «живой» системы (например, в Knoppix), так как без рабочего загрузчика невозможно запустить дистрибутив Linux, установленный на жестком диске вашего компьютера.

Базовая информация о загрузочном секторе



Прежде чем я расскажу, как на самом деле производится установка GRUB, необходимо ненадолго заглянуть внутрь BIOS и MS DOS. Интерпретация (одного или нескольких) загрузочных секторов происходит по принципу, появившемуся не один десяток лет назад. В дальнейшем предполагается, что вы знаете о существовании нескольких типов разделов.

Основная запись диска (MBR). Это первый сектор жесткого диска. Он занимает 512 байт и обычно содержит крошечную программу (не больше 446 байт). Далее следует таблица разбиения диска для четырех основных разделов (64 байт) и цифровая подпись (2 байт).

Загрузочный сектор раздела.

Такой сектор есть не только в MBR, но и в каждом разделе, и в действительности он может занимать до 16 секторов жесткого диска (8192 байт). В большинстве файловых систем загрузочный сектор раздела не используется, то есть сами данные начинаются только с последующих секторов. Но есть и исключения. Например, файловая система XFS использует все сектора. Если при этом информация загрузочного сектора раздела XFS будет стерта, то файловая система разрушится!

Запуск компьютера.

При запуске BIOS считывает запись MBR первого жесткого диска, загружает ее в оперативную память и проверяет, содержатся ли в двух последних байтах шестнадцатеричные коды 55 АА. Эти коды служат для идентификации носителей с возможностью загрузки. Если коды совпадают, то выполняется минипрограмма с загрузочного сектора. На компьютере, где установлена система MS DOS или Windows (не Linux), такая программа «узнает», какие из системных разделов помечены как активные (обычно это первый раздел). Затем эта программа загружает еще одну программу — из загрузочного сектора активного раздела — и выполняет ее. И уже эта программа отвечает за запуск Windows или MS DOS.

Если на компьютере установлено несколько жестких дисков, можно настроить в BIOS, в каком порядке будут запрашиваться жесткие диски при загрузке. Таким образом, в современных компьютерах система может загружаться с внешнего диска или USB-флешки. BIOS можно настроить и так, чтобы загрузка производилась с CD или DVD.

Существует несколько стратегий, позволяющих обеспечить мирное сосуществование Windows и Linux.

Самый обычный способ заключается в том, чтобы установить загрузчик Linux в MBR и выбирать, какую систему запускать, — Windows или Linux.

Если на компьютере уже установлена современная версия Windows (новее 9х/ ME), можно настроить загрузчик Windows так, чтобы он запускал GRUB. Достоинство в том, что MBR даже не нужно трогать. Недостаток состоит в том, что процесс установки относительно сложен. Кроме Ubuntu с WUBI, мне не известен ни один дистрибутив Linux, который мог бы выполнять такую операцию. Всегда требуется работать вручную.

Третий вариант заключается в том, чтобы установить GRUB в загрузочный сектор основного раздела и пометить этот раздел как активный. При использовании такого варианта есть то же существенное достоинство, что и в предыдущем случае: не нужно трогать MBR. Недостаток в том, что метод работает лишь с основными разделами (но не с логическими) и лишь с теми файловыми системами, которые не касаются загрузочного сектора вашего раздела. Поскольку эти ограничения существуют, мы этот вариант далее рассматривать не будем.

Создание резервной копии MBR



Если при установке GRUB с MBR что-то пойдет не так, в самом тяжелом случае вы не сможете запустить ни Windows, ни Linux. Тогда придется прибегнуть к «живой» системе Linux, например Knoppix, или использовать установочный CD/DVD для Windows, чтобы исправить загрузочный сектор. «Ремонт» будет наименее проблематичен, если у вас будет резервная копия MBR. Для этого нужно выполнить одну из следующих команд (в зависимости от того, под каким именем устройства запрашивается первый жесткий диск вашего компьютера):

root# dd if=/dev/sda of=/boot/bootsektor.scsi bs=1 count=446

Для того чтобы восстановить загрузочный сектор, выполните следующую команду:

root# dd if=/boot/bootsektor.scsi of=/dev/sda bs=1 count=446

Вышеуказанные команды считывают или изменяют только 446 байт MBR. Причина в том, что в MBR содержится и таблица разбиения основных разделов. Если вы изменяете всю MBR(to есть 512 байт), то в межоперационное время могут быть потеряны изменения, внесенные в таблицу разбиения разделов. Тогда компьютер, конечно, загрузится, но если вам немного не повезет, вы потеряете целые разделы с данными! Строение MBR подробно описано здесь: de.wikipedia.org/ wiki/Master_Boot_Record.

Установка в МВКжесткого диска



В дальнейшем предполагается, что вы уже создали конфигурационный файл GRUB /boot/grub/menu.lst. Тогда в /boot/grub должны находиться файлы (stage1, stage2 а также *_stagel_5). Если их нет, скопируйте туда файлы GRUB. Точный путь может отличаться от дистрибутива к дистрибутиву. Например, файлы GRUB в Red Hat или Fedora находятся в каталоге /usr/share/grub/i386-redhat. При необходимости просмотрите список файлов пакета GRUB:

root# cp /usr/lib/<a class="myClass" href="http://www.modx.cc/linux/grub/">grub</a>/* /boot/<a class="myClass" href="http://www.modx.cc/linux/grub/">grub</a>


Затем запустите GRUB и выполните в нем следующую команду setup. Вместо (hdl,12) нужно указать имя устройства GRUB того раздела вашего жесткого диска, в котором находится каталог /boot. Обратите внимание — часто каталог /boot находится в собственном разделе, а не в системном! Переменная (hdO) обозначает место, куда должен быть установлен GRUB, то есть загрузочный сектор первого жесткого диска.

<code>root# <a class="myClass" href="http://www.modx.cc/linux/grub/">grub</a>

grub> root (hd1,12)

grub> setup (hd0)

grub> quit</code>


grub.conf.

В SUSE при установке дистрибутива создается файл /etc/grub.conf. В нем содержатся команды, касающиеся установки GRUB. Установку можно по-вторитьспомощьюкомандыgrub < /etc/grub.conf.

В актуальных версиях Fedora и Red Hat также существует файл /etc/grub.conf, но в данном случае он представляет собой ссылку на /boot/grub/grub.conf. В этих дистрибутивах menu.lst — это тоже ссылка на grub.conf.

Установка в загрузочный сектор жесткого диска



GRUB можно установить не в MBR, а в загрузочный сектор любого жесткого диска. Правда, обычно такая установка оказывается неэффективной, поскольку этот загрузочный сектор при запуске системы не учитывается. Однако в трех случаях подобная установка все же может быть полезна.

Если GRUB запускается опосредованно, через загрузчик Windows.
Если GRUB запускается опосредованно, через загрузчик Linux (например, GRUB), который уже находится в MBR, а вы не хотите его трогать. Этот вариант возможен прежде всего в тех случаях, когда вы намереваетесь параллельно использовать несколько экземпляров Linux.
GRUB устанавливается в загрузочный сектор основного раздела, и вы помечаете этот раздел как «активный» с помощью команды fdisk (клавиша А, команда toggle a bootable flag). В таком случае программа, находящаяся в MBR, учитывает загрузочный сектор активного раздела. Данный метод не работает для логических разделов, а также в тех случаях, когда в MBR уже установлен GRUB или другой загрузчик.

Обычно для такой установки применяется системный раздел Linux. Иначе говоря, если вы установили Linux в раздел /dev/sda7 и хотите установить GRUB в загрузочный сектор этого же раздела, выполните приведенные ниже команды. Единственное отличие по сравнению с установкой в MBR состоит в том, что в setup вы указываете не (hdO), а нужный раздел.

<code>root# grub grub> root (hd1,12)

grub> setup (hd0,6) (Установка в загрузочный сектор /dev/sda7) grub> quit</code>


ВНИМАНИЕ


В некоторых файловых системах загрузочный сектор раздела нельзя использовать с помощью загрузчика или других программ. К таким системам относится XFS. Если установить GRUB в загрузочный сектор раздела XFS, то файловая система будет разрушена! По этой причине в таких системах установка в загрузочный сектор не применяется.

Установка на USB-носитель



В BIOS современных компьютеров обычно предусмотрена возможность загружать систему с USB-носителя. В принципе вполне можно установить GRUB

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

Материнская плата должна правильно распознавать USB-носитель уже при загрузке и работать с ним как со средством загрузки. Обратите внимание и на то, что флешку можно отформатировать двумя способами: как «супердискету» (superfloppy) или как жесткий диск. Какой вариант будет использоваться, зависит от BIOS.

Учитывайте также, что необходимо активизировать поддержку USB в BIOS (обычно для этого предназначается специальный параметр BIOS). В отличие от Linux, GRUB может обращаться к USB-носителям только через BIOS!Если BIOS опознает USB-носитель как загрузочный диск, то при этом (как минимум в некоторых версиях BIOS) изменится порядок, в котором GRUB будет «видеть» носители с данными. Теперь первым диском (hdO) будет считаться USB-носитель, встроенные жесткие диски будут запрашиваться через (hdl), (hd2) и т. д. При необходимости соответствующим образом измените /boot/ grub/devices.map перед установкой GRUB.

Оптимальная стратегия — сначала попробовать установить GRUB на флешке. Когда Linux запущена, GRUB опознает флешку под названием (hdn+1), где n — это последний внутренний жесткий диск. Если ваша система Linux, как в предыдущих примерах, находится в разделе /dev/sdb13 и в компьютере имеется два внутренних диска, флешка будет называться (hd2). Для того чтобы установить GRUB в MBR флешки, используйте следующие команды:

<code>root# grub grub> root (hd1,12)

grub> setup (hd2) (Установка в MBR USB-носитоля) grub> quit
</code>

В идеальном случае после перезапуска компьютер обнаружит GRUB в MBR на флешке и, как и предполагалось, загрузит операционные системы, указанные в menu.l st. Если при запуске операционных систем возникнут сложности, перейдите из меню GRUB в интерактивный режим, нажав клавишу С, а затем, воспользовавшись командой cat и клавишей табуляции, узнайте, под какими названиями GRUB «видит» жесткие диски. Нажатие Esc выводит вас обратно в меню, где с помощью клавиши Е можно изменить команды загрузки и испробовать их еще раз.

Установка Linux на жестких дисках, подключаемых через USB. До сих пор предполагалось, что USB-флешка будет использоваться только для запуска загрузки. Но ситуация осложняется, если и сама Linux находится на большой флешке или на внешнем жестком диске, подключаемом через USB. В большинстве дистрибутивов можно без труда установить USB-носитель, но при запуске могут возникнуть проблемы. Вам придется преодолеть три основных препятствия. GRUB — как было указано выше, уже при установке GRUB на USB-носитель могут возникать проблемы. Вы можете попробовать, получается ли такая установка. При необходимости поэкспериментируйте с настройками BIOS и обозначениями приводов и попробуйте настроить эти свойства в файле menu.lst вручную.

USB-модули для ядра — ядро уже в момент запуска должно быть «в состоянии» обратиться к USB-носителю. Чтобы это получилось, в файле Initrd должны храниться все необходимые USB-модули. Базовые сведения о том, как построены файлы Initrd и как они создаются, сообщаются в следующем разделе.

Названия устройств — в зависимости от того, как загружается компьютер — с подключенными внешними жесткими дисками (USB) или без них, — названия устройств жестких дисков могут изменяться (/dev/sda на /dev/sdb). Поэтому целесообразно использовать в файле /etc/fstab и при задании корневых параметров в строке kernel в menu.lst не названия устройств, аномера UUID. Если вы работаете с Ubuntu, то в menu.lst с помощью uuid также можно выбрать тот раздел, в котором будут находиться ядро и файл Initrd.

При работе с современными материнскими платами, как правило, можно без проблем использовать Linux, установленную прямо на USB-носителе. Однако, чтобы все заработало, порой приходится потрудиться и потратить время. Если вы только начинаете работать с Linux, не рекомендую использовать этот вариант.
Читайте так же:
Внутренняя организация GRUB

Подпишитесь на рассылку! Никакого спама, только обновления!!!

Комментарии (0)


    Услуги по MODX Revolution

    Посмотреть все услуги

    Техническая оптимизация сайта

    Подробнее & Заказать

    Создание сайта на MODX Revolution

    Подробнее & Заказать

    Перенос сайта на MODX Revolution

    Подробнее & Заказать

    Продвижение сайта на MODX

    Подробнее & Заказать