Загрузчик операционной системы GRUB: настройка, описание. Установка и восстановление GRUB. Восстановление GRUB Что такое LILO

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

Что такое Grub

Grub (или GRand Unified Bootloader) - загрузчик операционных систем с открытым исходным кодом. Распространяется он под лицензией GNU GPL, в полностью свободном виде. С помощью этого замечательного лоадера можно сделать много всего - основная же функция не ограничивается загрузкой лишь одной операционной системы. Вы можете иметь куда больше операционных систем на своем ПК, загружая любую из них с помощью Grub. На скриншоте выше вы можете видеть как примерно Grub выглядит. Кстати говоря, если вы захотите , вам определенно понадобится помощь Grub.

Grub используется в большинстве дистрибутивов Linux в качестве загрузчика по-умолчанию. Разумеется и с ним иногда возникают проблемы. Этим самые проблемы чреваты полным отказом операционной системы. Поэтому для починки Grub нам понадобятся дополнительные инструменты. Какие именно - узнаете далее.

От чего могут возникнуть проблемы

Одна из самых распространенных причин - это неправильный порядок установки двух операционных систем (Linux и Windows). Допустим, если вы захотите установить две этих операционных системы на свой ПК - вам непременно стоит знать правильную последовательность:

  • Сначала устанавливаем Windows
  • И только потом уже Linux

Если, например, сделать наоборот, то как раз-таки Grub будет поврежден; система будет грузиться напрямую в Windows, а дистрибутив Linux останется недоступным.

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

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

Для этого способа нам понадобится флешка с дистрибутивом Linux на борту. Подойдет любой: от Ubuntu, Arch или даже Linux Mint. Здесь нужен только терминал, поэтому подойдет даже версия без графической оболочки.

Как создать LiveCD/USB

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

Идем на официальную страницу загрузки . Загружаем любую понравившуюся версию (лучше взять новейшую для десктопа), после чего записываем ее на USB/CD.

С помощью Rufus:

Последняя версия приложения доступна на официальном сайте . Сразу после загрузки и запуска/установки мы увидим такое окно:

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

Находим загруженный образ через менеджер, после чего жмем "Старт".

С помощью Etcher:

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

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

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

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

Помимо вышеописанного способа, при восстановлении Grub с помощью LiveCD можно использовать и этот. Тут мы будем использовать утилиту chroot.

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

Sudo fdisk -l

В выводе снова будет эта таблица. Теперь нам надо присмотреться к ней еще внимательнее.

/dev/sda1 27 7683 66999082+ 83 Linux /dev/sda2 * 8450 13995 45430855 7 HPFS/NTFS /dev/sda3 11885 16574 6503497 5 Extended

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

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.

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

Можно также обновить меню Grub, используя команду:

Sudo update-grub

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

Если по каким-то причинам у вас нет доступа к LiveCD/USB-носителю, а также к компьютеру, с помощью которого этот самый носитель можно было бы сделать, то этот способ для вас.

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

Одна из этих частей (первая) записана в MBR диска. В ней присутствует базовый функционал и ничего больше (консоль в rescue mode).

Стало быть, нам нужно определить, в каком разделе находится вторая часть Grub (находится в каталоге /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). Если в грабе отсчет дисков идет с 0, а разделов с 1, то можно определить, что операционная система установлена в первый раздел первого раздела - (hd0,1). Используем следующую команду:

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

С помощью этих команд мы приказываем системе использовать какой-то конкретный диск, для выполнения всех остальных операций (в нашем случае, это диск (hd0,1)). Чтобы проверить есть ли на данном диске загрузчик, введем эту команду:

Ls /boot/grub

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

Insmod ext2 insmod normal normal

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

Чтобы закрепить результат (и не проделывать все то же самое после перезапуска ПК), нужно зайти в терминал своего дистрибутива Linux, где с root правами выполнить следующую команду:

Grub-install /dev/sdX

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

Если операционная система расположена на разделе с файловой системой btrfs , то нам необходимо выполнить следующие команды:

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

И подгрузить модули:

Insmod btrfs insmod normal

Ну и теперь запустить GRUB:

Восстановление Grub с помощью утилиты Boot repair

С помощью этой замечательной утилиты вы сможете восстановить загрузчик всего в пару кликов. Как видно из скриншота, утилита имеет собственный GUI, ее использование не вызовет трудностей.

Чтобы установить boot repair, вы можете воспользоваться одним из приведенных способов:

  • Запись и установка специального (и дальнейшая загрузка с него)
  • Установка Boot repair из PPA-репозитория в LiveCD/USB дистрибутиве.

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

Sudo add-apt-repository ppa:yannubuntu/boot-repair sudo apt-get update && sudo apt-get install -y boot-repair

В утилите будет доступно два варианта на выбор:

Recommended repair исправляет большую часть известных ошибок, которые могли бы возникнуть при запуске. С его помощью вы сможете пофиксить и загрузчик Grub.

Create a BootInfo summary создает Boot-Info-Script – скрипт, который позволяет диагностировать большинство проблем при загрузке.

Здесь же есть и Advanced options . Он включает в себя варианты для восстановления и настройки загрузчика Grub2 (загрузка по-умолчанию, опции загрузки ядра, отображение или скрытие GRUB при загрузке, удаление GRUB). С помощью этих же инструментов, вы можете восстановить MBR и т.д.

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

Выводы

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

Возможно вас заинтересуют и другие похожие материалы про починку загрузчика Grub2. Например, в этом материале вы узнаете, как починить . Там более подробно рассказывается, как фиксить груб с помощью утилиты Boot Repair, возможно вам стоит заглянуть туда, если вы не поняли что-то из этого материала. Что же, ну а на сегодня это все. Надеюсь, что данный материал помог вам разобраться в ошибках. Что, в свою очередь, поможет вам их решить.

Известной теперь как 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.

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

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

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

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

  1. Введение
  2. Конфигурация GRUB
    1. Установка GRUB
  3. Типичные проблемы
  4. Ссылки

Все есть файл

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

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

Введение

GNU GRUB это загрузчик (то есть начальный или первичный загрузчик) способный загружать различные свободно распространяемые и проприетарные операционные системы. GRUB будет хорошо работать с Linux, DOS, Windows или BSD. Аббревиатура GRUB расшифровывается, как GR and U nified B ootloader (Главный унифицированный загрузчик).

GRUB является динамически конфигурируемым. Это означает, что пользователь может внести изменения в настройки GRUB во время загрузки. Например, изменить существующие загрузочные записи, добавить новые пользовательские записи, выбирать различные ядра операционной системы или модифицировать initrd . GRUB также поддерживает режим логической адресации блоков (Logical Block Address). Это означает, что если ваш компьютер оснащен достаточно современной BIOS, то может быть доступно более 8ГБ (первые 1024 цилиндра) места на жестком диске. Соответственно и GRUB будет автоматически доступно все это пространство.

GRUB может быть запущен или установлен с любого устройства (гибкого диска - дискеты, жесткого диска, CD- ROM привода, USB диска, сетевого диска) и может загружать операционные системы из различных источников, включая сетевые диски. Также он может может распаковать образ операционной системы перед ее загрузкой.

Вы можете получить дополнительную информацию, гораздо больше, чем в данной статье, из официального руководства GNU GRUB Manual 0.97 .

Что такое LILO?

Вы, наверное, слышали о другом начальном загрузчике Linux, который называется LILO (образовано из начальных букв LI nux LO ader, что означает загрузчик Linux). Не смотря на то, что LILO для многих пользователей Linux подходящий вариант, я считаю, что GRUB - лучший выбор по нескольким причинам:

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

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

Как работает GRUB?

Когда компьютер загружается, BIOS передает управление первому загрузочному устройству, которое может быть жестким диском, дискетой, CD-ROM или другим устройством, распознаваемым BIOS. Для простоты будем считать, что это жесткий диск.

Первый сектор жесткого диска называется Master Boot Record (MBR) (Главная Загрузочная Запись). Длина этого сектора всего 512 байт. Он содержит небольшой фрагмент кода (446 байт), который называется основной загрузчик, и таблицу разделов (64 байта). Таблица разделов содержит описание первичных и дополнительных разделов жесткого диска.

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

GRUB заменяет код MBR по умолчанию собственным кодом.

При этом работа GRUB состоит из нескольких стадий.

Стадия 1: размещение в MBR. Из-за малого объема MBR размещается только ссылка для перехода к Стадии 2 , которая содержит все требуемые данные.

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

Еще существует Стадия 1.5 , которая используется, если загрузочная информация не может быть размещена непосредственно после MBR.

Структура Стадии позволяет GRUB иметь довольно большой объем (~20-30К). Поэтому GRUB достаточно сложный и хорошо конфигурируемый, по сравнению с большинством загрузчиков, которые более компактные и проще укладываются в ограничения для Таблицы Разделов.

Терминология GRUB

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

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

Вот, пример типичного начала GRUB:

(hd0,1)

  • Обязательные скобки, в которые должны быть заключены все устройства представленные в списке меню GRUB.
  • hd означает жесткий диск. Гибкий диск обозначается как fd , CD-ROM как cd и т.д.
  • Первый номер (целое число, для квалифицированных пользователей) - это ссылка на номер физического жесткого диска. Нумерация первого привода начинается с нуля. В качестве примера, hd2 ссылка на третий физический жесткий диск.
  • Второй номер, ссылка на номер раздела выбранного жесткого диска. Нумерация разделов тоже начинается с нуля. В этом случае, 1 соответствует второму разделу.

Отсюда следует, что в GRUB (меню) не различаются IDE и SCSI приводы или первичный и логический разделы. Задача определения какой жесткий диск или раздел должен быть загружен, определяется BIOS и на Стадии 1.

Как видите, условные обозначения очень простые.

Первичные разделы имеют обозначения от 0 до 3 (hd?,0) , (hd?,1) , (hd?,2) , (hd?,3) . Логические разделы в дополнительном разделе нумеруются начиная с 4 . Их нумерация не зависит от текущего количества первичных разделов на жестком диске. Например, (hd1,7) .

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

Также GRUB необходимо знать какой из образов операционной системы загружать. Эти параметры и специальные флаги (ключи) присваиваются каждому загрузочному устройству. Например, специальный флаг для Windows Safe Mode.

Здесь показан пример меню GRUB загружающего только Ubuntu.

Здесь показан пример меню GRUB для компьютера с тройной загрузочной конфигурацией (SUSE 10.2, Ubuntu 6.10 и Windows XP). Это реальный menu.lst на одной из моих действующих машин.

Попытайтесь понять, что означают эти данные. Считаются только незакомментированные строки. Комментарии обозначаются специальным символом # . Строки начинающиеся с нескольких последовательных серых x (индикатор предыдущей строки) являются продолжением предыдущей строки. Другими словами, текст просто перенесен на другую строку, чтобы улучшить зрительное восприятие на экране длинных строк, с учетом размеров окна текстового редактора и разрешения экрана.

Default 0 timeout 8

Первая строка (default 0) означает, что будет загружена первая операционная система из списка. В нашем случае, это SUSE 10.2. Вторая строка (timeout 8) сообщает сколько времени (в секундах) имеется у пользователя чтобы выбрать систему для загрузки до того как загрузится система по умолчанию. Просто, не правда ли?

Gfxmenu (hd0,2)/boot/message

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

Title openSUSE 10.2 root (hd0,2) kernel /boot/vmlinuz-... initrd /boot/initrd.img-...

Это первая операционная система в меню.

  • title (заголовок) - элементарно, означает тоже, что и его смысл. Эта строка предназначена помочь пользователю прочитать меню в более доступной терминологии.
  • root (hd0,2) указывает GRUB, где размещены его конфигурационные файлы. В этом примере они могут быть найдены на (hd0,2)/boot/grub .
  • kernel /boot/vmlinuz-... загрузка модуля ядра текущей операционной системы. Может быть доступно несколько подобных образов. Тот факт, что отсутствует ссылка на загрузочное устройство перед /boot/vmlinuz означает, что образ размещен на том же разделе жесткого диска, что и сам GRUB. Это обстоятельство часто определяет ваш выбор операционной системы, загружаемой по умолчанию.
  • initrd /boot/initrd.img-... является временным системным файлом, который создается системой при подготовке к загрузке. Подготовка включает в себя адаптацию универсального модуля ядра для конкретного оборудования, до его загрузки.

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

Title Ubuntu, kernel ... (/dev/sda9) kernel (hd0,8)/boot/vmlinuz-... initrd (hd0,8)/boot/initrd.img-...

  • В данном случае, title отображаемое имя, с некоторыми дополнительными техническими подробностями.
  • kernel (hd0,8)/boot/vmlinuz-... размещение 9-й раздел на первом жестком диске (hd0,8) . Флаг root (/dev/sda9) обозначает, что root раздел так же содержит в себе модуль ядра, то есть размещаются они на одном разделе жесткого диска. Обычно, это делается из соображений практичности и простоты. Вы можете изменить это размещение во время установки операционной системы.
  • initrd (hd0,8)/boot/initrd.img-... здесь ничего нового.

Замечания по разделам модулей ядра и корневому разделу: на старых компьютерах, BIOS которых не поддерживает доступ к более чем 1024 цилиндрам, вы должны были установить загрузочный раздел, содержащий модуль ядра и корневой раздел, в разных местах. Однако пользователи с компьютерами младше чем проблема Y2K (проблема 2000 года) могут не беспокоиться.

Другая вещь, на которую вы должны обратить внимание, это подробная загрузка Ubuntu. Ubuntu загружается с помощью загрузчика OpenSUSE. Это свойство называется совместимая мультизагрузка (Multi-boot Compliance). OpenSUSE распознает Ubuntu и может правильно вызвать ее модули (включая специальные ключи) и cмонтировать разделы. Однако большинство операционных систем лишь частично совместимы с данным свойством (Multi-boot Compliance).

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

Title Windows rootnoverify (hd0,0) chainloader (hd0,0)+1

  • rootnoverify (hd0,0) означает, что openSUSE не может определить Windows операционную систему, так как она не обладает свойством мультизагрузочной совместимости (Multi-boot Compliance). По этой причине операционная система вызывается без какой-либо дополнительной информации о ее ядре. GRUB предполагает, что требуемый образ ядра будет находиться на указанном разделе и монтирует загрузчик операционной системы. Как вы видите, Windows была установлена на первом разделе первого жесткого диска. Это самое удачное расположение системы.
  • Команда chainloader (hd0,0)+1 специально предназначается для применения с операционными системами, которые не могут быть непосредственно загружены. Не удивительно, что Windows операционные системы не могут быть загружены напрямую. Они загружаются с использованием метода chainloading . Как следует из названия, GRUB передает управление загрузочной последовательностью другому загрузчику, размещенному на устройстве, которое указано в меню GRUB. Это может быть Windows операционная система или любая другая, например, Linux.

Вернемся к Ubuntu. Вы, помните я говорил, что мы сможем загрузить Ubuntu другим способом? В самом деле, мы можем просто воспользоваться chainloaded, точно также как и для Windows.

Title Ubuntu root (hd0,8) chainloader (hd0,8)+1

Это будет работать также хорошо.

Следующий пункт в меню позволяет вам загрузить SUSE в защищенном (failsafe) режиме (разновидность безопасного режима). Этот пункт не содержит очень ценной и полезной информации, поэтому пропустим его, без ущерба для наших знаний.

Позвольте привести несколько примеров.

Приведенный ниже действующий пример, который записан в Ubuntu menu.lst (конечно, закомментирован).

Title Windows 95/98/NT/2000 root (hd0,0) makeactive chainloader +1 title Linux root (hd0,1) kernel /vmlinuz root=/dev/hda3 ro

Теперь вы можете легко понимать язык GRUB. Мы начали с title . root определенный раздел на котором мы рассчитываем найти ядро Windows и смонтировать его (rootnoverify эта работа будет предоставлена загрузчику Windows). makeactive команда, которая делает активным раздел с корневой директорией на диске, указанном в предыдущей строке GRUB root device . Это означает, что команда chainloader выполняется без указания целевого раздела системы (так как этот раздел совпадает с активным).

Второй пункт меню еще проще. Мы назвали его Linux, определили его раздел и загружаем его ядро. Этот случай очень интересный. Так как образ ядра и корневой раздел (root или /) находятся на разных разделах. Этот случай очень похож на случай со старыми компьютерами или компьютером с одним загрузочным разделом.

И наконец, совершенно безумные вещи:

Вы понимаете, что все просто! Когда вы набьете руку, все сомнения исчезнут.

Для получения дополнительной информации, вам необходимо обратиться к GNU GRUB Manual 0.97 .

Конфигурация GRUB

Большую часть времени, у вас не будет желания или необходимости конфигурировать GRUB. Когда вы устанавливаете операционные системы, GRUB будет устанавливаться автоматически и соответствующие строки будут добавлены в конфигурационный файл, особенно, если выбрана правильная последовательность установки операционных систем (авторитарные, то есть Windows подобные операционные системы, - первыми, гибкие операционные системы, то есть Linux и его семейство, - после).

Тем не менее, вам необходимо знать где и что нужно делать, если что-то пойдет не так.

Установка GRUB

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

Ранее мы не устанавливали GRUB, поэтому нам необходимо знать местонахождение требуемых файлов.

Если GRUB установлен, то его меню находится внутри корневого раздела:

/boot/grub/menu.lst

Всегда, всегда делайте резервную копию этого файла перед любыми изменениями!

Так же GRUB файлы могут находиться внутри образа вашей операционной системы (как правило, CD):

/usr/lib/grub/i386-pc

Тем не менее здесь приводится ее краткая версия, для тех кого не радует чтение еще одной статьи.

Вы можете вывести на экран любую информацию о среде вашего ПК (персональный компьютер), используя терминал или текстовый редактор. Чтобы открыть файлы в текстовом редакторе необходимо указать в командной строке текстовый редактор, имя файла и путь к нему. Для открытия системных файлов необходимо иметь права суперпользователя (su или sudo для системных файлов).

$ sudo vi /etc/fstab ИЛИ $ sudo gedit /etc/fstab

Или вы можете просто вывести на экран содержимое файлов прямо в терминале с помощью команды cat .

$ (sudo) cat /etc/fstab

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

Выводит на экран таблицу разделов:

$ fdisk -l

Выводит на экран список монтированных разделов:

$ cat /etc/fstab

Сейчас мы знаем что нужно, и где это найти, для того чтобы установить GRUB.

GRUB на флоппи диске

Для того чтобы установить GRUB на флоппи диск, мы должны скопировать файлы (Стадия 1 и Стадия 2) из директории образа операционной системы, в первый и второй сектор флоппи диска. Для этого будем использовать команду , которая копирует информацию посекторно.

Ниже приводится список команд, которые необходимо выполнить (они взяты из руководства):

$ cd /usr/lib/grub/i386-pc $ dd if=stage1 of=/dev/fd0 bs=512 count=1 $ dd if=stage2 of=/dev/fd0 bs=512 seek=1

Небольшое пояснение: if обозначает файл ввода, of обозначает файл вывода, /dev/fd0 ссылка на первый смонтированный дисковод флоппи дисков, bs заданный размер блока (в байтах), count инструкция, указывающая на количество блоков, которое должно быть скопировано, и seek указывает сколько блоков будет пропущено перед записью. Неудивительно что выбрана такая последовательность команд записи. В начале мы записали stage1 в первый сектор и скопировали stage2 во второй (пропустили первый сектор и затем записали).

Теперь, когда вы поняли всю мощь командной строки, в качестве домашней работы, предлагаю вам самим разобраться с особенностями других команд. Более подробно о команде dd на Wikipedia .

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

Установка GRUB по умолчанию

Установка по умолчанию означает размещение GRUB Стадия 1 в первом секторе на жестком диске (Главная Загрузочная Запись - MBR или Таблица Разделов). Это значит, что вы сможете загрузиться без второго устройства, подобного флоппи диску, который стал редким в наши дни. Так же это означает, что если вы установите авторитарную операционную систему позже (подобную Windows) или восстановите главную загрузочную запись по какой-то причине (запустите fdisk /MBR из командной строки DOS) , вы удалите GRUB и сделаете не загружаемыми все системы, представленные в menu.lst.

Для установки GRUB в MBR вам необходимо загрузиться с внешнего носителя (флоппи диск, live CD Linux). После загрузки, как только будет доступно приглашение на ввод команды GRUB (grub>), выполните следующие команды:

Найдите корневое устройство GRUB:

Grub> find /boot/grub/stage1

GRUB будет искать все доступные Стадии 1 и отобразит их на экране. Если у вас имеется более одного образа операционной системы (например, SUSE, Kubuntu, Mandriva), вам будут доступны несколько Стадий 1 .

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

  • SUSE на (hd0,1)
  • Kubuntu на (hd0,2)
  • Mandriva на (hd0,4)

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

Если вы хотите использовать SUSE GRUB, вам необходимо сделать корневым устройством GRUB (GRUB root device) первый раздел жесткого диска (hd0,1) :

Grub> root (hd0,1)

Если вы хотите использовать Mandriva"s GRUB , необходимо сделать следующее:

Grub> root (hd0,4)

Если вам известно размещение корневого раздела GRUB и необходимых файлов, то можете обойтись без команды find.

Если вы определили корневой раздел, вам необходимо записать информацию в MBR (Главную Загрузочную Запись):

Grub> setup (hd0)

И наконец, выйдите из GRUB консоли:

Grub> quit

Вот вся последовательность команд, которую вам необходимо выполнить:

Grub> find /boot/grub/stage1 (optional) grub> root (hdX,Y) grub> setup (hd0) grub> quit

Вы можете установить GRUB на другой физический диск или раздел. В этом случае вам нужно будет осуществить последовательную загрузку (chainload), то есть необходимо передать управление от GRUB другому загрузчику, который выполнит загрузку системы вместо него.

Это все. Просто и быстро!

Установка GRUB с помощью grub-install

Этот метод считается менее безопасным (согласно руководству), так как осуществляет автоматическое преобразование дисков. Можете успокоиться, для полных новичков, которым нужна подробная помощь при установке, это, наверное, самый предпочтительный метод.

Вам нужно вызвать только одну команду с одним аргументом - указать размещение, куда должен быть установлен загрузчик. Эта команда может быть записана несколькими способами, которые эквивалентны:

$ grub-install /dev/hda $ grub-install /dev/hd0 $ grub-install "(hd0)" $ grub-install hd0

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

Настройка GRUB вручную (после установки)

Вы можете переконфигурировать или переустановить GRUB в любой момент.

Резервное копирование!

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

$ cp /boot/grub/menu.lst /boot/grub/menu.lst_backup

Для получения доступа к GRUB выполните следующую команду в Linux терминале:

$ sudo grub

Через какое-то время, приглашение GRUB будет показано на экране. Наличие приглашение вы можете определить по его виду: grub> .

Также вы можете получить доступ к командной строке GRUB во время загрузки. Когда меню GRUB загружается, нажмите кнопку C на клавиатуре.

Добавление новой операционной системы в меню GRUB

Предположим, вы имеете ранее установленную операционную систему Sabayon (Sabayon Linux ранее известный как RR4 и RR64 - дистрибутив на ядре Linux, представляющий собою форк дистрибутива Gentoo). В процессе установки вы пропускаете установку GRUB. Это означает, что конфигурационные файлы ранее установленного GRUB не изменились и не содержат данных о Sabayon. И Sabayon не сможет быть загружен.

Примечание: Разделы GRUB меню названы комнатами (возможно это особенность данного экземпляра?).

Таким образом, нам необходимо добавить Sabayon в конфигурационный файл GRUB.

Если вы знаете, где Sabayon был установлен, то вам надо добавить его данные в menu.lst.

Title Sabayon root (hdX,Y) chainloader +1

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

Grub> root (hdX,Y) grub> chainloader +1

При желании вы можете использовать команду find , чтобы узнать требуемые данные.

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

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

Типичные проблемы

Как восстановить GRUB после удаления?

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

Простой способ

Сложный способ

  • Загрузитесь с флоппи диска или CD (любой Linux live CD должен подойти)
  • Войдите в режим командной строки GRUB.
grub> find /boot/grub/stage1 (optional) grub> root (hdX,Y) grub> setup (hd0) grub> quit

Все тоже самое, что и раньше!

Windows установлена не на первом жестком диске (Своппинг)

GRUB не может загрузить напрямую операционную систему Microsoft. Иногда даже последовательная загрузка может не работать, особенно, если Windows установлена не на первом жестком диске. И снова вы должны помнить, что нужно устанавливать Windows первой, на первый жесткий диск и на первый раздел (правило 3П - трех первых). При этом, даже если вы установили Windows на отдельном диске, вы можете решить проблему с помощью своппинга.

Вам необходимо сделать виртуальный своп между жесткими дисками. Таким образом:

Grub> map (hd0) (hd1) grub> map (hd1) (hd0)

После добавления этих двух строк, вы должны загрузить Windows (или DOS).

Несколько Windows операционных систем установлены на одном первом жестком диске (Скрыть/Показать)

С Windows опять могут возникнуть проблемы, если имеется несколько экземпляров размещенных на одном жестком диске, в особенности, если они установлены на первичных разделах. Раньше, когда вы использовали команду chainloader (последовательная загрузка), вы передавали управление начальному загрузчику Windows. Какому загрузчику операционной системы передать управление сейчас?

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

Приводимый здесь пример, взят из руководства, он демонстрирует этот момент.

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

Grub> unhide (hd0,0) grub> hide (hd0,1) grub> rootnoverify (hd0,0) grub> chainloader +1 grub> makeactive

Вы изменили размер раздела; GRUB не работает

Это интересный случай. Он может случиться после использования программного обеспечения для работы с жесткими дисками (управление разделами жесткого диска, восстановление разделов из образов разделов, и т.д.), которое изменяет Таблицу Разделов. Обычно это случается, когда вы делаете такие изменения из Windows. Linux не будет информирована об этих изменениях, потому что Windows не обращает внимания ни на что, кроме имеющихся на этой машине продуктов Microsoft. Следовательно, GRUB не будет работать.

Скорее всего повреждена файловая система и ее необходимо восстановить для решения данной проблемы.

Загрузитесь с live CD и выполните следующие команды (предполагается что вы знаете, где размещены Linux-разделы).

Выполните проверку файловой системы:

$ fsck.ext2 /dev/hdXY

Замените X и Y буквой жесткого диска и номером раздела, который вы хотите проверить (hda2, hdb3, и т.д.).

Измените тип файловой системы на файловую систему ext2/3 .

$ tune2fs -j /dev/hdXY

Теперь монтируйте корневую файловую систему на /mnt/sysimage и запустите grub:

$ mount -t ext2 /dev/hdXY /mnt/sysimage ИЛИ $ mount -t ext2 /dev/hdXY /mnt/sysimage $ cd /mnt/sysimage/sbin $ grub

Вы снова вернулись в знакомую среду.

Для получения дополнительной информации о командах Linux, например, fsck.ext2 , tune2fs и других, обратитесь к Manual pages на Linux Reviews .

В заключение, несколько каверзных вопросов, отвеченных в Ubuntu

Восстановление GRUB – достаточно распространенная операция, с которой приходится сталкиваться многим. Загрузчик повреждается или затирается при установке Windows в качестве второй системы. Не имеет значения, какая сборка Linux стоит – Ubuntu, Mint, Debian или любая другая: восстановить GRUB можно через терминал или с помощью специальной утилиты.

Восстановление через терминал

Windows не дружит с Linux, поэтому если вы ставите систему от Microsoft после Ubuntu, Mint 17 или другой линуксовской сборки, то будьте готовы к тому, что загрузчик затрется. Чтобы не теряться в этой ситуации, распечатайте инструкцию и храните её возле компьютера.

После перезаписи загрузчика необходимо перезагрузить компьютер, используйте команду «sudo reboot». После перезагрузки должно появиться окно выбора операционной системы. Если GRUB был перезаписан в результате установки новой версии Windows, но в окне выбора системы продолжает отображаться старая версия, то нужно выполнить обновление загрузочной записи. Для этого загрузитесь в Ubuntu и выполните в терминале команду «sudo update-grub».

Использование утилиты восстановления

Если работа с терминалом кажется сложной, можно автоматизировать процесс восстановления, использовав специальную утилиту boot-repair.

Запустите сборку Linux с флешки или диска. Откройте терминал и выполните последовательно три команды:

  • sudo add-apt-repository ppa:yannubuntu/boot-repair.
  • sudo apt-get update.
  • sudo apt-get install boot-repair.

Установленная программа будет иметь название «Восстановление загрузчика». Запустите утилиту (выполните «boot-repair» в консоли) и выберите режим работы. Новичкам подойдет «Рекомендуемый способ восстановления». После запуска этого режима GRUB будет автоматически восстановлен.

Есть и топорный способ восстановления GRUB – переустановка Linux. Многие новички используют этот радикальный метод, лишь бы не связываться с терминалом. Однако переустановка приводит к удалению пользовательских файлов, поэтому применять её из-за банального повреждения загрузчика – слишком большая роскошь.

Ubuntu, как и многие другие дистрибутивы Linux в качестве загрузчика системы используют GRUB2. Если GRUB2 «ломается», например, если вы установите Windows после установки Ubuntu, либо при перезаписи MBR - загрузить Ubuntu вы не сможете.

GRUB2 можно запросто починить с помощью Live CD Ubuntu или USB-флешки. Этот процесс отличается от восстановления загрузчика GRUB Legacy на старых дистрибутивах Linux.

Описанный ниже процесс должен работать со всеми версиями Ubuntu. Он был протестирован на версиях Ubuntu 16.04 и Ubuntu 14.04.

Способ с использованием графического интерфейса: Boot Repair###

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

Если у вас есть носитель, с которого вы устанавливали Ubuntu, вставьте его в компьютер, выполните перезагрузку и загрузитесь со сменного носителя. Если носителя у вас нет, загрузите Live CD Ubuntu и запишите его на диск или создайте загрузочную USB-флешку .

При загрузке, нажмите «Попробовать Ubuntu» (Try Ubuntu), чтобы загрузить работоспособное окружение рабочего стола.

Перед тем как продолжить, убедитесь, что у вас работает подключение к интернету. Возможно, потребуется выбрать сеть Wi-Fi и ввести пароль.

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

Sudo apt-add-repository ppa:yannubuntu/boot-repair sudo apt-get update sudo apt-get install -y boot-repair boot-repair

Boot Repair автоматически просканирует систему после запуска команды boot-repair . После этого, щелкните кнопку Recommended repair для восстановления GRUB2 .

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

Boot Repair начнёт работать. Возможно, появится запрос открыть терминал и скопировать/вставить несколько команд.

Просто следуйте инструкциям на экране. Выполните все инструкции Boot Repair и щёлкните Forward чтобы перейти к следующему экрану. Утилита проведёт вас через все необходимые действия для восстановления.

После того, как Boot Repair закончит работу, перезагрузите компьютер. Ubuntu должна будет нормально запуститься.

Способ с использованием терминала

Если же вы не боитесь «запачкать руки», вы можете починить систему через терминал. Вам потребуется загрузиться с Live CD или USB-флешки, так же, как в способе, описанном выше. Убедитесь, что версия Ubuntu на диске совпадает с версией, установленной на компьютере. Например, если у вас была установлена Ubuntu 14.04, следует использовать Live CD Ubuntu 14.04.

После загрузки системы откройте терминал. Определите раздел диска, на котором установлена Ubuntu с помощью одной из следующих команд:

Sudo fdisk -l sudo blkid

Ниже приводится вывод обеих команд. В случае команды fdisk -l , раздел Ubuntu можно определить по слову Linux в колонке System . В случае использования команды blkid , раздел определяется по использованию файловой системы ext4 .

Если на компьютере имеется несколько разделов Linux в формате ext4 , обратите внимание на их размер и порядок, в котором они представлены в списке.

Выполните следующие команды для монтирования раздела Ubuntu в /mnt/ubuntu , заменив /dev/sdX# на имя устройства, на котором установлен ваш раздел Ubuntu, определенный выше:

Sudo mkdir /mnt/ubuntu sudo mount /dev/sdX# /mnt/ubuntu

На примере выше раздел Ubuntu находится на /dev/sda1 . Это первый раздел на первом жёстком диске.

Важно! Если у вас имеется отдельный загрузочный раздел, пропустите команду выше и монтируйте загрузочный раздел в /mnt/ubuntu/boot . Если вы не знаете, есть ли у вас отдельный загрузочный раздел, то скорее всего его нет =).

Выполните следующую команду для повторной установки GRUB2 с Live CD, заменив /dev/sdX на имя жёсткого диска выше. Не указывайте номер. Например, если выше вы использовали /dev/sda1 , введите просто /dev/sda .

Sudo grub-install --boot-directory=/mnt/ubuntu/boot /dev/sdX

Выполните перезагрузку, Ubuntu должна нормально загрузиться.

Для получения подробной информации о том, как использовать команду chroot для получения доступа к повреждённым системным файлам Ubuntu и восстановления GRUB2, смотрите вики-страницу Ubuntu (на англ. языке).