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

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 .

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

Нередко случается, что любимая игра или программа отказывается запускаться на установленной операционной системе, а переустанавливать и работать в другой нет никакого желания. Как быть? Можно установить на ПК две операционных системы одновременно и спокойно выбирать какую именно из них загружать. Начинающие пользователи могут испугаться и отказаться от этого способа, однако заверим, что при правильных действиях установка нескольких ОС на один жесткий диск абсолютно безопасна и проста. Существует масса программ, позволяющих выбирать какую систему загружать, и с какими параметрами. Вы сможете установить Windows XP и Windows Vista на один ПК, и наслаждаться спокойной работой в нужной ОС.

Существует несколько способов установить несколько операционных систем на один ПК , однако все они имеют свои плюсы и минусы. Наиболее безопасный и простой - это установка ОС через эмулятор виртуального ПК (например VMware Workstation или Virtual PC ). Однако этот способ более медлителен в использовании и не подойдет для частой работы в той же Vista. Суть способа в том, что на ПК с установленной операционной системой устанавливается специальная программа-эмулятор компьютера, в которой устанавливается еще одна ОС. Проблема заключается в том, что все принципы и блоки реального ПК эмулируются, тем самым давая лишнюю нагрузку на центральный процессор, давая ему лишнюю работу. Используя такой метод для установки нескольких ОС, вы не сможете насладиться полноценными играми и программами.

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

Итак, рассмотрим, в чем сложность установки нескольких ОС на один ПК. Дело в том, что каждая операционная система записывает на жесткий диск специальную загрузочную информацию, которая может быть утеряна при установке второй ОС на один и тот же компьютер. Также, могут быть утеряны системные папки и файлы, такие как Program Files и Windows в операционных системах Microsoft Windows.

Еще одним нюансом является тип файловой системы. К примеру Windows использует файловую систему NTFS, в то время как Linux - свой собственный формат разделов Ext. Поэтому, при установке нескольких ОС на один ПК может возникнуть проблема доступа к разделам жесткого диска. Поэтому, настоятельно рекомендуем начинающим пользователям ПК использовать специальный загрузчик, например Acronis OS Selector .

OS Selector - давно проверенный и очень надежный менеджер загрузок ОС, поэтому настоятельно рекомендуем скачать его перед установкой нескольких ОС.

Как установить несколько ОС на ПК

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

Первым делом, нужно определиться какие ОС мы собираемся устанавливать на компьютер и в какой последовательности. Например, если вам нужно установить Windows 98 и Windows XP на один копьютер, сначала нужно устанавливать Windows 98. После этого ставим XP в другой раздел и все. Если установить операционные системы в обратной последовательности, Windows 98 перезапишет загрузочную область XP.

Инструкция по установке нескольких ОС на ПК

1. Устанавливаем нужную операционную систему на ПК, устанавливаем необходимые драйвера.

2. Устанавливаем Acronis OS Selecter , с помощью встроенного Мастера установки.

Скачать Acrinis OS Selecter

Он ничем не отличается от обычных Мастеров, поэтому смело жмите Далее (Next) , принимайте лицензионное соглашение. После установки Acronis OS Se lecter предложит создать аварийную дискету или компакт-диск. Если есть возможность, сделайте их, так как в случае возникновения неполадок они понадобятся для восстановления загрузочной области диска. Перезагружаем компьютер.

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

3. Теперь нам нужно установить другую операционную систему и восстановить загрузчик. Предположим, что мы будем устанавливать Windows 98 (именно в такой последовательности, чтобы показать, что загрузчик XP будет перезаписан и показать как восстанавливать загрузчик Acronis OS Selector .

Делаем все как всегда - вставляем установочный диск, устанавливаем Windows 98, устанавливаем драйвера.

4. В зависимости от программы-загрузчика, восстановление загрузочной области и вариантов загрузки ОС восстанавливается разными способами. В случае с Acronis OS Selector 8 , загрузка менеджера восстанавливается автоматически, пользователю следует лишь выбрать нужную ОС и продолжать работу. Некоторые менеджеры-загрузки нуждаются в загрузке со специальной дискеты, либо переустановки программы. Если у вас не запускается Acronis OS Selector, а сразу загружается Windows 98, установите программу и перезагрузите компьютер.

Таким методом, вы сможете установить несколько операционных систем на один компьютер, не затерев их. Этот способ работает как для систем Windows, так и Linux, поэтому никто не останется за бортом.

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

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

Диск, на котором находятся файлы ОС и с которого производится ее загрузка, называется системным .
Программы могут выполняться, только если они находятся в оперативной памяти, поэтому файлы ОС необходимо загрузить в оперативную память.
После включения компьютера производится загрузка ОС с системного диска в оперативную память. Загрузка должна выполняться в соответствии с программой загрузки – загрузчика ОС.
Поэтапно загрузку ОС можно представить следующим образом:
В компьютере находится ПЗУ, содержащее программы тестирования компьютера и первого этапа загрузки ОС, которые называются BIOS (Basic Input/Output System – базовая система ввода-вывода). После включения компьютера эти программы начинают выполняться. Причем информация о ходе этого процесса высвечивается на экране дисплея. Сначала производится тестирование и настройка аппаратных средств, затем начинается загрузка ОС. На этом этапе процессор обращается к диску и ищет в 1 секторе диска наличие небольшой программы-загрузчика Master Boot .

Master Boot ищет на диске основной загрузчик Boot Sector , загружает его в память и передает ему управление. Boot sector (сектор начальной загрузки) – часть диска, зарезервированная для программы самозагрузки ОС. В этом секторе обычно содержится короткая программа на машинном языке, которая загружает ОС.
Далее основной загрузчик ищет остальные модули операционной системы и загружает их в оперативную память.
После окончания загрузки ОС управление передается командному процессору. В случае использования интерфейса командной строки на экране появляется приглашение системы, в противном случае загружается графический интерфейс.
В зависимости от вида ОС, процесс ее загрузки будет отличаться. В состав ОС обязательно входят файлы, отвечающие за процесс загрузки. Рассмотрим «работу» файлов в процессе загрузки Windows XP .

  1. Начальная фаза загрузки.
  2. Выбор системы.
  3. Определение «железа».
  4. Выбор конфигурации.

В начальной фазе NTLDR переключает процессор в защищенный режим. Затем загружает соответствующий драйвер файловой системы для работы с файлами любой файловой системы, поддерживаемой XP (FAT-16, FAT-32 и NTFS).

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

Если такого файла нет, то NTLDR продолжает загрузку с первого раздела, первого диска, обычно это C:\.
Если в процессе выбора пользователь выбрал Windows NT, 2000 или XP , то проверяется нажатие F8 и показ соответствующего меню с опциями загрузки.
После каждой удачной загрузки XP создает копию текущей комбинации драйверов и системных настроек известную как Last Known Good Configuration. Этот коллекцию можно использовать для загрузки в случае если некое новое устройство внесло разлад в работу операционной системы.

Если выбранная операционная система XP, то NTLDR находит и загружает DOS программу NTDETECT.COM для определения «железа», установленного в компьютере. NTDETECT.COM строит список компонентов, который потом используется в ключе HARDWARE ветки HKEY_LOCAL_MACHINE реестра.

Если компьютер имеет более одного профиля оборудования программа останавливается с меню выбора конфигурации. После выбора конфигурации NTLDR начинает загрузку ядра XP (NTOSKRNL.EXE). В процессе загрузки ядра (но перед инициализацией) NTLDR остается главным в управлении компьютером. Экран очищается и внизу показывается анимация из белых прямоугольников. Кроме ядра загружается и слой Hardware Abstraction Layer (HAL.DLL), для того чтобы ядро могло абстрагироваться от «железа». Оба файла находятся в директории System32.

NTLDR загружает драйвера устройств, помеченные как загрузочные. Загрузив их, NTLDR передает управление компьютером дальше. Каждый драйвер имеет ключ в HKEY_LOCAL_MACHINE\SYSTEM\Services. Если значение Start равно SERVICE_BOOT_START, то устройство считается загрузочным. Для каждого такого устройства на экране печатается точка.

NTOSKRNL в процессе загрузки проходит через две фазы — так называемую фазу 0 и фазу 1. Первая фаза инициализирует лишь ту часть микроядра и исполнительные подсистемы, которая требуется для работы основных служб и продолжения загрузки. Фаза 1 начинается когда HAL подготавливает систему для обработки прерываний устройств. Если на компьютере установлено более одного процессора, они инициализируются. Все исполнительные подсистемы реинициализируются в следующем порядке: Object Manager, Executive, Microkernel, Security Reference Monitor, Memory Manager, Cache Manager, LPCS, I/O Manager, Process Manager.

Инициализация Менеджера ввода/Вывода начинает процесс загрузки всех системных драйверов. С того момента где остановился NTLDR загружаются драйвера по приоритету. Сбой в загрузке драйвера может заставить XP перезагрузиться и попытаться восстановить Last Known Good Configuration. Последняя задача фазы 1 инициализации ядра — запуск Session Manager Subsystem (SMSS). Подсистема ответственна за создание пользовательского окружения, обеспечивающего интерфейс NT. SMSS работает в пользовательском режиме, но в отличии от других приложений SMSS считается доверенной частью операционной системы и «родным» приложением (использует только исполнительные функции), что позволяет ей запустить графическую подсистему и login. SMSS загружает win32k.sys — графическую подсистему. Драйвер переключает компьютер в графический режим, SMSS стартует все сервисы, которые должны автоматически запускаться при старте. Если все устройства и сервисы стартовали удачно, процесс загрузки считается удачным и создается Last Known Good Configuration.

Процесс загрузки не считается завершенным до тех пор, пока пользователь не залогинился в систему. Процесс инициализируется файлом WINLOGON.EXE, запускаемым как сервис и поддерживается Local Security Authority (LSASS.EXE), который и показывает диалог входа в систему. Это диалоговое окно показывается примерно тогда, когда Services Subsystem стартует сетевую службу.

Не один десяток новых пользователей отличных от 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-системе.

MultiBoot – программа, восстанавливающая загрузчик операционной системы. По сути это графическая оболочка для системных утилит BcdBoot, BcdEdit и BootSect.

Достаточно скачать бесплатно MultiBoot, чтобы спасти систему, если она не загружается после установки более старой системы. Такое постоянно происходит, если пользоватеть устанавливает Windows XP параллельно Vista или Seven. Загрузчик более новой ОС просто стирается и кажется, будто вот он, конец. Но MultiBoot поможет избежать проблем. С его помощью можно организовать возможность загрузки одной из нескольких систем на выбор.

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

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