sonyps4.ru

Универсальный загрузчик ос. Загрузчик операционных систем GRUB

Назначение, описание, установка и настройка известного загрузчика GRUB http://www.сайт/linux/zagruzchik-grub http://www.сайт/@@site-logo/logo.png

Назначение, описание, установка и настройка известного загрузчика GRUB

Что такое загрузчик?

Загрузчик операционной системы – это программа, расположенная в первых секторах жесткого диска (далее просто загрузчик), например в MBR (главная загрузочная запись) жесткого диска. После теста системы, в момент загрузки, BIOS (базовая система ввода-вывода) передает управление MBR, если система настроена для загрузки из неё. Затем программа, расположенная в MBR начинает выполняться. Эта программа называется загрузчиком, её задача - передать управление ядру операционной системы, которое продолжит загрузку.

Существуют несколько загрузчиков, включая загрузчик операционных систем GRUB (универсальный загрузчик), Boot manager, LILO (загрузчик ОС Linux), NTLDR (загрузчик Windows NT систем) и другие. Я решил описать GNU GRUB и как его использовать.

Что такое загрузчик операционных систем GRUB ?

Загрузчик операционных систем GRUB – это очень мощный загрузчик, который может загружать разнообразные операционные системы, такие как Windows, DOS, Linux, GNU Hurd, *BSD и другие. В данное время LILO является самым популярным загрузчиком, используемым почти всеми c мультизагрузочными системами. Но если Вы используете LILO, то не должны забывать перезапускать LILO каждый раз, когда вы меняете конфигурацию или инсталлируете новое ядро. Также LILO не такой гибкий как GRUB. это второе имя гибкости. Его последняя версия– 0.5.96.1. Эта версия поддерживает такие файловые системы, как ext2 (используемая ОС Linux), FAT16 и FAT32 (используемые Win9x и WinME), FFS (быстрая файловая система, используемая *BSD UNIX), ReiserFS (журналируемая файловая система, разработанная для ОС Linux и интегрированная в ядро Linux 2.4.1) и minix (старая файловая система, разработанная для ОС MINIX, используемая также в ранних версиях ОС Linux). С GRUB Вы можете “видеть” содержимое файловой системы без загрузки операционной системы. Например, если Вы хотите посмотреть дату и время, записанные в файле, но не имеете времени для загрузки операционной системы, то можете использовать командную строку GRUB (“grub>”) и написать:

grub> cat (partition number)/home/god/filename.txt

Вы получите полное содержимое файла, включая дату и время.

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

Сейчас я объясню три главных шага для использования GRUB: компиляция, инсталляция и конфигурация.

Шаг 1 : Компиляция и инсталляция программного пакета загрузчика GRUB

Загрузите исходные тексты

GRUB с ftp://alpha.gnu.org/pub/gnu/grub

Распакуйте архив командой

“tar -xvzf filename.tar.gz”. В моем случае имя файла было grub-0.5.96.1.tar.gz и я сделал:

# tar -xvzf grub-0.5.96.1.tar.gz

Эта команда извлекла из архива файлы и папки в папку с именем

“grub-0.5.96.1”. Теперь делайте следующее:

# ./configure

Если Вы хотите изменить некоторые настройки компиляции

Например, добавить или удалить поддержку индивидуальных файловых систем, сетевых карточек, наберите:

# ./configure --help

Эта команда выведет на экран все возможные опции

Теперь используйте –enable и -disable префиксы для добавления или удаления поддержки некоторых устройств и т.п. ПРИМЕЧАНИЕ: GRUB поддерживает сетевую загрузку.)

Для начала процесса компиляции, наберите:

# make

Для инсталляции всех файлов наберите:

# make install

Вы установили программный пакет GRUB, теперь можно приступать к установке загрузчика GRUB в загрузочный сектор.

Хорошей идеей является хранить все файлы загрузчика, относящиеся к загрузке в директории /boot/grub. Для того, чтобы сделать это, следуйте следующему примеру: По умолчанию все файлы загрузчика проинсталлированы в /use/share/i386-pc или в /use/local/share/grub/i386-pc в зависимости от того, как определены переменные среды. Создайте каталог /boot/grub. Затем скопируйте следующие файлы в папку:

Я опишу эти файлы позже. Также скопируйте программу GRUB (которая может находиться в каталоге /usr/sbin или в /use/local/sbin) в папку /boot/grub.

Перед тем, как инсталлировать GRUB, Вы должны знать о том, как GRUB воспринимает жесткий диск и информацию о разделах. Прежде всего, отсчет начинается с 0, а не с 1. В Linux первый жесткий диск, прикрепленный к основному контроллеру, называется “hda”, а в GRUB он называется “hd0”. Подобно этому, дисковод в GRUB называется “fd0”. Итак, первый, второй и третий раздел на первом жестком диске (hda1, hda2, hda3) называются “hd0,0”, “hd0,1” и “hd0,2” в GRUB. ПРИМЕЧАНИЕ: запятая – это неотъемлемая часть названия раздела жесткого диска в GRUB.

Для описания двух полей (диск и номер диска, номер раздела диска) используйте круглые скобки. Например: (hd0,0) (hd0,1) (hd0,2) и так далее. (hd0,0) – это первый раздел первого диска. Подобным образом, (hd1,5) – это шестой раздел второго диска, а (hd2,0) – первый раздел третьего диска.

Шаг 2 : Инсталляция загрузчика операционных систем GRUB

Инсталляцию непосредственно загрузчика можно разделить на три этапа

: Инсталляция "stage1" в MBR. Настройка адреса или расположения, "stage2". Настройка меню загрузки или набора опций для выбора операционной системы для загрузки.

Начните инсталляцию со следующих команд:

# ./grub

Эта команда опрашивает устройства и выводит сообщения. Это может занять много времени.

end_request: I/O error, dev 02:00 (floppy), sector 0

GRUB version 0.5.96.1 (640K lower / 3072K upper memory)

ПРИМЕЧАНИЕ: GRUB имеет минимальную оболочку, похожую на bash. Для первого слова TAB выводит все возможные завершения команды. В других случаях TAB выводит возможные завершения названий устройств, имен файлов. Вы можете быть удивлены этой возможностью. Нечто вроде этого может произойти:

grub> install (hd0,4)/boot/grub/stage1 (hd0) (hd0,4)/boot/grub/stage2 p (hd0,4)/boot/grub/menu.conf

Теперь давайте рассмотрим эту команду более детально:

встроенная команда, заставляющая GRUB проинсталлировать (hd0,4)/boot/grub/grub/stage1 to (hd0), MBR.

(hd0,4)/boot/grub/stage2

указывает, где расположен stage2 образ. со следующими опциями: (hd0,4)/boot/grub/menu.conf

устанавливает конфигурационный файл для отображения нужного меню. Позже я объясню структуру конфигурационного файла.

Мы можем суммировать команды:

Теперь у Вас есть элементарная инсталляция.

Инсталляция на дискету:

Для инсталляции GRUB на дискету Вы должны знать команду “dd” и как она работает. Для загрузочной GRUB дискеты Вы должны записать stage1 и stage2 файлы на первые секторы дискеты.

Инсталляция stage1 на дискету

Вставьте форматированную дискету и наберите:

# dd if=stage1 of=/dev/fd0 bs=512 count=1

Опять рассмотрим команду детальнее:

в нашем случае stage1

например, дисковод (может быть отличным от приведенного в примере устройства на вашем компьютере)

bs=bytes to read and write

В нашем случае

count=how many times to perform this operation

количество копий.

Инсталляция stage2 на дискету

[root@heaven /boot/grub ]# dd if=stage2 of=/dev/fd0 bs=512 seek=1

Здесь все, так же как и для stage1, за исключением нового параметра, называемого seek. Этот параметр заставляет пропустить одно "bs" значение. Например, в выше описанной команде bs – это 512 байт, тогда seek=1 будет означать пропуск первых 512 байт на дискете и продолжение записи с 513-го байта. Это сохранит результат первой команды, записанные данные не будут повреждены переписыванием.

Теперь у Вас есть простейшая инсталляция GRUB загрузчика на дискете.

Шаг 3 : Конфигурация загрузчика операционых систем GRUB

В этой секции мы рассмотрим, как загружать разные операционные системы и составить menu.conf - конфигурационный файл меню.

Давайте начнем с процедуры загрузки, поддерживаемой GRUB. Загрузка может быть выполнена двумя путями:

1) Передача управления ядру ОC

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

У меня ядро Linux находится в каталоге /boot под названием bzImage, а корневая файловая система - /dev/hda5 или (hd0,4) в GRUB. Следовательно, моя процедура загрузки выглядит следующим образом: [ Указывает корневой раздел]

2. kernel /boot/bzImage root=/dev/hda5 Указывает ядро]

[ Указывает ядро]

3. boot Начинает загрузку Linux]

[ Начинает загрузку Linux]

Загрузочная процедура по второму методу подразумевает наличие другого загрузчика, например LILO или NTLDR, установленного в один из разделов жесткого диска: Указать корневой раздел, но не монтировать его. Активировать раздел 3.

Указать первый сектор устройства, которому будет передано управление. Перезагрузить компьютер и испробовать это.

Приведу пример с ОС Windows, проинсталлированной в /dev/hda1 или (hd0,0). процедура загрузки Windows следующая: [+1 указывает первый сектор текущего основного раздела]

4. boot передает контроль]

[ передает контроль]

файл используется для загрузки различных операционных систем и конфигурации меню. Составить menu.conf файл не сложно. Как Вы увидите в этом разделе, в нем используется текст на английском языке.

Все записи меню начитаются с "title TITLENAME" без запятых. Вы можете присвоить TITLENAME что угодно.

Для создания меню загрузки Linux: Установите title. Установите корневой раздел. Установите ядро и параметры. Загрузитесь.

Для создания работающего меню:

title Debian GNU/Linux 2.2 kernel 2.4.1

kernel /boot/bzImage.2.4.1

(Символ (#) в начале строки обозначает комментарий.)

Чтобы создать меню для

Windows или DOS:

rootnoverify (hd0,0)

А что если Вы хотите установить на ваш компьютер два экземпляра операционной системы Windows, одну лично для себя, другую для своей семьи, а Windows при установке сообщает, что уже один экземпляр ОС установлен?

Существует легкий путь инсталляции двух экземпляров ОС на Ваш компьютер путем скрытия одного из разделов жесткого диска в момент загрузки и использования другого. При этом Вы можете защитить раздел паролем, так что никто не сможет использовать его по ошибке. Ниже приведен пример, как создать несколько экземпляров ОС Windows, hda1 и hda2 или (hd0,0) и (hd0,1), используя команды lock, password, hide и unhide.

Для ОС Windows "My Entry":

rootnoverify (hd0,0)

Для эффективного использования команды lock Вы должны указать команду password в начале конфигурационного файла. Синтаксис команды password следующий: password secret ("secret" – это пароль). Вы можете ввести пароль в любое время с помощью нажатия клавиши p.

Для ОС Windows "Family Entry":

title Family Entry

rootnoverify (hd0,1)

Любой может загрузиться с этих разделов, если не требуется пароль.

Существует ещё один интересный трюк с использованием команды

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

/boot/grub/secret-list.conf

В этой команде "secret" – это пароль, а /boot/grub/secret-list.conf – это файл паролей. Перед тем, как делать это, Вы должны установить корневой раздел и полный путь. Например:

Ещё одной важной командой является команда "map", которую Вы можете использовать, когда у Вас есть два жестких диска и операционная система, которая не может загружаться со второго диска, например ОС Windows. Вы можете отобразить hd0 как hd1 и hd1 как hd0. Другими словами, можно виртуально переставлять жесткие диски. Пример:

grub> map (hd0) (hd1)

grub> map (hd1) (hd0)

Для загрузки ОС FreeBSD:

title FreeBSD 4.0

kernel /boot/loader

Здесь мы передаем управление загрузчику ОС FreeBSD. Вы видите, что корневой раздел (hd0,4,a) включает три аргумента, это потому, что FreeBSD виртуально делит существующий раздел жесткого диска. Мы передаем управление корневому подразделу раздела жесткого диска “a”. Если FreeBSD полностью занимает диск вашей системы, тогда корневой подраздел будет называться (hd0,a). Итак, мы передаем управление загрузчику FreeBSD, что намного лучше, чем передать управление непосредственно ядру этой ОС по ряду причин.

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

Различные команды GRUB:

xx – это метка для загрузки по умолчанию.

yy – это таймаут, после которого GRUB начнет загрузку по умолчанию.

zz – это метка для загрузки, которую GRUB станет загружать, если по истечении таймаута не удастся загрузить метку по умолчанию.

Используется для раскраски меню. Синтаксис следующий: color normal current_selection. Оба поля могут иметь два значения, такие как приоритетный и фоновый цвета. Например:

color green/black or light-gray/blue

Вы также можете использовать соответствующие номера.

ЗАПОМНИТЕ: все значения начинаются с 0, следовательно, 0 – первый элемент.

Операции с документом

  • Софт
  • Этот рассказ - частный случай того, через какие дебри знаний приходится пробираться при желании свободно работать с несколькими ОС на одном диске. Факты показывают, что порядка в этой дисциплине нет, и новые комплектующие привносят, вероятно свои новые проблемы в порядок установки операционных систем. Возможно, это даст энтузиастам, не имевшим такого опыта, общий взгляд на то, что установка ОС не всегда окажется простой и однозначной. Впрочем, драматизма в этом деле меньше, чем в случаях с телекомами, ОпСОСами, ПР и Сбербанком. Всё так или иначе, но решается.

    Здесь нет набора инструкций, как сделать установку - все они есть, уже написанные и разбросанные по форумам и блогам. По ключевым словам и ссылкам можно будет найти всё необходимое. Суть в том, что чётких инструкций нет. Есть основополагающие правила строения разделов на дисках компьютера, стандартизированные ещё в 90-х. В зависимости от новизны биоса и системы в известный порядок всегда внесутся свои проблемы, и важно уметь искать решения, примерно зная общее положение дел. С таким подходом и были даны ссылки, а главное - как же нечётко это всё настраивается!

    Случилось так, что на субноутбук Acer Aspire One 756 (Sandy Bridge Celeron 887), приобретённый изначально почти без ОС (установлена Linpus без иксов), были установлены операционные системы (в порядке установки):
    1) WinXP 32 bit - из сборки размером примерно 720 MБ;
    2) Win7 64 bit - из некоторой сборки размером около 2 ГБ;
    3) Xubuntu 13.04 64 bit - из свежего дистрибутива на 800 МБ;

    Работают не все загрузочные флешки

    Ноутбук - достаточно свежий по времени выхода на рынок (примерно апрель 2012), а сейчас (в 2013) появились в продаже и его более новые модификации на процессоре Ivy Bridge. Новизна решений и биоса, поддержка только новых ОС, скорее всего привели к сумме проблем, которых практически не наблюдается при работе с другими компьютерами и ноутбуками. Трудности установки систем через загрузочные флешки отмечается многими, у кого система не установилась сразу и пришлось искать варианты. Пример данного ноутбука - яркий случай подобных проблем, скорее всего, связанных с особенностями биосов некоторых моделей.

    Все системы загружались из загрузочных флешек, и в этом была некоторая проблема, потому что не все из них могли установиться. Сначала много флешек при установке вызывали зависание ноутбука, как только нажималась какая-либо клавиша клавиатуры. Поэтому первой системой установилась та (Win XP), которая почему-то смогла загрузиться с флешки (видимой как USB-CDROM в отличие от USB-FDD и USB-HDD на других флешах). Наверное, всё бы работало с настоящего USB-CDROM, но покупать его ради установки системы - как-то нелогично, если для этого есть флешки.

    У ноутбука, как у каждого устройства, есть свои особенности. Например, видимая в WinXP память была всего 2.6 ГБ, а не 3.25 (видеопамять занимает только 128 ГБ ОЗУ, поэтому почему система не видит 3.1 ГБ - загадка). Вообще, для этой модели ноутбука Acer не выпустила драйверов для Win XP и для Linux - только Win7 и Win8. Драйверы собирались по частям по мере обновлений для устройств, входящих в компьютер. Подбор драйверов занял не менее 3 дней. В результате, в WinXP драйверы кое-что не умели:
    1) не чувствовали разрада батареи - никогда. Поэтому компьютер был слеп к разраяду.
    2) пропадал звук при выходе из гибернации. Поэтому приходилось перезагружать для появления звука (возможно, подбор и обновление драйверов системы и звука исправил бы ситуацию).
    3) упомянутая видимая память 2.6 ГБ.
    Остальное работало: Bluetooth, хорошо работающий тачпад с массой настроек и без сбоев, WiFi, вебкамера и микрофон, звук, SD-ридер.

    Изначально на ноутбуке была система Linpus без графической оболочки. Диск был разделён надвое и в старшую часть установлена WinXP. Установлена система временно, потому что объём доступной памяти для 32-разрядной ОС изначально был недостаточен для всех целей применения.

    Устанавливаются не все сборки Win7/Win8

    С этим букетом долго протянуть было нельзя, поэтому при первой возможности на вторую половину диска поставлена Win7 как система, поддержанная производителем. Попыток установки было несколько - Сначала Win8 - под конец установки бодрое сообщение, что система не может быть установлена и следует переустановить. И так - раза 4 подряд. C другой сборкой другого автора - тоже (сборка - тоже урезанная, 1.9 GB). Но уже хорошо то, что найдена флеш и способ формирования загрузочной записи (через Ultra-ISO), который не вешает компьютер в самом начале. Правда, и те, которые вешали, тоже формировались через Ultra-ISO. Разница была в носителях и их чипсетах и, возможно, в выборе типа копирования (USB-HDD с плюсом или без).

    Ладно, с имеющейся сборкой Win8 (Optim, 1.7 ГБ) не получилось. Пробуем Win 7 x86 Optim того же автора-сборщика. Интересно, что симптомы те же - отбой в конце загрузки и просьба переустановить. Ладно, для данного «железа» не сохранилось в дистрибутиве что-то важное. Берём другую сборку - тот же Optim, но x86+x64 (а надо было установить в конце концов x64) - 1.9 Гб. На этот раз почему-то удалось установить. Итого, из нескольких компактных сборок сработала одна, но зато не надо было искать и освобождать большую флеш для установки. Для флеша будет важно, что в сборке имеется режим восстановления системы - поможет для восстановления MBR.

    После установки 80% драйверов работали, но хорошо работали меньше половины - видео распозналось как стандартный монитор, хотя могло работать с номинальным разрешением и небольшой скоростью. Наибольшие проблемы вызвал WiFi Atheros - подошёл только самый новый драйвер версии 10 для Win7 x64. Практически все драйверы пришлось загрузить из сети и установить, пользуясь как сайтом официальной поддержки, так и некоторыми другими. В списке драйверов приходилось вычитывать, какие из них работают под Win7x64. Иногда информация была ошибочной, и поиски драйвера продолжались. Так, часов за 7 удалось собрать и установить все драйверы для этой ОС. Тачпад продолжал и в этой системе работать очень хорошо, что, как известно для тачпадов - редкость (из-за драйверов и их поддержки). Всё в системе стало работать абсолютно корректно. Нормально читается память размером 6 ГБ (планки 2+4, апгрейжена одна планка). Хотя тоже как-то странно много её забирается системой - порядка 1 ГБ, не считая программ, видимых в диспетчере задач. Возможно, так и надо, а возможно, есть скрытые траты сверх видеопамяти, как это наблюдалось в WinXP. Но там это было сильно критично, а в x64 - не очень. Память можно расширить и до 8, и до 12 ГБ, и до 16.

    Но теперь, кроме Win7, которая стала видеть оба раздела диска, нужно установить на оставшиеся свободные 26 ГБ Линукс (Ubuntu). Необходимо для специфических задач разработки, несмотря на то, что, скорее всего, будут некоторые проблемы с драйверами после идеальной работы Win7.

    Аппаратная мощность этого компьютера невелика - стоит 2-ядерный Celeron, показывающий в тестах производительность примерно в 60% от мощности средних нормальных ноутбуков. Он - субноутбук, поэтому за компактность и вес приходится платить. Догнать производительность можно будет за счёт SSD, который для этого субноубука требуется низкий - 7 мм. Поэтому установки систем носят предварительный характер, и их, возможно, придётся повторить на SSD.

    Xubuntu 12 с флеш не ставилась, но Xubuntu.13 - без проблем

    Как раз в день установки линукса вышла Ubuntu 13.04 , которая была выбрана в поставке Xubuntu (800МБ). В отличие от прежней попытки создания загрузочной флешки на предыдущей Xubunu 12, она запускалась и устанавливалась на ноутбуке, а прежняя - запускалась на стационарном компьютере без проблем, но висла при первом же нажатии на клавиатуру в этом ноутбуке. Вероятно - это проблемы поддержки нового «железа». В новой версии появвился формат EFI в дистрибутиве, и именно он смог работать на ноутбуке, а видимый в том же меню загрузки USB-HDD, как обычно, не смог (да, одна флеш в меню выбора устройства загрузки виделась в 2 вариантах, в 2 строчках, и это наблюдалось в 13-й Xubuntu и не наблюдалось в 12-й).

    Что имеем с Xubuntu:
    1) регулятор яркости экрана - отображается, но яркость не регулируется.
    2) с подхватом WiFi, питания, звука и BlueTooth - порядок. SD-ридер - тоже автоматически монтируется.
    3) управление настройками системы Xfce намного беднее, чем в Гноме 3 в стандартной поставке. Придётся что-то доустанавливать для удобств, но это уже детали системы.

    Доступ к 3 системам ОС

    Зато появился вопрос, как теперь сделать доступными все 3 сисемы из меню загрузки. 2 системы научились грузиться с помощью программы-загрузчика ЕasyBCD довольно легко. После установки Win 7 она одна появлялась поначалу при загрузке системы, без альтернатив. Её загрузчик просто затёр MBR (Master Boot Record) WindowsXP. В ЕasyBCD есть механизмы восстановления MBR для ряда популярных систем. Несколько кликов мышью и несколько пробных перезагрузок - и принцип формирования меню в этой программе понятен, хотя нельзя сказать, что интерфейс прост. Он несколько запутан тем, что программа умеет много, и эти продвинутые возможности (написать собственный загрузчик на базе Grub4dos) надо отразить.

    Но после доустановки на 2-й раздел новой системы Linux этот загрузчик не смог так же подхватитьпросто свежесозданную систему. Вероятно, дело было в том, что процесс установки предполагал создание MBR для линукса с дальнейшей доустановкой после перезагрузки, а в условиях 3 разделов и 3 систем получилось, что я потребовал наличие загрузчика сразу, да ещё встроенного в ЕasyBCD. Прямой переход на Линукс-раздел показывал, что там загрузчика нет. Решение нашлось с другой, неожиданной строны. Я просто стал искать способы восстановления Ubuntu. Попалась программа Boot-Repair для восстановления загрузки Ubuntu из Ubuntu Live CD - она и пригодилась, чтобы стереть неработающий (почему-то) Grub2 установленного Линукса и поставить сверху всех загрузчиков новый Grub.

    Теперь стало 2 загрузчика на диске, что, конечно, излишне. Но уже хорошо, что все 3 системы работают. Теперь, повторив попытку установки Линукса в загрузчик ЕasyBCD через Grub2, получаем успешную загрузку этого загрузчика. Сохранив ЕasyBCD в MBR, получаем искомое меню из 3 систем. С 3 системами уже можно независимо работать, видеть все их файлы и развивать, устанавливая программы.

    Итоги

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

    Почему нет желания разобраться и сделать полные инструкции, полноценные загрузчики? Есть подозрение, что бороться приходится с отдельными проявлениями сырости биосов, которые встречаются тем чаще, чем дешевле модели ноутбуков. Для хорошей установки надо построить свой загрузчик на базе Grub4dos (а это - десятки команд) и заодно разобраться, как построить конфигурацию Grub2 для линукса - т.е. стать специалистом по загрузчикам, изучить 1-2 маленьких специализированных языка. Несомненно, для этого дела есть энтузиасты, которые прошли и скажут, что это просто и интересно. Но, к сожалению, отнимает много времени, когда задачи использования систем ставят свои, совершенно другие задачи, а ресурс времени и энтузиазма ограничен. Проще взять и попробовать несколько известных вариантов установок и остановиться на работающем.

    Это - совершенно обычные будни пользователя, который решил работать с несколькими системами сразу. На специализированных форумах по системам (OsZone, Ru-Board, ...) проблемам и решениям в установке систем уделены десятки страниц. Новое «железо», к сожалению, тоже привносит сложности в этот процесс. То, что вчера работало на десктопах, почему-то перестаёт работать (биос, новые решения, новые ОС) на некоторых ноутбуках. Некоторые старые разработки (

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

    Пожалуй, мы рассмотрим парочку наиболее популярных связок ОС. Сразу замечу, что я приведу лишь общее описание установки, не вникая в её рутинные подробности. Итак, поехали…

    Установка Windows Xp + Windows 7

    Для установки такой связки операционных систем нам понадобится специальный софт в лице EasyBCD. Если просто установить эти две операционные системы, то будет загружаться именно та, которую Вы поставили последней. Это происходит за счёт того, что Windows просто-напросто «затирает» загрузчики всех операционных систем, которые мирно «жили» до неё и оставляет лишь один для «себя любимой». Поэтому для начала мы качаем программку Easy BCD (скачать ) и оставляем инсталлятор на каком-нибудь нейтральном файловом диске, или же её можно скачать после установки одной из версий Windows. Итак, приступаем к установке первой версии Windows (7 или ХP, неважно в какой последовательности). Когда первая версия Windows установлена, смело ставим вторую. Но, устанавливать ее, желательно на отдельный раздел. После установки второй ОС Windows , мы загружаемся и устанавливаем в систему ранее скачанную программку EasyBCD.

    Интерфейс программы достаточно прост и понятен. Человек, который знает азы английского языка, может с лёгкостью разобраться с данной программой.

    Когда Вы запустите программу EasyBCD, то увидите перед собой вот такое вот окно (рис.1):


    Рис.1


    Как Вы видите у нас имеется загрузчик Windows 7 , который определился по умолчанию, так как эта система была установлена второй и является текущей. Теперь нам необходимо добавить новую запись в загрузчик для того, чтобы во время включения копьютера, мы смогли увидеть строку с Windows XP и соответственно смогли загрузиться из-под неё. Для этого нажимаем на панели слева «Add New Entry» , затем выбираем в пункте «Type» необходимую операционную систему (в данном случае это Windows XP), и жмём, уже справа, Add Entry .


    Рис.2


    Всё, запись в загрузчик добавлена, и когда Вы нажмёте на пункт View Settings , то увидите, что у Вас имеется уже две записи в загрузчике: Windows 7 и Windows XP. (рис.3)


    Рис.3


    Теперь можно смело перезагружать компьютер и загружаться из-под желаемой операционной системы.

    Альтернатива при установке Linux + Windows (Xp, 7)

    Такая «связка» встречается довольно часто, так как оторваться от «форточек» и ощутить вкус уверенного в себе «пингвина», желают многие. При таком варианте установки можно обойтись и без стороннего программного обеспечения, а воспользоваться стандартными средствами именно Linux. Для этого мы сначала устанавливаем Windows, старым добрым дедовским способом и без всяких хитромудростей. Затем, подходит чёред Linux, его мы устанавливаем вторым, опять же по причине удаления Windows всех «инородных» загрузчиков. Сразу хочу отметить тот факт, что в процессе установки Linux, перед Вами появится предложение «использовать весь диск», этого делать НЕ нужно, если Вам конечно дороги ваши данные. Необходимо же «откусить» отдельный раздел. После окончания установки Linux создаст загрузочное меню, где Вы сможете выбрать любую из операционных систем для загрузки. Но никто не лишает Вас права установки этих двух операционных систем с помощью EasyBCD.

    Установка Linux + Windows + Win 7 + Другие системы

    При таком варианте наиболее удобным методом будет являться, опять же EasyBCD. Только в данном случае нам необходимо создать запись в Add New Entry, для каждой из операционных систем, по примеру создания записи для Windows XP. На различных вкладках программы Вы можете перейти к созданию записей загрузчика, для Linux и Mac Os. (рис.4). Также при желании можно добавить и более старые операционные системы Windows: 95,98,NT и т.д.


    Рис.4

    Не один десяток новых пользователей отличных от Windows, с изрядной долей сомнения и скептицизма встречают фразу «начальный загрузчик» в наши дни. И тому есть абсолютно логичная причина: большинство новичков до своего перехода к использованию других, менее распространённых на рынке операционок, в повседневной жизни использовали ту же самую Windows. В ней этот загрузчик реализован максимально примитивно и прозрачно. И хоть это в некоторой степени прибавляет удобства для рядового пользователя, однако вместе с тем и урезает функциональные возможности уже и без того наиболее популярной и универсальной ОС. Поэтому всем тем, кто решил обратить внимание на иные продукты IT-индустрии, непременно следует ознакомиться с универсальным загрузчиком GRUB, что в дальнейшем ощутимо поможет в работе сразу с несколькими ОС, установленных на одном компьютере.

    Универсальный инструмент для не универсальных систем

    Прежде всего начнём разбираться с наименования GNU GRUB. Эта аббревиатура с английского переводится как "главный унифицированный загрузчик". Его создателем является некоммерческая организация «Проект GNU», которая прославилась в IT-сфере своими свободно распространяемым программным обеспечением. Сам же GRUB по своей сути представляет меню выбора загрузки нужной пользователю ОС из целого перечня поддерживаемых систем:

    • Linux.
    • FreeBSD.
    • Solaris.

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

    Путь развития технологии

    Непрерывно растущая популярность GRUB была основополагающей причиной, побуждающей неуклонно развивать и совершенствовать загрузчик в дальнейшем. Самая первая версия загрузчика, именовавшаяся как GRUB Legacy, до сих пор отлично справляется с задачами унифицированного загрузчика для UNIX-подобных систем. Широкая поддержка серьёзных компаний (наподобие RedHat и Novell) и серверных дистрибутивов обеспечили ей ещё продолжительный срок существования в целом.

    Однако даже это обстоятельство совершенно никак не повлияло на дальнейшее совершенствование загрузчика, благодаря чему пользователи получили последнюю на данный момент времени версию GRUB 2. Будучи переписанным с чистой строки, GRUB 2 едва ли обладает хоть чем-то общим с устаревшим GRUB Legacy, кроме самого названия. Сегодня, будучи по умолчанию используемой с версии 9.10 операционной системе Ubuntu, GRUB второй ревизии благодаря своей более совершенной и мощной структуре полностью остановил какую-либо дальнейшую разработку уже и так отлично себя зарекомендовавшей в прошлом Legacy.

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

    • Скриптовая поддержка (циклов, условий, переменных и функций).
    • Графический интерфейс добавляет возможность гибких изменений внешнего вида загрузчика под индивидуальный вкус пользователя (GRUB 2 может быть легко изменён от чёрно-белой таблицы до стильного разноцветного окна).
    • Возможность динамичной подгрузки модулей. Это позволит расширять функционал не на сборочном этапе, а непосредственно во время выполнения.
    • Совместимость с разными архитектурами.
    • Добавлена поддержка загрузки Mac OS.
    • Добавлена стабильная работа с такими файловыми системами, как: FAT16 , FAT32 , NTFS , любая версия ext , XFS и ISO
    • Кроссплатформенный тип установки даст возможность инсталлировать GRUB2 с другой архитектуры
    • Введение безопасного режима в случае возникновения проблемных ситуаций.
    • Исправлены ошибки от старой GRUB Legacy, которые изначально не могли быть пофиксены из-за требований

    Все слышали о LILO?

    Разумеется, не единым лишь GRUB"ом ограничивается выбор пользователей среди загрузчиков ОС. Подобным аналогом является LILO - начальный загрузчик Linux (LInux LOader), который до сих пор не утрачивает полностью свою актуальность. Однако же в пользу GRUB следует учесть несколько отличительных особенностей, которыми прямой конкурент пока что похвастаться определённо не может:

    • LILO поддерживает лишь 16 конфигураций загрузки, когда GRUB имеет поддержку неограниченного числа таких конфигов.
    • GRUB может загружаться по локальной сети, чего не скажешь о LILO.
    • Наконец, у LILO нет того самого командного интерактивного интерфейса, к удобству которого уже давно привыкли пользователи последней версии GRUB.

    Единственной общей особенностью обоих загрузчиков является необходимость каждый раз компилировать все внесённые изменения в меню. Функция автоматического сохранения издавна отсутствовала в фирменном загрузчике Linux. GRUB 2 также не может похвастаться столь удобной фичей. Но даже учитывая этот неудобный для повседневного использования нюанс, LILO по нескольким пунктам проигрывает своему конкуренту, благодаря чему тот получает все более широкое распространение среди домашних компьютеров пользователей.

    Установка GRUB: все нюансы и подробности процесса

    С самого начала убедитесь, что у вас имеется либо установленная Ubuntu, либо имеется её загрузочный диск (LiveCD). Запустив систему, необходимо вызвать терминал сочетанием клавиш Ctrl+Alt+F2, после чего прописать в нём следующие команды:

    Sudo add-apt-repository ppa:cjwatson/grub,

    Sudo add-get update && sudo add-get install grub2,

    Sudo update-grub2.

    И даже если у вас не установлена Ubuntu, но имеется LiveCD, то процедура остаётся одна и та же с одной лишь крохотной разницей. Загрузившись именно с этого выберите опцию "Попробовать Ubuntu" - так вы запустите систему без каких-либо изменений на своём компьютере. После этого продолжайте устанавливать загрузчик GRUB по той же схеме с этапа вызова терминала.

    Проверить установленную версию загрузчика можно командой grub-install -v , а также непосредственно при самой загрузке Ubuntu.

    Алгоритм запуска GRUB

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

    • код основного загрузчика (446 байт);
    • таблицу разделов с описанием как основных, так и вторичных разделов жёсткого диска (64 байта).

    Из-за малого объёма сектора MBR, запуск GRUB укладывается в два условных этапа:

    1. В MBR размещается ссылка к конфигурационному файлу (который может находиться в любом жёстком диске, на усмотрение самого пользователя). Именно по ней и будет определяться весь загрузочный этап, начинающийся на втором этапе.
    2. Их конфигурационного файла учитываются все настройки и данные, необходимые для работы GRUB. Если же на втором этапе конфигурационный файл не был найден, то процесс загрузки будет прекращён и пользователю уже придётся вручную выбирать загрузочную конфигурацию из командной строки.

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

    Наиболее часто используемые консольные команды

    Немалый простор рабочих возможностей в консольном режиме последней версии GNU GRUB, настройка и конфигурационные возможности также не оставят равнодушными пользователей. Для того чтобы попасть в него, достаточно нажать клавишу «С» во время отображения загрузочного меню, после чего останется лишь верно ввести нужные вам команды:

    Команды Описание Пример ввода в консоль
    ls Универсальная команда для работы со списками жёстких дисков и разделов. Может использоваться для вывода содержимого папки. ls /boot/grub
    Её использование даст полную информацию абсолютно о любом разделе. При этом будет указан тип файловой системы на нём, его метка, UUID, а также дата внесения последних изменений.
    cat Вывод информации о содержимом конкретно указанного файла. cat /путь/имя_файла
    linux Аналог kernel-команды GRUB из старой-доброй версии Legacy, позволяющей загружать указанное ядро Linux.

    linux файл_ядра

    опция1=значение

    опция2 опция3

    chainloader Передача контроля загрузки другому загрузчику по цепочке. Загрузчик будет искаться исключительно в разделе, который задан в качестве root (разумеется, с указанием конкретного исполнительного файла).

    chainloader /путь/ имя_файла

    root При использовании команды без каких-либо параметров пользователь получит информацию о root-разделе, а также о типе файловой системы на нём. root
    Реже (из-за вероятности некорректной работы) используется для переноса root на другой раздел.

    *,* - номер диска и номер раздела на нем соответственно

    set Чаще всего благодаря своей стабильности и работоспособности используется для переназначения root-раздела на диске.

    set root= (hd*,*)

    *,* - номер диска и номер раздела на нем соответственно

    search

    Команда поиска раздела UUID, метке или же по конкретно заданному файлу. Для задания поисковых параметров используются следующие ключи:

    • u (или --fs-uuid) - поиск раздела по UUID;
    • l (или --label) - поиск по метке раздела;
    • f (или --file) - поиск по определенному файлу;
    • n (или --no-floppy) - пропуск при проверке флоппи-дисковода;
    • s (или --set) - установить найденный раздел в качестве значения заданной переменной.

    Команда пригодится в случае, если нумерация дисков и разделов "полетит", из-за чего команда set root либо приведёт в никуда, либо в не тот раздел не того диска.

    search -u uuid_нужного_раздела

    search -l метка раздела

    search -f /путь/имя файла

    lsfonts Отображение перечня загруженных на настоящий момент шрифтов. lsfonts
    help Используется для вывода всего списка доступных help
    Либо для вывода команд, начинающихся на определённую комбинацию символов.

    help s - вывод справки на все команды, начинающиеся на s.

    help set - отображение справки о команде set.

    terminal_output.console Переключение на чёрно-белую цветовую гамму отображения. terminal_output.console
    background_image

    Изменение фонового изображения в реальном времени. Помогает лишь в подборе такого варианта оформления шрифтов, чтобы те были различимы на заданном фоне.

    Обратите внимание: команда не изменяет настроек оформления - изображение остаётся на фоне только лишь на текущем сеансе до следующего выключения.

    background_image /путь/имя_файла

    boot Загрузить компьютер. boot
    reboot Перезагрузить компьютер. reboot
    Выключить компьютер. halt

    Послеустановочный GRUB: настройка и полезный в работе софт

    Основным конфигурационным файлом в GRUB2, в отличие от предыдущей версии Legacy, является не /boot/grub/menu.lst , а уже /boot/grub/grub.cfg. Однако напрямую его редактировать бессмысленно - он будете генерироваться с каждым сохранённым изменением в файле настроек /etc/default/grub и в директории скриптов /etc/grub.d.

    В /etc/default/grub настройка в основном ограничена изменением стандартного пункта загрузки и/или времени показа меню:

    • За первый пункт изменений отвечает параметр GRUB_DEFAULT , значением которого обозначается номер пункта в меню загрузки. Выбирая какой-либо другой пункт, пользователь должен знать его очерёдность из общего списка (для этого нужно просмотреть содержимое /boot/grub/grub.cfg и найти по счёту нужную запись). При этом не стоит забывать правила нумерации: первому пункту присваивается значение 0, второму - 1, третьему - 2 и так далее.
    • За задержку отображения меню загрузки отвечает параметр GRUB_TIMEOUT , чьё присвоенное значение в кавычках обозначает количество секунд, в течение которых эта заставка появится. В редактировании этого параметра есть одна хитрая особенность: выставив значение "-1", заставка будет висеть ровно до тех пор, пока пользователь не выберет какой-либо пункт.

    Набор скриптов в /etc/grub.d находят на компьютере все установленные системы и ядра, формируя загрузочное меню в grub.cfg. За поиск ядер и других ОС соответственно отвечают два основных: 10_linux и 30_os-prober. Файл 40_custom позволяет изменить GRUB путём добавления собственных пунктов загрузки, что полезно для работы с особыми типами запуска системы (обратите внимание, что при любых изменениях он должен заканчиваться пустой строкой, иначе последний пункт загрузки из всех предложенных банально не будет отображён).

    Однако ещё более простой способ отредактировать GRUB в системе Ubuntu - утилита Grub-Customizer. Благодаря своей простоте и интуитивно понятному интерфейсу, это наилучший вариант для настройки загрузчика, более всего подходящий неопытным новичкам. Для установки запускаем терминал (Ctrl+Alt+T), затем поочерёдно вводим в нём следующие команды:

    Sudo add-apt-repository ppa:danielrichter2007/grub-customizer,

    Sudo add-get update,

    Sudo add-get install grub-customizer.

    И хоть перевод программы Grub-Customizer оставляет желать наилучшего исполнения, разобраться в ней очень легко:

    • List configuration - настройки меню при загрузке системы. Тут осуществляется изменение очерёдность его пунктов.
    • Основные настройки - выбор системы, загружаемой по умолчанию, а также определение времени ожидания.
    • Внешний вид - редактирование внешнего оформления загрузочного меню.

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

    • Super Grub Disk - простой и удобный инструмент для быстрого восстановления загрузчика. При этом умеет работать не только лишь с GRUB и LILO, но даже и с самой Windows. Запускается с CD, флешки или же дискеты.
    • GParted - редактор разделов дисковых разделов, запускающийся непосредственно с CD. С её помощью можно проводить такие операции с разделами и файловыми системами на них, как: создание, удаление, изменение размера, проверка, перемещение и копирование.
    • SystemRescueCD - дистрибутив Linux, специальным образом предназначенный для аварийного восстановления.
    • TestDisk - утилита, позволяющая диагностировать и восстанавливать как отдельные разделы, так и загрузочные диски целиком.

    Как загрузчик управится с ОС Windows?

    Напрямую, к сожалению, GRUB никоим образом не может загружать Windows x86 (64-битная версия также не исключение), из-за чего приходится создавать соответствующий цепной механизм запуска. Для этого в конфигурационном файле grub.cfg необходимо добавить несколько строк определённых команд:

    Title Windows,

    Rootnoverify (hd*,*),

    Chainloader +1,

    Пример и подробное описание последней как раз было приведено в таблице консольных команд. Теперь же настал тот самый практичный случай, когда она пригодится в работе. Однако до неё имеется ещё пара не менее важных для загрузки Windows строк:

    • rootnoverify (hd*,*) - тот же самый аналог set root . Она информирует GRUB о местоположении раздела, на котором находится следующая часть загрузочного кода, однако не монтирует его (по той ясной причине, что для GRUB это сделать невозможно). Обратите в очередной раз внимание, что часть (hd*,*) - это номер диска и номер раздела соответственно, на котором установлена ОС Windows.
    • makeactive - команда предоставляет указанному корневому разделу статус загрузочного.

    Теперь та самая команда chainloader +1, которое передаёт весь дальнейший контроль загрузки непосредственно загрузчику Windows.

    Наконец, заключительная команда boot реализует старт загрузки, после чего вы сможете спокойно работать в выбранной операционной системе.

    Случается и так, что на жёстком диске установлена не одна, а две или даже больше версий Windows. И тогда осуществить стабильный запуск без дополнительных команд скрытия/показа (hide/unhide ) разделов просто нереально. Суть такова, что если в конфигурационном файле GRUB прописано скрытие какого-либо раздела накопителя, то Windows банально не сможет его прочесть. А если раздел видимый, то с него соответственно можно будет загрузиться.

    При наличии нескольких операционных систем сначала определитесь, какой именно экземпляр вы желаете загрузить, затем проверьте её точное расположение - необходимо знать, на каком разделе жёсткого диска она установлена. К примеру, имеются две различные версии Windows, расположенных соответственно на первом и втором разделах одного накопителя, и пользователю нужно загрузить именно вторую. Для этого в файле menu.lst нужно внести следующие изменения:

    Title Windows,

    Unhide (hd0,1),

    Rootnoverify (hd0,1),

    Chainloader +1,

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

    Переустановка GRUB на случай критических неполадок

    Даже в случае технических неполадок восстановить GRUB совершенно несложная задача. Для начала загружаем установочный LiveCD, открываем терминал сочетанием клавиш CTRL +ALT +T.

    После этого поочерёдно вводим команды:

    • sudo grub-install /dev/sda - установка GRUB непосредственно в MBR (sda - загрузочный диск);
    • sudo update-grub - поиск других загрузочных записей на жестком диске (к примеру, Windows).

    Теперь остаётся лишь перезагрузить компьютер и убедиться в полной работоспособности переустановленного загрузчика.

    Вопрос о защите от зацикливания перезагрузки

    Необходимость в подобной интегрированной в загрузчик GRUB системе защиты появляется тогда, когда размеры логов, расположенных в каталоге /var/log, из-за неконтролируемой записи информации в них растут до непозволительных объёмов. В нормально работающей системе предусмотрены специальные сервисы, архивирующие и подчищающие эти логи в автоматическом режиме. Таким образом, в большинстве случаев пользователю абсолютно не нужно тратить время, контролируя их объём.

    Однако эти же службы запускаются лишь после загрузки операционной системы. До этого размеры лог-файлов абсолютно ничем не мониторятся, из-за чего в случае непредвиденного падения системы и дальнейших перезагрузок логи будут только лишь расти в объёме. И этот неконтролируемый их рост будет продолжаться ровно столько, сколько длятся перезагрузки из-за сбоя в системе. Впоследствии это всё может привести к полному заполнению того раздела, на котором расположен каталог /var/log, что чревато зависанием системы наглухо и невозможности запуска даже режима восстановления.

    Именно от этого катастрофического положения и спасает интегрированная в GRUB система защиты от циклических перезагрузок, вывода "зависшее" меню GRUB, ожидающее явного вмешательства пользователя. Сама защита ориентируется на значение переменной recordfail, прописанного в скрипте /boot/grub/grub.cfg. В ходе каждой загрузки она устанавливается как recordfail=1 , а на финальной загрузочной стадии сбрасывается до recordfail=0 . И если именно такого сброса не произошло, то автоматическая загрузка полностью предотвращается и активируется та самая защита GRUB.

    Для этого в /etc/defaul/grub находим переменную GRUB_RECORDFAIL_TIMEOUT и присваиваем ей значение в то количество секунд, в течение которых меню GRUB будет ждать вмешательства пользователя в случае отсутствия сброса recordfail с 1 до 0. После чего сохраняем изменения командой sudo update-grub , отключив тем самым защиту от зацикленной перезагрузки.

    Кому это может быть полезно? Только для станций и серверов, в которых отсутствует клавиатура для ввода-вывода информации. Без неё, в случае подобных проблем, загрузка системы вообще бывает невозможна. Случаи зацикливания загрузки не так уж распространены и возникают в основном либо из-за проблем с питанием, либо из-за неполадок в программном обеспечении.

    Деинсталляция GRUB и возвращение к Windows: быстро, просто и безболезненно

    В случае если возникнет вопрос "Как удалить GRUB и оставить загрузчик другой операционной системы?", то в первую очередь пользователю потребуется её установочный диск/флешка. Разберём всё на конкретном простом примере: пользователь удаляет со своего компьютера Linux, оставляя в итоге одну лишь Windows, но при этом не может её загрузить ввиду ошибки Grub error . Для полного решения проблемы необходимо восстановить загрузчик Windows x86/64 bit:

    1. Загружаемся с установочного накопителя, предварительно выставив в его на первом приоритете при загрузке в BIOS
    2. Загрузившись с установочного носителя, выбираем раздел восстановления системы.
    3. Из появившегося списка инструментов выбираем командную строку, в которой пропишем поочерёдно следующие команды:
    • BOOTREC.EXE /FixBoot.
    • BOOTREC.EXE /FixMbr.

    Так как удалить GRUB можно в течение нескольких действий, то после всех успешно проведённых операций перезагружаем компьютер и без каких-либо проблем работаем уже в Windows-системе.

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

    Ubuntu Linux поверх Windows XP или Vista, Windows XP вместе с Vista, FreeBSD и Windows - можно придумать и гораздо больше комбинаций. Ничто не мешает, не только придумывать, но и реализовывать самые замысловатые комбинации операционных систем. Причем это можно делать не только на одном компьютере, но и на одном диске - емкость современных жестких дисков (они же HDD, они же винты, они же винчестеры) позволяет "впихнуть" на один такой диск хоть 20 различных операционных систем.

    Немного теории

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

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

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

    1. Обнаружить на определенной файловой системе определенный программный файл (или файлы)
    2. Загрузить этот файл (или файлы) в оперативную память и передать им управление.

    Такие программы-загрузчики бывают двух типов:

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

    Из первых самый популярный загрузчик под названием GRUB. Он умеет загружать более десяти типов операционных систем. Самый распространенный среди "семейных" это ntldr - загрузчик ОС Windows 2k, XP, 2k3 и его новейшая версия bootmgr загружающий Windows Vista и Windows 7. Кроме этих двух существует еще десятка два различных загрузчиков.

    Почему так много? Причина проста - пока еще не существует универсального загрузчика, пригодного на все случаи жизни.

    К примеру, GRUB, самый мощный на сегодняшний день, не может загружать образы дисков в формате ISO, но это умеет делать syslinux.

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

    Например, через один из "примитивных" загрузчиков ntldr можно при помощи простого трюка запустить любое количество других загрузчиков, а это дает возможность реализовать самые изощренные фантазии по мультизагрузке.

    От старта одной лишь MS Windows, до запуска всех версий Windows, плюс десяток версий Linux, плюс BSD, плюс Apple, плюс десяток файлов-образов дисков и дискет, плюс …

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

    Наличие большого количества загрузчиков и возможность их запуска друг из друга дают еще и вариативность при решении одной и той же задачи. Например, двойную загрузку Windows XP плюс Linux можно реализовать как минимум двумя путями - либо использованием одного загрузчика GRUB для обеих ОС, либо комбинацией загрузчиков ntldr + GRUB.

    Еще немного теории

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

    Та часть парадигмы компьютеров семейства IBM PC, которая относится к использованию дисков, определяет, что так называемое "сырое" дисковое пространство должно быть поделено на разделы, затем на этих разделах должны быть созданы файловые системы и только после этого, уже на эти файловые системы можно записывать программы и данные, в том числе операционные системы.

    В рамках парадигмы IBM PC допускается деление "сырого" адресного пространства жесткого диска (HDD), на четыре первичных раздела. То есть, упрощенно говоря, применительно к нашей теме, на одном жестком диске можно разместить четыре операционные системы. Это очень мало. Однако не все так грустно. Уже давно эта проблема решена при помощи расширенных разделов. Расширенный раздел это первичный раздел диска, который можно поделить еще на 255 разделов.

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

    От теории к практике

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

    1. Разделение диска на разделы
    2. Создание на разделах файловых систем
    3. Выбор основного загрузчика или комбинации загрузчиков
    4. Установка операционных систем

    Вроде все коротко и просто. Но только на первый взгляд. Дело в том, что на каждом из этапов возможны различные варианты и итоге получается столько различных способов создания мультизагрузочной системы, что я даже не буду пытаться их рассмотреть.

    Мы пойдем другим путем.

    Просто ответим на вопросы:

    1. Как наилучшим образом разделить диск на разделы?
    2. Какие файловые системы выбрать?
    3. Какой загрузчик выбрать?

    После многих лет работы и экспериментов на первый вопрос у меня ответ такой:

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

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

    В чем преимущество такого подхода?

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

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

    Вопрос второй - файловая система и размер первичного загрузочного раздела.

    Если изначально планируется установка более чем двух или трех ОС, а также их регулярная переустановка, то лучше всего делать размер первичного раздела совсем небольшим 1-2 Гб, а файловую систему для этого раздела использовать FAT или FAT32. Никакую серьезную ОС на этот раздел не ставить, разве что-нибудь легкое типа MS DOS.

    Какой-нибудь знаток тут может сказать, что FAT это каменный век, да и FAT32 тоже древность изрядная и что у них куча недостатков. Это так, но у этих файловых систем есть достоинство очень важное в контексте мультизагрузочной системы. Практически, пожалуй, нет ОС или прикладной программы, которая бы не умела работать с этими файловыми системами. И это очень большое преимущество - если в процессе установки какой-нибудь очередной ОС или очередного загрузчика, возникнет проблема, то можно будет легко получить доступ к разделу и к файлам загрузчиков при помощи даже самых примитивных средств. Кроме того, использование файловых систем FAT или FAT32 расширяет количество загрузчиков, которые можно будет установить на этот раздел. К примеру, загрузчик syslinux можно установить только на файловую систему FAT или FAT32.

    В более распространенном случае - когда устанавливается только две-три ОС, размер первичного раздела лучше выбрать таким, чтобы на него можно было установить ОС Windows с базовым набором программ, то есть не менее 10 - 15 Гб. Соответственно файловую систему в этом случае выбирать NTFS.

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

    И, наконец, какой загрузчик использовать в качестве первичного.

    Я уже давно остановил свой выбор на ntldr. Хотя он вполне "тупой", кроме Windows ничего больше не умеет загружать, но есть в нем одна интересная особенность - он может загружать файловые образы дисковых секторов (физические сектора диска, записанные в файл). А это означает, что ему можно скормить файл с головой любого другого загрузчика. То есть из ntldr можно загрузить любое количество других загрузчиков, достаточно сделать файлы с их головами и по списку скармливать их ntldr.
    Примечание. "Голова" загрузчика это сектор MBR или Boot. Это может быть и более одного сектора, например голова GRUBа - 16 секторов начиная с MBR.

    Примечание. В том случае если голова загрузчика более одного сектора, копировать в файл для ntldr нужно только первый сектор (MBR сектор), поскольку ntldr может загружать только односекторные файлы. Это накладывает ограничение на количество одновременно установленных загрузчиков с "длинной", головой. То есть в схеме с ntldr нельзя использовать два GRUBа.

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

    Для редких случаев - маленький первичный раздел с файловой системой FAT или FAT32 и без ОС, только загрузчик. При этом все ОС устанавливаются в логические разделы расширенного раздела.

    Для более распространенных случаев - небольшой первичный раздел с файловой системой NTFS, куда устанавливается ОС Windows и загрузчик. Остальные пара-тройка ОС в логические разделы расширенного раздела.

    Все очень просто.

    Примечания

    Если вариант мультизагрузки совсем уж простой, что-то типа Linux поверх Windows, когда Linux устанавливается на компьютер где уже есть Windows, то можно не заморачиваться с ntldr. При установке любого современного, популярного дистрибутива Linux есть возможность автоматически установить загрузчик GRUB, а он умеет загружать обе эти ОС.

    Установить загрузчик ntldr можно вручную, отдельно от ОС Windows. Однако установить его можно только на раздел с файловыми системами FAT, FAT32 или NTFS. При установке ntldr нужно помнить, что его голова записывается в Boot сектор, а потому для его старта нужен еще и стандартный предзагрузчик типа MS DOS в MBR секторе (то есть выполняющий "прыжок" на Boot сектор). Если в MBR была записана голова другого загрузчика (например, GRUBа), то помимо установки ntldr нужно еще записать предзагрузчик Microsoft в MBR. Один из способов сделать это команда fdisk /mbr . Естественно, что fdisk в данном случае от компании Microsoft (из MS DOS).

    Хотя при установке любой современной ОС, можно создавать разделы и файловые системы непосредственно в процессе установки, тем не менее, я советую делать это отдельно. Сначала при помощи программы типа fdisk или Partition Magic создаете нужные разделы, а уже затем запускаете установку ОС и в процессе указываете раздел, куда нужно ставить систему.

    При установке любой ОС на мультизагрузочную систему нужно быть очень внимательным на этапе выбора типа разметки диска и выбора раздела. Некоторые установщики, например c диска Ubuntu Live, по умолчанию предлагают опции типа "установка на весь диск" или "автоматическая разметка диска". Если пропустить эти опции, то ваша мультизагрузочная система будет уничтожена. Также нужно быть аккуратным, когда вручную указываешь установщику раздел для установки - по невнимательности можно записать новую ОС в используемый раздел и тогда все, что на нем было ранее, будет уничтожено.

    Прежде чем устанавливать новую ОС или новый загрузчик заранее приготовьте "ремкомплект" - набор данных и программ, который позволит вам восстановить загрузку системы в ее текущем состоянии. Может, получиться так, что после установки новой ОС или нового загрузчика, часть старых ОС не будет загружаться.

    Мультизагрузка с флеш-диска, по своей организации, ничем не отличается от описанной здесь загрузки с HDD. С той лишь поправкой, что на флеш-диске нецелесообразно устанавливать файловые системы иные, чем FAT / FAT32. Если используется USB HDD, то с ним можно работать так же как с обычным HDD.

    Однако загрузиться с флеш или USB диска можно не на каждом компьютере. Будьте готовы к тому, что на каком-либо компьютере вы не сможете это сделать. Чаще всего такие проблемы возникают с компьютерами, на которых используются BIOS Award или чипсеты nVidia, SiS, Amd. Реже всего проблема загрузки возникает, если на материнской плате BIOS AMI и чипсет Intel.

    Яндекс Кошелек № 410011416229354 . Или на телефон +7 918-16-26-331 .

    Даже небольшая сумма может помочь написанию новых статей:)



    Загрузка...