Установка загрузчика Grub. Что представляет собой загрузочный сектор

Известной теперь как GRUB Legacy. Если вам необходимо восстановить GRUB Legacy, например поскольку у Вас стоит версия Ubuntu старше 9.10, то вам необходимо прочитать .

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

На любом загрузочном винчестере есть так называемая Главная загрузочная запись (англ. master boot record, MBR) , к которой обращается BIOS при загрузке компьютера. В эту область загрузчик системы и должен записать информацию об основных файлах, которые хранятся уже на разделах винчестера.

Каждый раз при установке или восстановлении систем от Microsoft загрузчики Linux заменяются и их необходимо заново устанавливать.

Восстановление с помощью LiveCD/USB

Первый способ

терминал

Sudo fdisk -l

Из таблицы видим, что Linux стоит (в нашем случае) на разделе /dev/sda1

Теперь подключим этот раздел в /mnt следующей командой (следим за пунктуацией, особенно, за пропусками между кодами):

Sudo mount /dev/sda1 /mnt

Затем, для записи grub в MBR, вводите следующую команду:

Sudo grub-install --root-directory=/mnt /dev/sda

В случае, если нужно только восстановить MBR диска (например, после переустановки Windows), то этого достаточно.

Если нужно обновить и меню grub (например, после установки Windows), то нужно сделать:

Sudo update-grub --output=/mnt/boot/grub/grub.cfg

Восстановление закончено!

Восстановление используя chroot

Запустите систему с LiveCD/USB и откройте терминал . Для этого можно нажать Alt + F2 и ввести команду:

Sudo fdisk -l

На экран должна быть выведена примерно такая таблица:

/dev/sda1 29 8369 66999082+ 83 Linux /dev/sda2 * 8370 13995 45190845 7 HPFS/NTFS /dev/sda3 13996 14593 4803435 5 Extended

Теперь нужно примонтировать Ваш Linux раздел (здесь это sda1) и еще несколько важных директорий:

Sudo mount /dev/sda1 /mnt sudo mount --bind /dev /mnt/dev sudo mount --bind /proc /mnt/proc sudo mount --bind /sys /mnt/sys

Если раздел /boot или /var находится отдельно, то Вам необходимо примонтировать их в /mnt/boot и /mnt/var

Теперь перейдем в окружающую среду chroot :

Sudo chroot /mnt

Теперь необходимо установить GRUB , используя команду:

Grub-install /dev/sda

Если Вы получили сообщение об ошибке, то используйте команду: grub-install --recheck /dev/sda

Также в некоторых случаях может помочь вариант:

Grub-install --recheck --no-floppy /dev/sda

Если все прошло успешно, выходим из chroot командой:

Теперь необходимо отмонтировать разделы:

Sudo umount /mnt/dev sudo umount /mnt/proc sudo umount /mnt/sys sudo umount /mnt

Если Вы монтировали раздел /boot воспользуйтесь командой:

Sudo umount /mnt/boot

Затем перезагрузим Ваш компьютер командой:

Sudo reboot

При необходимости Вы можете обновить меню загрузчика командой:

Sudo update-grub

Восстановление в rescue mode

При отсутствии загрузочного диска, можно восстановить Grub из его консоли. Восстановление происходит следующим образом: сначала нужно подгрузить все модули, чтобы стала доступна вся функциональность Grub, а затем уже запуститься с нужного раздела. Как известно, Grub состоит из двух частей. Первая часть записана в MBR диска. Она содержит базовую функциональность, то есть в ней есть консоль в rescue mode и ничего больше. Вначале нужно определить, на каком разделе находится вторая часть груба (она лежит в каталоге /boot/grub), подгрузить недостающие модули. И только потом можно будет дать команду запуска с нужного раздела. В rescue mode доступно всего четыре команды:

Ls set unset insmod

Вначале следует дать команду:

В ответ она выведет, например, следующее:

(hd0) (hd0,msdos3) (hd0,msdos2) (hd0,msdos1) (hd1) (hd1,msdos2) (hd1,msdos1)

Иногда Grub может неправильно опеределить, какие файловые системы находятся на разделах дисков. В данном случае определяет их как msdos. Нам нужно постараться угадать, какие диски мы видим. В данном случае видно два диска. Диск с индексом 0 содержит три раздела, диск с индексом 1 содержит два раздела. Зная структуру своих дисков несложно определить нужный диск.

Grub называет разделы в обратном порядке. И становится непонятно, что имеется в виду под (hd0,msdos3) - первый раздел или третий? Тут можно выкрутиться, использовав синтаксис (hd0,1). Нужно помнить, что в Grub счет дисков начинается с 0, а счет разделов - с 1. Предположим, что Линукс установлен на первый диск в первый раздел, то есть (hd0,1). Даем команду:

Set prefix=(hd0,1)/boot/grub set root=(hd0,1)

Этими командами мы указываем использовать диск (hd0,1) для дальнейших команд. После чего нужно проверить, действительно ли на этом разделе есть то, что нам нужно. Даем команду:

Ls /boot/grub

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

Insmod ext2 insmod normal normal

Проверьте правильность написания первой команды для файловых систем ext3 и ext4

Если ОС расположена на разделе, отформатированном в btrfs, то выполняем следующие команды: set prefix=(hd0,1)/@/boot/grub set root=(hd0,1)

подгружаем модули:

Insmod btrfs insmod normal

запускаем GRUB:

После чего Grub перейдёт в полнофункциональный режим. Он автоматически найдет все операционки, которые можно подгружать, и покажет своё Grub-меню.

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

Grub-install /dev/sdX

Где sdX, диск, на который нужно установить Grub.

Сегодня я хотел бы показать вам способ как можно восстановить GRUB 2 после установки или переустановки Windows на компьютер с Linux.

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

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

У меня на один виртуальный жесткий диск были установлены Ubuntu 14.04 и Windows 7. И вот мне захотелось попробовать developer версию Windows 10. Я решил установить ее поверх семерки. Как и положено, после всех манипуляций Windows 10 заработала, а Ubuntu не запускалась. Так как Ubuntu мне нужна была для работы я решил восстановить затертый GRUB.

Восстановление GRUB 2

Сначала необходимо загрузится с LiveDVD. Когда система загрузится, открываем терминал (Ctr+Alt+T) и смотрим структуру разделов с помощью команды:

Sudo fdisk -l

У меня, как видно по выводу команды, диск разделен на 6 разделов: два NTFS для Windows, Extended (расширенный) и три отмечены как Linux для Ubuntu. Чтобы установить GRUB необходимо примонтировать корневой раздел Ubuntu — мой sda5:

Sudo mount /dev/sda5 /mnt

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

Sudo grub-install --root-directory=/mnt /dev/sda

После этого можно перезагрузить компьютер:

Sudo reboot

GRUB восстановлен. Но остался один момент. Сейчас на виртуальной машине была установлена Windows 10, но в меню загрузчика по прежнему она отображалась как семерка, из-за чего при попытке ее запуска выскакивала ошибка. Чтобы исправить это достаточно было просто загрузится в Ubuntu (не LiveDVD) и через терминал обновить загрузчик.

Многие пользователи дистрибутивов Linux устанавливают на жёстком диске своего компьютера две и более систем, одну как рабочую, а другую/другие для тестирования или просто ради любопытства. И здесь возникает не существенная, но всё-таки проблема с загрузчиком GRUB , так как установка новой (другой системы) автоматически изменяет меню загрузки систем, т. е. наша вновь установленная система оказывается первой в списке. Для восстановления загрузчика GRUB своей предпочтительной системы пользователь, применяет такие графические инструменты как: Boot-Repair или Grub Customizer , которые прекрасно с этим справляются.

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


Как видно на снимке примотированных разделов у меня три. Из них /media , это раздел ntfs , который служит для хранения различных файлов на моём компьютере, в квадратных скобках, указывает на то, что примонтирован, но не задействован в настоящий момент, а вот sda6 , отмеченный правым слешем - это тот самый раздел, на котором находится корневая файловая система.
Теперь мы можем приступить к повторной установке загрузчика Grub на ней. Необходимо выполнить следующую команду:

sudo grub-install /dev/sda


Установка завершена. Ошибок нет.

И остаётся только обновить GRUB :

sudo update-grub

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

В данной статье приводится пошаговая инструкция, которая поможет даже неопытному пользователю успешно разблокировать загрузчика bootloader и установить кастомный recovery Cyanogen Mod .

Ваши данные подлежат удалению. Если вам необходимо сохранить важную информацию – рекомендуем сделать бэкап. Все ваши действия вы совершаете на собственный страх и риск. Отметим, что автор не несет ответственности за «окирпичивание» смартфона пользователя.

Готовимся к установке

1. Качаем и устанавливаем драйвера. Сделать это можно, перейдя по нашей ссылке ниже.

2. Распаковываем архив в любом месте на жестком диске.
3. Отключаем телефон.
4. Запускаем телефон в режиме fastboot, для чего следует нажать «громкость -», и, удерживая ее, нажать «Power».
5. На ПК отобразится сообщение об обнаружении нового устройства.
6. Зайти в диспетчер устройств (путь: Панель управления – Система – Диспетчер устройств).
7. Найти неизвестное устройство, которое обычно обозначается в виде желтого треугольника с восклицательным знаком.
8. Дважды щелкнуть по нему.
9. В окне, которое появилось, надо нажать: Обновить драйвер – Выполнить поиск драйвера на этом ПК – Выбрать драйвера из перечня установленных драйверов – Установить с диска – Выбрать папку, куда были распакованы драйвера – Поставить флажок на «Поиск в подпапках» - завершить установку драйверов.
10. Устройство полностью готово к дальнейшим манипуляциям.
11. Скачать ADB и Fastboot согласно разрядности операционной системы: для x32/86 или x64. Распаковать архив в выбранную вами папку. Надо, чтобы путь не содержал русских букв (кириллицы) и цифр. Я, к примеру, распаковываю папку в d:\ADB.

12. Скачать кастомный Recovery: CWM и кинуть *.img файл в ту же папку, что ADB.

Разлочка Bootloader

Сначала следует произвести разлочку Bootloader на смартфоне. С этой целью необходимо подключить смартфон к ПК и перевести его в fastboot-режим. Чтобы перевести вданный режим, надо отключить телефон и в ходе выключения нажать и удерживать две кнопки: «Громкость –» и «Power». В Fastboot-режиме на дисплее смартфона появится зеленый робот, у которого вскрыт живот.

Далее вам предстоит запустить командную строчку: пуск – в строчке «выполнить» написать «cmd» (без кавычек) – сверху должно появиться «cmd.exe» - кликнуть правой кнопкой мыши «cmd.exe» - Запуск с правами администратора.

После этого заходим в папку, в которой находится ADB (в моем случае она расположена на пути d:\ADB):сначала я ввожу «d» (кавычки вводить не нужно) и нажимаю Enter – ввожу «cd ADB» и снова нажимаю Enter. Окно командной строки теперь выглядит так:

С целью разлокировки Bootloader надо ввести такую команду:

fastboot oem unlock

Принимаем разблокировку путем нажатия кнопки «Громкость +» и подтверждаем действие нажатием кнопки «power».

Итак, Bootloader разблокирован. Теперь перезагружаемся в систему. Смартфон введет необходимые изменения, загрузится,после чего следует осуществить первичную настройку от Гугл (я многое пропускаю, так как телефон еще разбудет перешит). Дальше – запуск fastboot и установка кастомного Recovery.

Теперь устанавливаем кастомный Recovery. С этой целью надо ввести в командную строку команду

fastboot flash recovery ***

Многие новые пользователи операционных систем, отличных от Windows, с большой долей сомнения и скепсиса в наши дни встречают фразу «начальный загрузчик». Этому есть вполне логичное объяснение: большинство новых пользователей до перехода к использованию других менее распространенных на рынке операционных систем в повседневной жизни использовали ту же Windows. Загрузчик реализован в ней максимально прозрачно и примитивно. В некоторой степени это, конечно, прибавляет удобства рядовым пользователям, однако вместе с тем это уменьшает функциональные возможности и без того универсальной и популярной операционной системы. Поэтому всем пользователям, которые решили обратить внимание на другие продукты индустрии информационных технологий, следует непременно ознакомиться с универсальным загрузчиком GRUB. В дальнейшем это может значительно помочь пользователю при работе сразу с несколькими операционными системами, установленными на одной машине.

Универсальный инструмент
Прежде всего попробуем разобраться с наименованиями GNU GRUB. Данная аббревиатура в переводе с английского означает “главный унифицированный загрузчик». Создателем данного загрузчика является некоммерческая организация «Проект GNU». Она прославилась в сфере информационных технологий своим свободно распространяемым программным обеспечением. По сути сам GRUB представляет меню выбора нужной операционной системы из перечня поддерживаемых систем, в который входит FreeBSD, Linux и Solaris. GRUB при этом может работать даже с операционной системой Windows. Однако, чтобы запустить подобные системы, которые напрямую не поддерживаются данным начальным загрузчиком, существуют некоторые особенности, которые в дальнейшем будут подробно изучены.

Развитие технологий
Непрерывно возрастающая популярность GRUB с каждым годом была основополагающей причиной, которая побуждала неуклонно развивать и совершенствовать загрузчик в дальнейшем. Самая первая версия загрузчика, которая называлась GRUB Legacy, отлично справляется с задачами унифицированного загрузчика для систем UNIX. Ее продолжительный срок существования также обеспечили широкая поддержка серьезных компаний и серверных дистрибутивов. Но стоит отметить, что данное обстоятельство никак не повлияло на дальнейшее развитие данного загрузчика. Благодаря этому пользователи получили последнюю на данный момент времени версию GRUB2. Будучи написанным практически заново, GRUB2 вряд ли обладает хоть какими-то общими чертами с устаревшим GRUB Legacy. Будучи по умолчанию используемым загрузчиком в операционной системе Ubuntu начиная с версии 9.10 GRUB2 полностью остановил дальнейшую разработку отлично зарекомендовавшей себя в прошлом Legacy. Новичку с самого начала необходимо уяснить, что GRUB 2 представляет собой более сложный в работе загрузчик по сравнению с предыдущей версий. Поэтому чтобы уберечь покупателей от возможных проблем и трудностей, далее будут изложены мельчайшие детали. Их понимание позволит пользователю в полной мере применять все новшества последней версии, которых немало. К ним относятся и скриптовая поддержка (переменных, функций, условий, циклов), возможность изменения внешнего вида загрузчика под вкус пользователя, возможность динамичной подгрузки модулей, которая позволяет расширить функционал не на этапе сборки, а непосредственно во время выполнения, совместимость с различными архитектурами, поддержка загрузки MacOS, стабильная работа с файловыми системами NTFS, FAT32, FAT16. Благодаря кроссплатформенному типу установки GRUB2 можно устанавливать с другой архитектуры. Также при возникновении проблемной ситуации существует возможность введения безопасного режиме. Кроме того, в новой версии загрузчика были исправлены ошибки старой GRUB Legacy, которые из-за требования обратной совместимости изначально не могли быть пофиксены. В дальнейшем под названием GRUB мы будем иметь в виду GRUB 2, с которой будем в полной мерее разбираться.

LILO
Конечно же, выбор загрузчиков операционных систем не ограничивается одним GRUB’ом. Аналогичным загрузчиком является LILI. Это начальный загрузчик Linux систем, который до сих пор не утратил своей актуальности. В пользу того же GRUB следует отметить несколько отличительных особенностей, которыми конкурент пока не может похвастаться. LILO поддерживает только 16 конфигураций загрузки, в то время как GRUB поддерживает неограниченное количество таких конфигураций. Также GRUB может загружаться по локальной сети, чего нельзя сказать о LILO. У LILO отсутствует тот самый командный интерактивный интерфейс, к удобству которого уже успели привыкнуть пользователи последней версии GRUB. Единственная общая особенность обоих загрузчиков заключается в необходимости компилировать каждый раз все внесенные в меню изменения. В фирменном загрузчике Linux издавна отсутствовала функция автоматического сохранения. GRUB 2 этой удобной особенностью похвастаться тоже не может. Даже если учесть этот неудобный для повседневного использования нюанс, загрузчик LILO проигрывает конкуренту сразу по нескольким пунктам. Благодаря этому GRUB получает более широкое распространение среди пользователей домашних компьютерных систем.

Установка GRUB: особенности процесса
Для начала необходимо убедиться в том, что у вас на компьютере имеется либо установленная система Ubuntu, либо ее загрузочный диск. После запуска системы необходимо при помощи комбинации клавиш Ctrl+Alt+F2 вызвать терминал. Затем в нем необходимо прописать следующие команды: — sudo add-apt-repository ppa: cjwatson/grub, — sudo add-get update && sudo add-get install grub 2, — sudo update-grub2. Даже если у вас установлена операционная система не Ubuntu, но имеется Live CD, то процедура останется такой же с одной небольшой разницей. После того как вы загрузитесь именно с этого загрузочного диска, необходимо выбрать опцию «Попробовать Ubuntu». Таким образом вы запустите систему без каких-либо изменений на собственном компьютере. После этого необходимо продолжить установку загрузчика GRUB по той же схеме с этапа вызова терминала. Чтобы проверить установленную версию загрузчика, можно использовать команду grub-install-v. Также это можно сделать непосредственно при самой загрузке Ubuntu.

GRUB: алгоритм запуска
По мере завершения работы с GRUB Install загрузчик прежде всего изменит код MBR на свой собственный сектор MBR, в котором содержится главная загрузочная запись. Здесь содержится код основного загрузчика (446 байт), таблица разделов с описанием как основных, так и вторичных разделов жесткого диска (64 байта). Поскольку сектор MBR обладает малым объемом, запуск GRUB укладывается в два этапа. В секторе MBR размещена ссылка к конфигурационному файлу, который может находиться в любом жестком диске, на усмотрение самого пользователя. По ней будет определяться загрузка, которая начинается на втором этапе. Все настройки и данные для работы GRUB учитываются из конфигурационного файла. Если же конфигурационный файл не был найден на втором этапе, то процесс загрузки будет прекращен. Пользователю придется в ручном режиме выбирать загрузочную конфигурацию из командной строки. Данная структура загрузки позволяет GRUB быть гибким и широко конфигурируемым по сравнению с множеством других аналогов, в которых данный процесс был до максимума упрощен.

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

GRUB после установки: настройка и полезное ПО
В GRUB2 основным конфигурационным файлом является не /boot/grub/menu.lst, а /boot/grub/grub.cfg. Редактировать данный файл совершенно бессмысленно. С каждым сохраненным изменением в файле настроек /etc/default/grub он будет генерироваться заново. Настройка в /etc/default/grub в основном ограничена изменением стандартного пункта загрузки и времени отображения меню. За изменение первого пункта отвечает параметр GRUB_DEFAULT. Его значением обозначается номер пункта в меню загрузки. При выборе какого-то другого пункта пользователь должен знать его очередность в общем списке. Для этого необходимо просмотреть содержимое файла /boot/grub/grub.cfg и найти в нем нужную учетную запись. При этом стоит помнить о правилах нумерации. Первому пункту присвоено значение 0, второму пункту присвоено значение 1, третьему – 2 и так далее. Параметр GRUB_TIMEOUT отвечает за задержку отображения меню загрузки. Присвоенное в кавычках значение обозначает количество секунд, в течение которых должна появиться заставка. При редактировании данного параметра имеется одна хитрая особенность.

При выставлении значения «-1» заставка будет отображаться до тех пор, пока пользователь не выберет один из пунктов. В /etc/grub.d набор скриптов находит все установленные на компьютере ядра и системы. В grub.cfg формируется загрузочное меню. За поиск других операционных систем и ядер отвечают два основных – 30_os-prober и 10_linux. Файл 40_custom дает возможность изменить GRUB путем добавления собственных пунктов загрузки. Это может быть полезно для работы с особыми типами запуска системы. Стоит обратить внимание на то, что он должен заканчиваться пустой стройкой при любых изменениях. В противном случае последний пункт загрузки из всех предложенных просто не будет отображаться. Существует еще один более простой способ редактирования GRUB в операционной системе Ubuntu. Для этой цели нам понадобится утилита grub-Customizer. Она благодаря своей простоте и интуитивно понятному интерфейсу представляет собой лучший вариант для настройки данного загрузчика. Больше всего Grub Customizer подойдет неопытным новичкам. Чтобы установить его, нужно запустить терминал путем нажатия комбинации клавиш Ctrl+Alt+T, а потом поочередно ввести следующие команды: -sudo add-apt-repository ppa:denielrichter2007/grub-customizer, -sudo add-get update, -sudo add-get install grub-customizer. Конечно, перевод программы Grub-Customizer выполнен не очень качественно, но разобраться в ней довольно легко.

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

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

Super Grub Disk – представляет собой простой и удобный инструмент для быстрого восстановления загрузчика. Работает не только с LILO и GRUB, но и с Windows. Может быть запущен с дискеты, флэшки или диска.

GParted – представляет собой редактор разделов дисков. Запускается непосредственно с диска. С помощью данной программы можно выполнить следующие операции с разделами и файловыми системами на них: удаление, создание, проверка, изменение размера, копирование и перемещение.
SystemRescue CD – представляет собой дистрибутив Linux, который предназначен для аварийного восстановления.