Grub не видит Windows 10

Grub не видит windows 10

Grub не видит windows 10

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

Многие на сегодняшний день использую операционную систему Linux. Она обладает многими преимуществами перед ОС Windows, одно из самых главных – её полная бесплатность и открытость архитектуры. Но за все необходимо платить, и сосуществование данных ОС на одном ПК сопряжено с определенными конфликтами.

Именно поэтому удалить одну из ОС без последствий для второй довольно проблематично. Особенно, если требуется удалить загрузчик Grub, а Windows оставить невредимой.

Чаще всего загрузчик Grub имеет следующий вид:

Что такое Grub?

Для того чтобы понять, как удалить загрузчик Grub необходимо знать, что же это такое. Аббревиатура Grub на английском языке полностью звучит как GRand Unified Bootloader. Что обозначает – загрузчик операционной системы. Он спроектирован компанией GNU.

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

Grub 2 (последняя версия загрузчика, разработанная компанией) поддерживает множество операционных систем:

Но даже если система, которую необходимо запустить, не поддерживается, загрузчик Grub может передать выполнение запуска ПК другому. Например, в Windows это NTLDR. Также возможен пуск MS-DOS, OS/2 и других подобных ОС.

Возможности рассматриваемого загрузчика довольно широки:

  • Grub 2 имеет многомодульную конструкцию. Именно поэтому в него можно добавить все, что угодно. Вплоть до игр;
  • внешний вид загрузчика может быть легко изменен. Он может быть в формате черно-белой таблицы,

либо иметь стильный дизайн;

  • поддерживается возможность загрузки Mac OS;
  • возможна нормальная работа таких файловых систем, как FAT 16, FAT 32, NTFS, ext(все версии), XFS, ISO.

 

Удаление Grub и методы его восстановления

Множество пользователей задаются вопросом – как удалить GNU Grub? Сделать это довольно просто, но метод и необходимые приложения различны для разных случаев. Также часто возникает ситуация, когда Grub удален случайно, и для нормальной работы компьютера очень важно корректно восстановить загрузчик.

Сделать это можно несколькими способами:

  • с помощью установочного диска Linux;
  • используя загрузочную флешку, на которой присутствует Linux;
  • когда на одном из разделов диска имеется дистрибутив загрузчика.

Видео: установка Ubuntu 10.10 на Windows XP и восстановление загрузчика GRUB

Восстановление при помощи режима Rescue Mode

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

Необходимо выбрать первую команду. Она будет выглядеть следующим образом — is /boot/grub. В ответ ПК выдаст список всех находящихся в директории файлов.

Далее появляется возможность подгрузить следующие модули:

Возможно ли, вернуть в рабочее состояние плеер. Читать в статье, iPad mini не видит WIFI

Как настроить роутер ASUS WL 520GC на Windows 7? Читать подробно.

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

Восстановление Grub при помощи USB-флешки

Запускаем систему с USB. При помощи комбинации клавиш Alt+F2 включаем терминал. Когда он будет открыт, необходимо отдать ПК команду gnome-terminal. После этого важно ознакомиться с таблицей разделов.

Для этого нужно выполнить команду sudo fdisk -1. На экране должна появиться таблица следующего вида:Когда известен раздел, в котором находится операционная система (в данном случае это sda1) можно приступать к восстановлению загрузчика

(помимо самого загрузчика будут отремонтированы несколько дополнительных директорий).Команда sudo chroot /mnt позволит перейти в окружающую среду chroot.

И последний этап восстановления загрузчика – выполнение команды grub-instal /dev/sda. Если при восстановлении возникли какие-либо проблемы, можно воспользоваться следующими командами:

Если установлена Windows XP

Если на компьютере установлена Windows XP, то удаление загрузчика Grub не представляет собой ничего сложного. Достаточно лишь запустить какой-либо менеджер разделов жесткого диска, и удалить все компоненты, помеченные ext. Оптимальное в этом отношении приложение – Power Quest PartitionMagic 8.0. Оно имеет следующий вид:

В нижней части присутствует полоса, она обведена разными цветами. Сиреневый и бардовый обозначают разделы, используемые Linux. Их необходимо удалить. После этого Вы получите свободное место, неразмеченную область. Она будет выделена серым цветом.

Далее компьютер перезагружается. На экране монитора можно будет увидеть сообщение – NTLDR is missing.

Что означает невозможность загрузки ОС Windows по причине отсутствия необходимых файлов. Для их восстановления необходимо запустить «Консоль восстановления».

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

Когда консоль восстановления запущена, можно приступать непосредственно к восстановлению загрузчика Windows:

  • появляется сообщение «В какую копию выполнить вход?». Ставим цифру 1;
  • далее консоль попросит ввести пароль администратора;
  • водим команду под названием fixmbr. Она восстановит таблицу разделов, перезапишет загрузочную область;
  • • консоль потребует подтверждения, ставит букву «Y»;
  • • после этого новая загрузочная область будет полностью создана заново;
  • • последний этап – вводим команду FixBoot. Новый загрузочный сектор записывается на основной диск(http://alexzsoft.ru/wp-content/uploads/2012/07/5.jpg);

Выполняется перезарузка ПК, и операционная система Windows XP должна запуститься без каких-либо проблем.

Новый запуск Ubuntu Grub возможен только после повторной установки Linux на вновь созданный раздел.

Установлена Windows 7 или 8

Если на вашем ПК установлена Windows старше Vista, то имеется чрезвычайно простой способ удалить загрузчик Grub без различных ухищрений – создания загрузочных флешек, запуска консоли и других сложных действий. Сделать это можно без диска с дистрибутивом Windows.

  • нажимаем кнопку «Пуск»-> «Выполнить»;
  • в появившемся поле следует написать list disk, нажать Enter;
  • появляется списков всех имеющихся на ПК устройств;
  • вбиваем в имеющемся поле команду «select disk», добавляем номер диска, на котором следует удалить загрузчик Grub, нажимает Enter;
  • появляется надпись о выборе диска;
  • отдаем компьютеру команду «clean», нажимает Enter (mbr удаляется, диск становится неразмеченным).

Установлена FreeDOS

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

Выполняется эта операция следующим образом:

  1. запускаем FreeDos;
  2. просматриваем содержимое имеющихся на ПК дисков, а также присутствующего на нем содержимого. Делает это при помощи команды dir;
  3. когда загрузочный сектор обнаружен, необходимо полностью отформатировать раздел, на котором он находится – сделать это можно при помощи команды FORMAT (пример: format c:).

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

Удаляем Grub4Dos

Удалить данный загрузчик довольно просто. Необходимо лишь ввести в командной строке следующее: sudo apt-get purge grub2 grub-pc. После этого данный загрузчик просто удалит сам себя.

Не знаете, как установить параметры IP-TV для роутера? Все в инструкции по настройке IPTV для Билайн через роутер.

Используете интернет от Yota — настройте роутер легко. Инструкция тут.

Интересует, как настроить ADSL модем в режиме роутера, ответ здесь.

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

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

Grub 2 или же более ранняя версия данного загрузчика – довольно просты в настройке. Для её осуществления не нужно быть многоопытным айтишником, достаточно просто знать несколько команд. Удаление или установка также не представляет собой большой сложности. Важно лишь быть максимально внимательным при выполнении всех операций, делать все согласно идущего в комплекте с загрузчиком руководства.

Предыдущая статья: Ошибка аутентификации WI FI

Следующая статья: iPhone не подключается к WI FI

Необходимые инструменты для создания двух-загрузочной системы

1. Загрузочный дистрибутив операционной системы семейства Linux.

2. Программа EasyBCD для настройки загрузчика.

Ситуация: Предположим, у Вас установлена операционная система Windows 7 / 8.1 / 10, и жесткий диск разделен на два или более разделов.

Если раздел у вас только один используйте “Пошаговая видео-инструкция по работе с Acronis Disk Director” для создания второго раздела на жестком диске.

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

Удалить раздел можно из операционной системы Windows используя штатную программу “Управление дисками”, или стороннею программу по работе с жестким диском, или установщиком “Linux”.

Установка Linux

Вставляете загрузочный диск с дистрибутивом ОС Debian в привод DVD-ROM и перезагружаете компьютер. Предварительно необходимо выставить в БИОС загрузку с DVD-ROM.

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

Разметка дисков

1. Выберите пункт “Вручную” и нажмите кнопку “Продолжить”

2. Вы увидите список разделов, выберите “Свободное место” и нажмите кнопку “Продолжить”.

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

3. Выберите пункт “Автоматически разметить свободное место” и нажмите кнопку “Продолжить”.

4. Выберите пункт “Все файлы в одном разделе” и нажмите кнопку “Продолжить”.

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

Установщик, автоматически создал два раздела из свободного места.

5. Выберите пункт “Закончить разметку и записать изменения на диск” и нажмите кнопку “Продолжить”.

Обратите особое внимание на номер и название устройства корневого каталога, куда будут установлены все файлы и с которого будет загружаться операционная система Linux Debian.

Эта строчка “/dev/sda5” путь к корневому разделу, которая нам понадобится при установке загрузчика GRUB. Естественно, у Вас номер и название разделов может отличатся.

6. Выберите точку “Да” и нажмите кнопку “Продолжить”. После нажатия, все изменения будут применены, то есть физически в таблицу разделов будут внесены записи.

Мы пропустим этапы выбора программного обеспечения, если не уверены в себе, просто оставляйте все по умолчанию и нажимайте кнопку “Продолжить”.

Установка загрузчика

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

1. Отказываемся устанавливать загрузчик GRUB в главную загрузочную запись. Выберите точку “Нет” и нажмите кнопку “Продолжить”.

2. Введите путь “/dev/sda5” к корневому каталогу и нажмите кнопку “Продолжить”.

3. Нажмите кнопку “Продолжить”. Если Вы правильно указали номер раздела, установщик завершит работу и компьютер перезагрузится.

Не забудьте вынуть загрузочный дистрибутив из привода DVD-ROM.

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

Установка и настройка программы EasyBCD

Загрузившись в операционную систему Windows, установите программу EasyBCD. Процесс установки программы стандартный, скачайте, разархивируйте и запустите установочный файл EXE.

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

1. Запустите программу и выберите инструмент “Добавить запись”. Затем перейдите на вкладку “Linux/BSD”.

2. Установите Тип: GRUB2, Имя: Debian 6.05 или любое, Диск: Раздел 5 (Linux – 15 ГБ).

Вам нужно выбрать из выпадающего списка тот раздел на который вы установили Linux, или если вы не уверены что указали правильно, выберите пункт по умолчанию “Автоматически найти и загрузить”.

3. Нажмите кнопку “Добавить” и подождите пока программа сохранит настройки. Затем программу можно закрыть и перезагрузить компьютер.

На этом установка операционной системы Linux, и настройка загрузчика с помощью программы EasyBCD закончена.

P.S Если по какой-либо причине Вам надоест Linux, то загрузившись в Windows просто удалите или отформатируйте раздел на котором он установлен, затем запустив программу EasyBCD отредактируйте меню загрузки.

Автор: Ruterk8 декабря 2015 г.

Программа NeoSmart EasyBCD 2.3

  1. Восстановление загрузки Windows Vista и создание загрузочного меню
  2. Как восстановить загрузку операционной системы Windows 7
  3. Как установить драйвер мастером установки Windows
  4. Как установить и настроить почтовую программу The Bat! в Windows 10
  5. Как установить драйвер

Восстановление загрузчика Windows Vista и Windows 7. Удаление Grub.

, по интересу: Новости. Дата: 02.12.2008

Здравствуйте, дорогие посетители=)

Вчера закончились мои Линукс скитания, и я вернулся на всем известную Винду=).

Не скажу что линукс плох, нет, хороший, но подтормаживание убунты, из – за моих не самых прямых рук в этом деле, меня достали, попытки обновления до 8.10 через инет не привели к успеху, а опробованная СюЗи с гномом мне не понравилась. Перезагрузив систему, я вошел в немного забытую, но интуитивно привычную среду Windows Vista. Затер разделы с линуксом, расширил партиции нтфс, и долго откладывал перезагрузку системы. Но её пришлось произвести.

После перзагрузки мне конечноно же улыбнулось: GRUB error =)Че делать? Грузанулся с диска с вистой, выбрал режим восстановления, выбрал коммандную строку, вбил туда:x:bootbootsect.exe /nt60 all

Тем самым обновив бутсектора, ребутнулся, а в результате тот-же GRUB Error. Че делать? Гуглить=) Нагуглил я конечно же про fixboot и fixmbr, только вот в коммандной строке восстановления системы висты эти команды не стоят и гроша, в отличии от windows xp. Но выход всегда есть: правильно надо было писать так:bootrec.exe /fixmbrbootrec.exe /fixboot

или вместо bootrec.exe, просто bootrec

После этих комманд от Груба не осталось и следа, и загрузка пошла по верному пути.

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

Источник:http://comp.bigbuilder.info/windows-10/grub-ne-vidit-windows-10/

Как установить grub после установки Windows 10

Недавно я установил Linux Mint (KDE Plasma) на свой SSD (раздел 30 ГБ), после чего я установил Windows 10 на оставшееся хранилище. Но когда я попытался загрузить в Linux Mint, мой компьютер автоматически загрузил Windows 10 без указания параметров загрузки для выбора ОС. Теперь, как установить GRUB на главную загрузочную запись (MBR) моего SSD для загрузки обеих ОС.

Сначала загрузите загрузку в систему Linux Mint, используя внешний Live CD/USB-накопитель, затем выполните следующие команды, чтобы переустановить GRUB на MBR.

смонтируйте свой Linux установленный раздел на какую-нибудь точку монтирования. здесь XY — это номер вашего дистрибутива Linux.

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

Теперь измените корень на вновь созданный каталог разделов.

Теперь установите GRUB, используя команду grub-install на вашем HDD MBR.

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

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

Что это, надеюсь, это поможет !!

Windows будет перезаписывать загрузочный сектор всякий раз, когда вы его устанавливаете. Обычно устанавливают окна сначала, затем linux. Вы можете восстановить grub путем загрузки с живого диска Linux Mint, и там должен быть вариант для восстановления-загрузки, который будет восстанавливать ваш grub. Перезагрузите его, и теперь вы сможете увидеть обе ОС.

Или вы можете загрузиться с живого компакт-диска и выполнить следующие шаги:

  • Загрузитесь с живого компакт-диска (CD/DVD или флеш-накопителя).
  • Станьте root или используйте sudo с приведенными ниже командами.
  • Перечислите доступные разделы, если необходимо: fdisk -l
  • Windows почти наверняка существует на /dev/sda1: mount/dev/sda1/mnt
  • Переустановите GRUB в MBR: grub-install — -r oot-directory =/mnt//dev/sda
  • Перезагрузка: завершение работы -r сейчас
  • Восстановить меню GRUB: update-grub

Спасибо @christopher за вышеупомянутый ответ.

Источник:http://qaru.site/questions/6027421/how-to-install-grub-after-installing-windows-10

Восстановление загрузчика GRUB

Contents

Обзор

Как и в случае с любой другой операционной системой Linux, GRUB (GRand Unified Bootloader) умеет загружать Manjaro. Если по какой-то причине ваш GRUB не работает (из-за того, что поврежден, неверно сконфигурирован или даже удален), не нужно переустанавливать Manjaro. Вместо этого GRUB можно полностью починить и восстановить в рамках установленной системы Manjaro. Для этого необходимо использовать установочный носитель Manjaro — CD/DVD или накопитель USB.

Загрузитесь с установочного носителя Manjaro

1. Вставьте установочный носитель Manjaro и выполните загрузку с него.

2. Выберите язык (F2) и раскладку клавиатуры (F3).

3. Загурзите Manjaro Linux. Не имеет значения, какую опцию загрузки вы выберете, так как установочный носитель будет применён только для исправления или восстановления GRUB, а не для установки системы.

4. Откройте терминал или получите доступ к командной строке live CD.

  • Из графической среды рабочего стола: откройте из меню терминал и наберите в нём sudo su.
  • Из командной строки NET-Edition или при использовании опции Boot in Text mode: введите стандартное имя пользователя root и пароль «manjaro» для входа.

Сделайте chroot в вашу установленную на компьютер Manjaro

Существует 2 способа осуществить chroot в существующую установку Manjaro: используя mhwd-chroot или вручную. Выберите один из них:

Использование mhwd-chroot

1. Сначала воспользуйтесь приложением gparted из Меню > Система > GPartEd. Оно предоставляет простой визуальный обзор разделов на вашем жёстком диске (или нескольких дисках).

Или можно использовать

для вывода списка всех ваших разделов.

2. mhwd-chroot — это инструмент, упрощающий chroot в установленный Linux с live-носителя Manjaro. Установите его командой

Запустите mhwd-chroot из стартового меню или в терминале одной из следующих команд:

Затем выберите корневой раздел вашей установленной на компьютер Manjaro.

Идентификация и подготовка установленных разделов вручную

1. Убедитесь, что вы используете учётную запись Root. Это можно определить по символу решётки (‘#’) вместо доллара (‘$’) в начале командной строки. Чтобы переключиться на учётную запись Root, введите команду:

2. Просмотрите список разделов. Это необходимо для идентификации раздела, в который установлена ваша система Manjaro. Если вы используете отдельный раздел boot, его также необходимо идентифицировать. Для получения списка разделов введите команду:

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

  • /dev/sda1: раздел boot
  • /dev/sda2: раздел подкачки
  • /dev/sda3: система Manjaro
  • /dev/sda4: место для личных файлов пользователей.

Если вы не уверены, можно воспользоваться приложением gparted, которое можно найти в Меню > Система > GPartEd. Оно предоставляет простое визуальное отображение разделов на жёстких дисках. Если существует отдельный раздел для GRUB, то он должен быть помечен как ‘bootable’ и иметь размер около 100 МБ.

3. Смонтируйте системный раздел Manjaro. Синтаксис команды таков:

В данном примере, поскольку системный раздел Manjaro — это /dev/sda3, он монтируется следующей командой:

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

В данном примере отдельный раздел —/dev/sda1— используется для GRUB, и он будет смонтирован следующей командой:

4. Перейдите в корневой каталог ваших смонтированных разделов.

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

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

Вначале установите приложения mtools и os-prober. mtools — это набор инструментов для доступа к дискам MS-DOS из GNU/Linux и Unix без их монтирования. os-prober — это утилита, определяющая, имеются ли на компьютере другие операционные системы. Установите их обе следующей командой:

Для систем с BIOS

1. Установите новый загрузчик GRUB следующей командой:

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

3. И, наконец, обновите конфигурацию только что установленного загрузчика GRUB:

Готово! Теперь закройте терминал и перезагрузите систему, чтобы использовать ваш восстановленный GRUB.

Для систем с UEFI

1.) Первым делом проверьте разделы на наличие ESP (EFI System Partition, т.е. системного раздела EFI). ESP — это раздел fat32, содержащий файлы .efi для загрузки.

Это можно проверить с помощью Gparted или из консоли, с помощью fdisk -l

(Примечание: Если у вас нет раздела EFI, нужно будет создать его. Используйте для этого Gparted.

Размер — от 512 МБ до 1 ГБ)

2.) Создайте каталог /boot/efi

3.) Смонтируйте раздел EFI, как /boot/efi

X = буква диска = a,b,c . Y = номер раздела EFI = 1,2,3,4.

4.) Переустановите GRUB.

5.) Обновите конфигурационный файл GRUB.

Примечание

Если вы получите сообщение типа

То установите пакеты efibootmgr , dosfstools и grub и попробуйте повторить шаги 4 и 5.

Если это не помогло, то попробуйте выйти из среды chroot, набрав exit, а затем загрузить модуль efivarfs:

и, снова в chroot,

А если вы получите что-то вроде

то это будет означать, что вы, возможно, забыли chroot.

Альтернативный метод

Смонтируйте корневой раздел ext4 Manjaro, как /install

Смонтируйте EFI-раздел vfat Manjaro, как /install/boot/efi

А затем установите GRUB:

После этого вы можете сменить корневой каталог командой chroot и попробовать команду update-grub, как и раньше.

Источник:http://wiki.manjaro.org/index.php?title=%D0%92%D0%BE%D1%81%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D0%B7%D0%B0%D0%B3%D1%80%D1%83%D0%B7%D1%87%D0%B8%D0%BA%D0%B0_GRUB

Установка Linux на ноутбуки c UEFI, производители которых продали душу Microsoft (UPD 05.01.16)

Данная статья должна была быть написана еще полгода назад, но всё никак.

Речь пойдёт о том, как установить ОС Linux второй ОС на новые ноутбуки с UEFI и предустановленной Windows. При условии, что обычная установка не дает нужного результата, а именно — после корректной установки Линукса «рядом» с Виндой всё равно загружается только ОС Windows.

Для начала, как уже стало традицией, поставим все точки над Ё.

Проблема.

Имеем ноутбук (возможно и десктоп, но автор имел дело лишь с ноутбуком), на котором используется UEFI и имеется предустановленная ОС Windows (скорей всего 8.1, хотя ныне уже 10). Хотим установить на этот самый ноутбук ОС Linux (речь пойдет об Linux Mint, но для остальных ситуация должна быть аналогична) второй операционной системой (с двойной загрузкой: возможностью использовать и Windows и Linux на выбор пользователя). Устанавливаем Linux обычным способом* (про который я тоже когда-нибудь напишу, но в Интернетах подобных инструкций полно), перезагружаемся и обнаруживаем собственно нашу проблему:

всегда загружается упрямая Винда, никакого Grub’а, ни намека на какую-то там двойную загрузку.

*На самом деле существует как минимум две важные особенности для установки Linux на компьютеры с UEFI. 1) Перед установкой в этом самом UEFI необходимо отключить опцию безопасной загрузки — Security Boot Control (или что-то похожее, зависит от версии UEFI). Иначе носитель информации с дистрибутивом Linux почти наверняка не сможет запустится. 2) Загрузчик (Grub) должен быть установлен на EFIESP раздел, обычно имеющий название sda2, а не просто sda, как-то было раньше, в эпоху BIOS. Данная опция регулируется в процессе установки Линукса, обычно где-то в районе шага разметки диска.

Быстрое решения для счастливчиков.

Если вам повезет больше, чем автору статьи, то данную проблему можно решить за минуту.

Для начала попробуйте зайти в UEFI (кнопка F2 или DEL ДО старта Винды). Там найдите раздел с указанием списка загрузки. В нем должны быть элементы: как минимум жесткий диск и Windows Loader. Последний обычно имеет наивысший приоритет загрузки. Просмотрите остальные элементы в данном списке, если там есть что-то вроде Ubuntu Loader (или что-то иное, в зависимости от устанавливаемого вами дистрибутива Linux), то улыбаемся и машем выставляем его самым приоритетным и перезагружаемся. После перезагрузки должен появится долгожданный интерфейс Grub с выбором ОС для загрузки.

Если никаких других «лоадеров» нет, то вам не повезло как и мне: ваш ноутбук продал душу корпорации Microsoft и не желает видеть другие загрузчики. Или, что куда менее вероятно, загрузчик Grub установлен неверно (читаем примечания к предыдущему разделу и делаем всё по фен-шую).

Мат.часть и необходимые знания.

Про то, что такое UEFI и BIOS, зачем они нужны. Про разницу между MBR и GPT, а также про их смысл довольно подробно описано вот тут. Повторятся не будем. Данной информации вполне должно хватить для понимания данной статьи.

Также от читателя потребуются базовые знания установки ОС Linux. Читаем где-то там же.

Еще нужны будут базовые навыки владения данной ОС, в частности управлением файловой системой с помощью Midnight Commander (MC) (обзор основных возможностей и команд) и самые азы работы в консоли Linux (для Ubuntu-образных линуксов хорошая инструкция для новичков вот тут).

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

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

Решение.

Учтите, что весь алгоритм построен для ОС Linux Mint. В других Линуксах (не основанных на Ubuntu или Debian) названия каталогов и команды могут несколько отличаться.

  1. Установить Линукс рядом с Windows, используя для этого соответствующую опцию в одном из первых шагов установки или (если данная опция не появилась) разметив жесткий диск должным образом (заслуживает отдельной статьи, на убунту-вики про это тоже уже написано).
  2. НЕ ПЕРЕЗАГРУЖАТЬ компьютер после установки. Если перезагрузили — ничего страшного, просто снова придется загрузиться с live-cdusbdvd (ведь линукс-то у вас не запускается?).
  3. На всякий случай в консоли выполнить команду sudo update-grub (введя пустой пароль при запросе).
  4. Открыть консольтерминал или иными средствами (например, с помощью менеджера программ в UbuntuLinux Mint) установить mc. В консоли (для систем с apt) это делается следующим образом: sudo apt-get install mc(после чего потребуется ввод пароля, напомню, в лайв-режиме пароля нет, просто жмем Enter и соглашаемся на установку).
  5. Запустить mc от имени рута: sudo mc(и снова пустой пароль, если спросит).
  6. Найти в файловой системе следующий каталог: /boot/efi/EFI.
  7. Переименовать каталог (комбинация ctrl+F6 в mc) Microsoft во что-нибудь другое, например в Microsoft2.
  8. Создаем новый каталог с именем Microsoft (клавиша F7).
  9. Заходим в только что созданный каталог Microsoft и частично (см.далее) создаем внутри его иерархию папок аналогичную старому Microsoft (тому, что переименовали). В моем случае он имел такую структуру папок: /boot/, затем куча папок и файл bootmgfw.efi рядом с ними. Нужно воссоздать структуру папок ровно до этого файла. Т.е. всё, что лежит рядом с ним — не нужно, а всё, что идет до него (т.е. родительские папки, соседние с ними тоже не нужны) воссоздаем в нашей новой папке Microsoft. В моем случае понадобилось создать только папку boot, итоговый путь до нового каталога вышел таким: /boot/efi/EFI/Microsoft/boot .
  10. Находим в каталоге из шага 6 папку с именем нашего дистрибутива линукса, в нашем случае это ubuntu. Копируем (оригиналы файлов и папку ubuntu на всякий случай оставляем, не помешают) все файлы из данной в папки в итоговый каталог, созданный на предыдущем шаге /boot/efi/EFI/Microsoft/boot).
  11. В получившейся файловой системе (в созданном на 9-ом шаге каталоге и перемещенных в него на 10-ом шаге файлах) находим файл grubx.efi или grubx64.efi(будет только один из них: в зависимости от разрядности установленного линукса). Переименовываем его в bootmgfw.efi .
  12. Находим файл /boot/grub/grub.cfg . Открываем его для редактирования (клавиша F4). Внутри него находим (клавиша F7 вызывает форму поиска по тексту) слово «Microsoft» в контексте строки, начинающейся с «chainloader» и заменяем это слово (должно быть только одно вхождение и именно в строке с «chainloader», так что не ошибетесь) на название каталога, в который мы переименовали Microsoft на 7-ом шаге (т.е. на Microsoft2 в нашем примере). Сохраняем изменения в файле (клавиша F2 — сохранить).

Вот и всё. Выглядит очень сложно, но если выполнять всё точно по шагам (которые расписаны максимально подробно!), то всё получится без каких-либо проблем. И, после перезагрузки и последующей загрузки уже с жесткого диска (а не с лайв-носителя) мы увидим вожделенный экран с меню выбора ОС. Ура, товарищи!

Что мы только что сделали?

Поясняю. Как видно, производитель вашего (и моего, у меня Acer если что) ноутбука продал душу Мелкософтам, как я уже говорил ранее. А именно, ноутбук на уровне UEFI не желает загружать что-либо отличное от файла /boot/efi/EFI/Microsoft/bootbootmgfw.efi, в котором располагается загрузчик Windows. Такая вот дискриминация!

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

Что делать дальше? + Меры предосторожности при обновлениях.

Живите и радуйтесь. Но ровно до тех пор, пока grub не захочет обновиться. Или же, вы не захотите согрешить и обновить свою винду

Сперва об обновлении Grub.

Дело в том, что после обновления Grub запускает команду update-grub, которая в созданной нами иерархии папок не находит загрузчика Windows (по непонятным мне причинам). И, тем самым, после обновления grub и последующей перезагрузки ПК в списке выбора ОС не будет вредной Windows (и поделом ей!) . Решается это путанно, но алгоритм знакомый

  1. Переименовываете папку Microsoft (в которой сейчас файлы от граба и линукса) во что-нибудь временное, например в MicrosoftLinux.
  2. Старую добрую папку Microsoft2 (в которой находится загрузчик Windows), переименовываете в просто Microsoft, возвращая ее тем самым в изначальное состояние.
  3. Выполняете команду sudo update-grub.
  4. Возвращаете имена папок, придавая им вид из решения. Т.е. MicrosoftLinux переименовываем назад в Microsoft, Microsoft обратно в Microsoft2.
  5. Повторяем шаг номер 12 из решения и снова радуемся появившейся Windows в списке ОС при загрузке компьютера.

Да, пока что только так. Это дело бы автоматизировать, но пока мне было очень лень. В конце концов grub не так часто обновляется. Да и ручное описание решения лишним никогда не будет, потом пригодится для автоматизации.

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

Большинство обновлений Windows требует перезагрузки. У меня Windows 8.1 после такой перезагрузки ожидаемо не сумела загрузиться, ибо не нашла своего загрузчика по адресу /boot/EFI/Microsoft (там же у нас теперь линукс живёт). Поэтому, обязательно перед установкой обновлений винды — верните ее загрузчик на место. Т.е. в папку Microsoft в нашем примере. Да, после этого вся проблема вернется, ибо загружаться вновь будет только винда, но ведь второй раз выполнить алгоритм из решения будет уже проще?;)

А иначе никак, если винда после обновлений уйдет в перезагрузку, но загрузчика не найдет — получите вы ошибку с невозможностью дальнейшей загрузки. И после этого, даже если поместить виндовый загрузчик на место — оно всё равно не заведётся. Поможет только восстановление загрузки с диска с вашей ОС Windows. Поэтому данный всегда желательно иметь под рукой (взять оригинальные образы дисков можно где-нибудь на торрентах).

После обновлений выполняем алгоритм из решений и радуемся.

Послесловие.

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

Если вы знаете способ решения подобной проблемы куда более простой и быстрый — прошу, пожалуйста, поделитесь. Укажу ссылку (при наличии) и оставлю авторство за вами;)

Источник:http://lbad.ru/2015/12/19/installing_linux_on_laptops_under_uefi/

Grub 2

В Википедии имеется статья по теме «Grub»

GRUB (GRand Unified Bootloader) — загрузчик ОС, применяется для загрузки ядер Linux, OpenSolaris, BSD и Hurd (StartUp Manager).

GRUB 2 — это новая версия GRUB, сильно отличающаяся от предыдущей. Данное описание и инструкции касаются только таблицы разделов MBR и BIOS. Для GPT и UEFI используются немного другие команды.

Для начала стоит определить версию загрузчика. Для этого можно использовать команды «grub-install —version» или «grub-terminfo —version».

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

/etc/default/grub

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

Мы видим, что файл представляет собой набор опций в человекопонятном формате ОПЦИЯ=ЗНАЧЕНИЕ. Мы не будем здесь рассматривать все представленные параметры, поскольку рядовому пользователю вполне достаточно понимания пары-тройки основных параметров. Наиболее часто встречающаяся потребность при настройке grub — изменение стандартного пункта загрузки и/или времени показа меню. Рассмотрим же, как это делается.

Что делать, если файла /etc/default/grub нет

Начинающие пользователи внимательно читают этот замечательный учебник и пытаются следовать описанным здесь сведениям. Однако тут же натыкаются на грабли: файла /etc/default/grub нет. 1) У вас версия Grub1 2) Проверить, есть ли файл /etc/sysconfig/grub2. Править его аналогичным образом. В этом разделе будет написано, почему этого файла нет и как настраивать загрузчик в этом случае.

Изменение стандартного пункта загрузки

По умолчанию стандартный пункт (выделенный при показе меню) — верхний в списке. После установки Ubuntu она окажется наверху, а Windows, например, будет последним пунктом. После обновления ядра первым пунктом списка становится загрузка с новым ядром. это происходит потому, что именно первый пункт загрузки является стандартным по умолчанию. За это, собственно, отвечает параметр «GRUB_DEFAULT». Значением его является номер пункта в меню загрузки, который должен быть выбран стандартным, причем нумерация начинается с нуля. Значение по умолчанию — 0, поэтому и выбирается первый пункт. Для того, чтобы выбрать другой пункт, нам нужно узнать, каким по счету он будет в списке. Тут есть два варианта: просмотреть содержимое «/boot/grub/grub.cfg» и сосчитать, какой по счету окажется нужная запись, или же перезагрузиться и более наглядно посмотреть то же самое в меню загрузки (перед этим побегайте стрелочками по меню, чтобы остановить таймер). Второй вариант отличается более наглядным представлением, что проще для неопытного пользователя. В обоих случаях не забывайте о порядке нумерации — 0, 1, 2, 3 и так далее, то есть пятому сверху пункту будет соответствовать значение 4, второму — 1, первому — 0. В вышеприведенном примере установлено значение 6, то есть стандартным задан седьмой пункт меню. Кроме задания конкретного пункта есть еще другие интересные варианты. Например, если в качестве значения указать «saved»(без кавычек) и добавить строку GRUB_SAVEDEFAULT=true — тогда при загрузке будет выбран тот пункт, который был загружен в прошлый раз. Или же можно указать точное название пункта. В данном случае оно должно быть именно таким, каким мы его видим в «/boot/grub/grub.cfg». При этом значение должно указываться в кавычках. Данный способ удобен тем, что после обновления ядра не придется изменять настройки из-за сбившейся нумерации.

Пример

Если в «grub.cfg» пункт меню выглядит так:

то и значение параметра «GRUB_DEFAULT» должно указываться именно в виде

Изменение времени отображения меню

По умолчанию меню загрузки отображается 10 секунд, после чего загружается стандартный пункт (если раньше не нажат enter и не выбран другой пункт, что останавливает таймер). С изменением задержки все совсем просто. За эту задержку отвечает параметр «GRUB_TIMEOUT» (не путайте с «GRUB_HIDDEN_TIMEOUT»!). Значение задается в секундах. Обратите внимание, что цифра указывается в кавычках. В нашем примере это значение — 2, то есть меню отображается две секунды. Кроме того, есть одна хитрость. Если поставить значение «−1», то меню будет отображаться до тех пор, пока пользователь не выберет какой-либо пункт. То есть без всяких таймеров и утекающих секунд.

Изменение времени отображения в debian 8

Данный хак будет полезен и для владельцев систем построенных на debian. Дело в том что файл /etc/grub.d/00_header построен по непонятному принципу, а строчка в GRUB_TIMEOUT в /etc/default/grub не меняет время отображения. Для того чтобы это исправить надо открыть любым редактором файл /etc/grub.d/00_header и удалить данные строчки (делаем резервную копию на всякий случай):

Эта функция запутанная и ничего не даёт. Далее ищем и удаляем полностью данный текст:

Далее удаляем полностью из файла следующий текст:

Теперь я объясню почему данные строчки нам совсем не нужны. Для того чтобы установить значение timeout нам не нужны сотни строчек кода а достаточно всего одной. Таким образом мы избавились от лишнего мусора в файле. И теперь мы может запустить update-grub -o test-grub.cfg для того чтобы удостоверится в том что ошибок не возникает (будет создан файл test-grub.cfg в текущей папке). Теперь для того чтобы установить желаемое значение timeout нам нужно открыть файл /etc/grub.d/00_header , и после строчки set -e добавить:

Теперь для того чтобы изменить время отображения меню нам будет достаточно изменить данную строчку и выполнить update-grub . Таким же образом можно записывать любые переменные в наш готовый grub.cfg (после echo можно вводить что угодно, и это будет записано в наш готовый конфиг).

«Скрытое» меню

В случае, если на компьютере установлена только Ubuntu, меню загрузки по умолчанию не будет отображаться, а grub2 будет загружать вас напрямую в систему. Однако же, иногда может возникнуть необходимость загрузиться с другим ядром или же запустить проверку памяти. для этого предусмотрено «скрытое меню». За него отвечает параметр «GRUB_HIDDEN_TIMEOUT». В случае, когда установлены другие ОС, этот параметр закомментирован (# в начале строки).Если в меню загрузки присутствует Windows, этот параметр игнорируется, даже если он раскомментирован, т.е. использовать скрытое меню невозможно. В случае с единственной ОС он будет активен. значение его задает задержку в секундах. Grub2 приостановит загрузку на заданное количество секунд, давая пользователю возможность вызвать меню загрузки, нажав Escape. Если значение установлено в 0, то задержки не будет. Однако, пользователь все равно сможет вызвать отображение меню, удерживая при загрузке shift. Параметр «GRUB_HIDDEN_TIMEOUT_QUIET» отвечает за отображение таймера во время паузы. При значении «true» таймер показан не будет. При выборе «false» — будет отображаться.

Изменение стандартных параметров загрузки ядра

Иногда бывает необходимо загружать ядро системы с какими-либо особыми параметрами. Например, для корректной работы специфического оборудования. в этом случае весьма полезен будет параметр «GRUB_CMDLINE_LINUX_DEFAULT». Он отвечает за те параметры, с которыми запускаются linux-ядра при загрузке. Значение его по умолчанию — «quiet splash», что приводит к показу графической заставки при запуске системы, и отключению отображения какой-либо текстовой информации. Вы можете добавить необходимые вам параметры запуска ядра, приведя это значение к виду «quiet splash your_param1 your_param2», то есть дописав через пробел нужные параметры.

Пример

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

Теперь все наши пункты загрузки linux-ядер будут преобразованы в verbose mode, то есть режим загрузки без графической заставки и с выводом на экран текстовой информации о загрузке компонентов системы, что позволяет следить за процессом загрузки и выявлять неполадки.

Обратите внимание, чтобы ядру не передавались лишние параметры через GRUB_CMDLINE_LINUX, если он не пустой. Все вышеописанное работает для

Остальные настройки файла /etc/default/grub

— данная строка отвечает за названия дистрибутива, которое будет отображаться в меню GRUB2 (Ubuntu, Xubuntu, Debian, и т.д.)

— раскомментируйте данную строку, и это позволит отключить графический терминал (grub-pc only). Данный прием будет полезен тем, что отключение графического режима может существенно увеличить скорость работы меню (прокрутка, отзывчивость).

— раскомментируйте, если вы не хотите, чтобы GRUB передавал вашей системе параметр «root=UU >

— этот пункт отвечает за разрешение графического меню GRUB2. Данный параметр предоставляет разрешение, которое поддерживается видеокартой пользователя (например: 640×480, 800×600, 1024×768, 1600×1200 — для соотношения сторон 4:3. И 640×400, 800×500, 1024×640, 1280×800, 1680×1050 — для широкоформатных мониторов с соотношением сторон 16:10). Настройки применимы только для меню загрузки. Так же у нас есть возможность увидеть все доступные разрешения для экрана из меню GRUB2. Для этого, находясь в меню, жмем «с», затем в строке grub> пишем vbeinfo.

Если строка GRUB_GFXMODE=640×480 закомментирована или выбранное разрешение недоступно, тогда GRUB2 использует настройки по умолчанию, определенные скриптом /etc/grub.d/00_header.

— Настройка одинакового разрешения в меню GRUB2 и вашей операционной системы, позволит немного уменьшить время загрузки.

— В качестве дополнительной опции пользователь может задать битность изображения, просто добавив необходимые данные в настройку разрешения. Например так: 1280x1024x24 или 640x480x32.

— Пользователь может добавить одновременно несколько разрешений. Как это работает? А вот так, если GRUB2 не может использовать первое заданное разрешение, тогда он будет пробовать следующее и т.д. Перечень разрешений необходимо разделять запятыми. Пример: 1280x1024x16,800x600x24,640×480.

— Если используется строка GRUB_GFXMODE= и при выполнении команды sudo update-grub вам выдается сообщение not found, просто попробуйте или добавить или изменить битность изображения.

— для того, чтобы избежать появления в меню режима Recovery, добавьте (если отсутствует) или раскомментируйте данную строку. Если вам нужен режим Recovery только для конкретно взятого ядра — вам будет нужно создать необходимую запись в скрипт /etc/grub.d/40_custom.

— Включает/выключает проверку скриптом /etc/grub.d/30_os-prober наличия на других разделах операционных систем, включая такие как Windows, Linux, OSX и Hurd.

/etc/grub.d

Этот каталог содержит в себе скрипты, которые используются при создании «grub.cfg». При обновлении grub2 они находят все установленные на компьютере системы и ядра и формируют в «grub.cfg» меню загрузки, которое мы и видим. Два основных из них — «10_linux» и «30_os-prober» отвечают за поиск linux-ядер и остальных ОС на других разделах соответственно. Файл «40_custom» позволяет добавлять свои пункты загрузки. Это может быть полезно, если вы, например, хотите добавить какие-то особые варианты загрузки системы.

Примечание: файл «40_custom» должен заканчиваться пустой строкой, иначе последний пункт не будет отображаться в меню!

Пример

Добавляем verbose-mode (режим загрузки без графической заставки, с текстовым отображением процесса загрузки), позволяющий контролировать процесс загрузки системы. Для этого мы немного отредактируем обычный пункт загрузки. Допустим, он выглядит так (в «/boot/grub/grub.cfg»):

Для того, чтобы сделать из этого verbose-mode, нам нужно убрать опции quiet и splash из строки «linux». Ну, и для понятности изменим название самого пункта. в итоге получаем:

Все это и добавляем в «40_custom» в конец файла. Строка с echo не является обязательной, она лишь будет сигнализировать нам о том, что наш пункт найден и добавлен при обновлении grub2

Применение изменений

После того, как мы отредактировали и сохранили наши файлы, радоваться еще рано. Теперь нужно закончить дело, обновив наш «/boot/grub/grub.cfg». Это довольно просто — нужно всего лишь выполнить команду

Она выполнит скрипты в каталоге «/etc/grub.d» и применит заданные в «/etc/default/grub» параметры. После этого смело перезагружаемся и видим, что все работает как надо. Ну или не работает. Если все прошло успешно, то в выводе консоли вы увидите список найденных grub2 ОС и linux-ядер. Выглядит все это примерно так, как на скриншоте справа.

Тот же самый скрипт выполняется и при обновлении ядра.

Нюанс с нумерацией дисков и разделов

В grub2 имеется еще одно важное отличие от старого grub. Связано оно с нумерацией жестких дисков и их разделов. В grub нумерация физических дисков и нумерация разделов начинались одинаково — с нуля. Первый физический диск (sda в системе) обозначался «hd0», второй (sdb) — «hd1», и так далее. Это же осталось и в grub2. нумерация же разделов диска изменилась. Если в grub первый раздел первого диска (sda1) именовался «hd0,0», четвертый (sda4) — «hd0,3», то теперь, в grub2, цифра раздела соответствует цифре раздела в системе. То есть, sda1 теперь будет «hd0,1» (а не «hd0,0»), sdb4 — «hd1,4». Проще говоря, нумерация дисков идет с нуля, а нумерация разделов — с единицы!

Резервная копия Править

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

(можно сохранить данный скрипт в /usr/bin, назвать, к примеру, «grub-backup» и дать права 755. Теперь для резервного копирования grub2 достаточно будет выполнить команду «grub-backup»)

Немного улучшенная версия скрипта.

Установка фонового изображения Править

Вы можете выбрать и установить полноцветное изображение в качестве фона в меню загрузки grub2. Размер изображения должен соответствовать разрешению grub2 (по умолчанию — 640×480, задается в «/etc/default/grub»), формат файла — png или tga. Вы можете установить готовый набор из нескольких подходящих для grub2 изображений, выполнив команду

(не путайте пакет grub2-splashimages с пакетом grub-splashimages, который не совместим с grub2!). Эти изображения будут помещены в каталог «/usr/share/images/grub», который нужно будет добавить в файл конфигурации (см. ниже). Фоновое изображение задается в файле «/etc/grub.d/05_debian_theme». Найдите в нем строку такого вида:

Те, кто более-менее знаком с bash, узнают прием с перечислением в фигурных скобках. Для остальных: все не так сложно, как может показаться. В первых фигурных скобках (в нашем примере — «</boot/grub,/usr/share/images/desktop-base>») перечислены каталоги, в которых grub2 будет искать подходящие для установки изображения. Далее (после слеша) указано имя файла изображения (без расширения!), которое мы хотим установить в качестве фона (здесь — «moreblue-orbit-grub»). Вторые фигурные скобки («<png,tga>») определяют расширения файлов, которые grub2 будет пытаться использовать в качестве фона. Заметьте, что пункты в фигурных скобках перечисляются через запятую и не разделяются пробелами! По умолчанию изображения ищутся в каталогах «/boot/grub» и «/usr/share/images/desktop-base». Изображения из пакета grub2-splashimages у нас распаковались в «/usr/share/images/grub», поэтому мы должны добавить этот каталог в список мест, где grub2 будет искать изображения. Добавим еще один пункт в первые фигурные скобки. Сразу же определимся с выбором картинки. Я выбрал последнюю, переименовав файл для удобства в «winter.tga». Заменим имя («moreblue-orbit-grub») на имя выбранной картинки (в моем случае — «winter»). В итоге получим такую строку:

Заметьте, что между именем файла и вторыми фигурными скобками должна стоять точка! Как это работает: grub2 последовательно просматривает заданные каталоги и ищет в них файл с заданным именем и одним из перечисленных расширений. Цикл прекращается как только найдено первое подходящее изображение. Таким образом, файл с подходящим именем присутствует в нескольких каталогах, будет взят файл из того каталога, который указан раньше других в списке. Аналогично, если изображение представлено в разных форматах (например, «image.png» и «image.tga») — выбран будет файл с тем расширением, которое первым указано во вторых фигурных скобках. Интересности: вы можете добавить любой каталог с изображениями, владельцем которой вы являетесь. Это упростит добавление/изменение изображений. Однако, заметьте: при этом root должен иметь как минимум права r-x на этот каталог. Также не стоит добавлять каталоги с шифрованного home-раздела, т.к. на момент загрузки он еще не примонтирован. Лучше просто сделайте себя владельцем каталога «/usr/share/images/grub» и храните все картинки там. Помимо PNG и TGA поддерживается также формат JPEG. Но на текущий момент реализована только поддержка jpeg с 8-битным цветом. Поэтому используйте jpeg-файлы только если вы понимаете, что такое глубина цвета и как сохранить изображение в 8-битном цвете. Для того, чтобы добавить поддержку jpeg-файлов, приведите вторые фигурные скобки к такому виду: «<png,tga,jpg,jpeg>».

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

указать в кавычках путь к файлу с одним из перечисленных выше расширений (.png,.tga,.jpg) и разрешением 640×480. После чего обновить конфигурацию:

Способ №2: Править

В файле /etc/default/grub определить константу GRUB_BACKGROUND и передать ей путь к файлу с картинкой.

Способ для дистрибутива debian 8 Править

В debian 8 картинка устанавливается по другому. За поиск отвечают вот эти строчки в файле /etc/grub.d/05_debian_theme.

В этих строчках менять ничего не нужно. Сначала будет проверена константа GRUB_BACKGROUND в файле /etc/default/grub, если изображение будет найдено то оно устанавливается на фон grub. Если данная константа в /etc/default/grub не указана, то update-grub будет искать в каталоге /boot/grub файлы формата tga, jpg и png. Поиск выполняется по имени, например если в папке находятся файлы A.tga и B.tga, на фон будет выбрана картинка A.tga. О картинке которая будет выбрана выведется информация при выполнении команды update-grub: Found background image: [путь]. Если в каталоге /boot/grub нет изображений, то поиск будет производится оп переменной указанной в файле /usr/share/desktop-base/grub_background.sh, с именем WALLPAPER.

Если по пути указанном в переменной WALLPAPER, файла /usr/share/desktop-base/grub_background.sh не будет найдено изображения, то изображение установится на /usr/share/images/desktop-base/desktop-grub.png. Для того чтобы вместо /usr/share/images/desktop-base/desktop-grub.png задать своё значение, надо найти вот такую строчку с текстом в файле /etc/grub.d/05_debian_theme.

И изменить на путь до изображения. Порядок поиска:

  1. GRUB_BACKGROUND в файле /etc/default/grub
  2. Каталог /boot/grub
  3. WALLPAPER в файле /usr/share/desktop-base/grub_background.sh
  4. Строчка с текстом «/usr/share/images/desktop-base/desktop-grub.png» в файле /etc/grub.d/05_debian_theme

Настройка цвета пунктов меню

Цвета пунктов меню также задаются в файле «/etc/grub.d/05_debian_theme». В самом начале файла нужно всего-навсего изменить значения переменных:

Здесь и настраиваются цвета для пунктов меню загрузки. Переменная «color_normal» отвечает за цвета обычного (невыделенного) пункта меню. «color_highlight» — за цвета выделенного пункта. Вот эти две переменные мы и будем изменять. Значение каждой из этих строк представляет собой два цвета, разделенные слешем. Первый цвет — это цвет текста. Второй цвет — цвет фона строки. Вот список доступных цветов:

black — черный; blue — синий; brown — коричневый; cyan — голубой; dark-gray — темно-серый; green — зеленый; light-cyan — светло-голубой; light-blue — светло-синий; light-green — ярко-зеленый; light-gray — серый; light-magenta — розовый; light-red — светло-красный; magenta — пурпурный; red — красный; white — белый; yellow — желтый.

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

Пример

В моем случае заданы следующие параметры: обычный пункт — черный текст, прозрачный фон; выделенный пункт — черный текст, серая подсветка строки.

Настройка цвета пунктов меню в debian 8

На debian 8 цвет меню устанавливается таким образом. Так как добавление переменных введённых выше в файл /etc/grub.d/05_debian_theme ничего не дают, то изменять надо в уже готовом файле. Выполняем в терминале:

В текущем каталоге появится файл grub.cfg. Открываем его любым редактором и ищем строчку с:

Сразу под ним вставляем данные строчки:

Затем выполняем команду:

Перезагружаемся и наслаждаемся цветным меню.

Изменение цвета меню навсегда

Чтобы каждый раз не менять grub.cfg заходим в файл /etc/grub.d/05_debian_theme и ищем строчку с текстом:

И удаляем её. Затем ищем строчку с текстом:

И прямо под ней две строки отвечающие за цвет. Изменяем их и выполняем команду:

Перезагружаемся и радуемся результату.

После, например, установки Windows, вы можете столкнуться с тем, что при загрузке будет отображаться только меню загрузки Windows, а меню grub2 вы не увидите вовсе, что приведет к невозможности загрузить что-либо кроме Windows. Такое происходит из-за того, что Windows при установке затирает загрузочную область жесткого диска (так называемый MBR-раздел), удаляя оттуда код загрузчика grub2. Для восстановления grub2 вам понадобится liveCD Ubuntu 10.04 или любой другой современной системы, включающей grub2 в свой дистрибутив.

Восстановление GRUB2 с LiveCD

Загрузитесь с вашего LiveCD (предварительно выберите меню устройств загрузки при наличии такового или же установите cd-привод первым boot device в BIOS). Запустите консоль. Для начала нам нужно будет узнать, на каком диске и на каком разделе установлена Ubuntu. Если вы не помните этого — воспользуйтесь командой

Для работы нам понадобится /-раздел (root). Примонтируйте его командой

В моем случае корневой раздел системы — /dev/sda5, вы же используйте свое значение. Если у вас /boot сделан отдельным разделом, его также надо будет примонтировать. Я не использую отдельный boot-раздел, но предположим, что sda3 выделен под /boot. Монтируем его:

Также монтируем каталог /dev нашей live-системы как /dev нашего root-раздела:

и /proc live-системы как /proc root-раздела:

теперь выполняем следующую команду:

Если вы устанавливаете GRUB для Gentoo:

Теперь вы — root-пользователь в системе, корневым разделом которой считается /mnt, то есть корневой раздел вашей настоящей системы. И вот мы готовы обновить MBR-раздел жесткого диска, переустановив grub2. Но для начала нам нужно определиться, с какого физического диска загружается наш компьютер. Если у вас один жесткий диск, разбитый на разделы — он будет именоваться sda. Если несколько — первый из них — sda, второй — sdb, и так далее. Определить загрузочный диск снова поможет команда

В полученной таблице есть столбец «загрузочный». В моем случае напротив раздела sda1 стоит звездочка, означающая, что у меня загрузочным является первый жесткий диск, то есть sda. Определившись с загрузочным диском, ставим на него grub2:

Если вы столкнетесь с какими-либо ошибками — попробуйте перезапустить команду с ключом —recheck:

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

Обратите внимание: мы устанавливаем grub2 на физический диск (sda, sdb. ) т.е. в mbr, а не на раздел (sda3, sdb1. )! Если все прошло успешно, выходим из chroot командой

Отмонтируем наши диски и каталоги: /dev нашей live-системы:

boot-раздел, если таковой монтировался отдельно:

И собственно, корневой раздел:

Все! Перезагружаемся, восстанавливаем порядок загрузки в BIOS (ставим жесткий диск на первое место) и смотрим результат.

Восстановление GRUB2 с LiveCD. способ 2 (без chroot)

Нам опять же понадобится LiveCD Ubuntu 9.10 или другой системы с поддержкой grub2. В отличие от предыдущего способа, мы не будем запускать установщик через chroot, что позволит сократить количество требуемых действий. Итак, загружаемся с выбранного LiveCD, запускаем консоль. Вместо использования chroot мы воспользуемся ключом «—root-directory». Но для начала убедимся, что данная опция поддерживается нашей live-системой. Если вы работаете с Ubuntu 9.10 Desktop, можно не волноваться. В ином случае выполните

Если в описании опций присутствует вышеупомянутый ключ «—root-directory» — все в порядке. Теперь нам нужно примонтировать корневой раздел системы. Если вы не помните, на каком разделе стоит система, вам поможет

или же можно глянуть

Разница лишь в форме вывода информации. Определившись с корневым разделом, монтируем его. Пусть в нашем примере это будет sda5:

Если у вас выделен отдельный boot-раздел, примонтируйте и его. Допустим это sda2

Теперь переходим собственно к установке grub2. Ключ «—root-directory» позволяет указать, что использовать в качестве корневой директории. Нам нужен корневой раздел нашей системы, который примонтирован в /mnt. Поэтому выполняем:

Как и в предыдущем способе, grub2 устанавливается на физический диск, а не на раздел! В качестве диска нужно указать тот диск, который установлен загрузочным в bios. Если все пройдет успешно, установщик выведет сообщение об успешном завершении и список обнаруженных разделов, которые были добавлены в «device.map». Если все это есть — отмонтируем диски и перезагружаемся. Если будет выведен неполный список разделов — отредактируйте файл «device.map» в корневом каталоге установленной системы (в описанном примере — «/mnt/boot/grub/device.map») поправляем его, добавив остальные диски и скорректировав нумерацию. Файл должен иметь вид

При необходимости повторяем операции для всех жестких дисков. Сохраняем файл и повторно выполняем команду grub-install, как описано выше. Теперь должен отобразиться правильный список дисков. Отмонтируем диски и перезагружаемся.

Восстановление GRUB2 с LiveCD. способ 3 (совсем простой)

В случае, если нужно только восстановить MBR диска (например, после (пере)установки Windows), все можно сделать еще проще, вообще ничего не монтируя. Грузимся с LiveCD. Определяем нужный жесткий диск с помощью «sudo fdisk -l». Если он единственный — значит, sda. Вводим команду

изменив /dev/sda на нужный диск. Можно снова грузиться с этого диска.

Копирование рабочего GRUB 2 в нужный раздел [1]

Порой бывает необходимость перенести корректно работающий GRUB 2 на нужный раздел (только основной раздел диска). Для этого можно загрузиться с LiveCD или использовать уже установленную систему (причём в том числе и для установки GRUB 2 на текущий раздел, с которого загружена работающая система). Для систем использующих ядро Linux достаточно выполнить в терминале:

  • /. /boot/grub — полный путь до файлов GRUB 2, которые необходимо использовать,
  • /dev/sdX — основной раздел диска в главную загрузочную запись (MBR) которого необходимо установить GRUB 2, а X — буква основного раздела диска, её нужно заменить на необходимую, уточнить которую можно например, выполнив в терминале:

После чего выполнить непосредственно инсталляцию GRUB 2 на выбранный ранее раздел командой терминала update-grub, например:

При этом программа инсталляции найдет и установит соответствующие пункты загрузки всех совместимых со спецификациями Multiboot операционных систем и, вероятно, загрузчиков других операционных систем (например Windows, OS/2 и т.п.).

Загрузка системы при частичной неработоспособности GRUB2

В некоторых случаях может оказаться так, что отдельные файлы grub2 будут повреждены (например, в результате сбоя при выполнении «update-grub»). Однако, иногда есть шанс загрузиться в свою систему и восстановить grub2 из нее без необходимости полной переустановки оного. Если при загрузке grub2 вы видите сообщения об ошибках — не спешите предаваться панике. Все может быть еще вполне поправимо. На данный момент наша главная цель — попасть в консоль grub2. Вы можете сразу увидеть ее на экране, или же будет предложено что-либо нажать или выбрать для запуска консоли. В любом случае, если вам удалось запустить консоль — радуйтесь, шансы на спасение увеличены! Консоль grub2 похожа на более привычную оболочку bash. Здесь также поддерживается автодополнение команд по нажатию tab. Если же нажать tab в пустой строке — мы увидим полный список доступных команд. Что ж, приступим к процедуре запуска системы. Для начала нам нужно задать root-раздел, то есть раздел, на который установлена наша система. В моем случае это «/dev/sda5» (в grub2 разделы задаются в виде «hd*,*». Если вы мало знакомы с нумерацией разделов в grub2 — почитайте пункт «нюанс с нумерацией дисков и разделов» в I главе). root-раздел задается командой

В моем случае это «hd0,5», он же «/dev/sda5», то есть пятый раздел первого диска. Полный список доступных разделов можно получить уже знакомой многим командой «ls». Она выдаст что-то вроде

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

Некоторых, наверно, смутит упоминание ext2. Не волнуйтесь, так и должно быть. так же происходит каждый раз при нормальной загрузке системы. После того, как задан root-раздел, мы должны указать, какое ядро следует загрузить. Это задается командой «linux». Укажите то ядро, с которым вы обычно загружаетесь. В моем случае команда будет выглядеть так:

Не пугайтесь, если вы не помните номер вашего ядра. Просто напишите «linux /boot/vmlinuz» и нажмите tab. На экран будет выведен список доступных ядер. Если же вам не важно какое ядро загружать, используйте просто vmlinuz — в последних версиях линукс это символьная ссылка на самое новое установленное ядро. Таким образом всё можно упростить до:

Обратите внимание на параметр «root=/dev/sda5» в конце строки! Здесь также нужно указать ваш root-раздел, но уже в более привычном формате. Без этого система может не загрузиться. Указав ядро и корневой раздел, мы готовы к загрузке системы. Для этого выполняем команду

Вышеперечисленных действий должно хватить для загрузки системы. Если загрузка не удастся, попробуйте перед выполнением «boot» выполнить еще команду «initrd» (которая, вообще-то, выполняется при нормальной загрузке). Напишите «initrd /boot/initrd» и нажмите tab. Выберите вариант, соответствующий загружаемому ядру. В моем случае команда будет выглядеть так:

по аналогии с ядром создается символьная ссылка на последнюю версию initrd.

И уже после этого выполняйте «boot». В результате всех манипуляций мы должны успешно загрузиться в родную систему, а там уже можно выполнить «update-grub» и при необходимости восстановить нужные файлы из резервной копии (которую вы, конечно, делали).

Совет

Вы можете легко и быстро сделать себе инструкцию по аварийному запуску системы. Откройте ваш «/boot/grub/grub.cfg», найдите там пункт, который вы обычно загружаете, и скопируйте его оттуда. Допустим, он выглядит так:

Нам нужно оставить только три строки: «set root», «linux» и «initrd». Чтобы не забыть, допишем в конце команду «boot». В строке linux заменим «UU >

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

Если же вышеприведенный метод не сработал (ядро не загрузилось или же вы вовсе не можете попасть в консоль grub2) и ничего не загружается — тут уж дело идет к переустановке grub2, что описана выше.

Загрузка Windows аналогичным образом

В случае неработоспособности Ubuntu вы можете загрузить другую установленную систему при наличии таковой. Для linux-систем схема будет той же: set root — linux — initrd — boot. Для Windows же все будет даже проще. Для начала так же укажем корневой раздел. На этот раз уже тот, на котором установлена Windows. В моем случае это «/dev/sda1», и команда будет иметь такой вид:

После этого мы скомандуем grub2 передать управление загрузкой Windows-загрузчику NTLDR. Для этого просто выполним

И наконец дадим команду на запуск:

Если все прошло успешно — наслаждаемся загрузкой Windows. В случае, если на разных разделах установлено более одной версии Windows, нам нужно узнать, на каком из разделов находится NTLDR-загрузчик. Это лучше сделать заранее, посмотрев строку «set root» в пункте загрузки Windows файла «/boot/grub/grub.cfg»

Даунгрейд до grub-legacy (возврат старой версии). В случае, если ваша дружба с grub2 так и не состоялась, вы можете заменить его на старый grub (ныне известный как grub-legacy), который на текущий момент более стабилен и привычен для многих. Для начала, конечно же, сделаем бэкап важных файлов. Создайте резервную копию файлов конфигурации как описано в конце I-ой главы. Также желательно забэкапить каталог «/boot/grub». Для этого выполните

Теперь мы можем приступить к удалению grub2. Для этого удаляем пакеты «grub-pc» и «grub2» (последний может быть не установлен):

Заметьте: удаление пакетов не приведет к полной очистке каталога «boot/grub». Теперь установим grub версии 0.97:

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

Эта команда создаст файл меню загрузки. На заданные ей вопросы отвечайте «yes».

создаст остальные файлы загрузчика и запишет информацию в загрузочный раздел диска (MBR). Вместо «/dev/sda» в конце укажите тот жесткий диск, который используется в качестве загрузочного (установлен загрузочным в bios) Если установка прошла успешно — перезагружаемся и видим старый добрый grub с его menu.lst и без лишних хитростей

Из оригинального руководства не понятно, что делать с пакетом «grub-common». Данный пакет является зависимостью пакета «grub-pc», но вместе с последним не удаляется. Однако же, использование его вместе со старой версией grub — не лучшее решение. Наиболее безопасный вариант — после удаления «grub-pc» выполнить

Если будет предложено удалить «grub-common» как ненужный — значит, можно удалять.

Создание аварийно-спасательного GRUB2-liveUSB

Здесь мы рассмотрим, как создать загрузочную флэшку с установленным на нее grub2, через который можно будет загрузиться в случае, если grub2 на жестком диске испорчен. Делается это всего тремя командами (в примере /dev/sdz — флешка, в своей системе предварительно выясните точно, какой /dev/sd* соответствует флешке, набрав fdisk -l):

На выбранном разделе (/dev/sdb1) будут созданы каталоги и скопированы файлы, необходимые для загрузчика, в MBR диска будет записан код, передающий управление на выбранный раздел. Загрузившись с флеш-диска, попадаем в меню grub2. Для его изменения достаточно вручную править файл конфигурации grub.cfg.

Консоль grub2 — команды и хитрости

Здесь мы рассмотрим некоторые команды консоли grub2. Все мы разбирать не будем, а изучим лишь самые необходимые и полезные. Напомню, чтобы попасть в консоль, нужно нажать «c» во время отображения меню загрузки. Итак, начнем!

ls

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

выведет содержимое каталога «/boot/grub» на разделе, который сейчас указан в качестве корневого (об этом чуть ниже). Еще одно полезное свойство команды «ls» — она позволят получить информацию о любом разделе:

сообщит нам тип файловой системы на разделе, метку раздела (если таковая имеется), UUID и дату последнего изменения данных на разделе (в формате UTC).

cat

Данная команда аналогична своей тезке в linux — она выводит содержимое заданного файла. Используется в формате

linux

Загружает указанное linux-ядро. Аналог команды «kernel» в grub-legacy. Используется в формате

initrd

Загружает указанный initrd-образ. Используется так:

Обратите внимание: версия initrd должна соответствовать версии загружаемого ядра!

load_env

Использование: load_env [-f файл]
Загружает переменные из файла блока среды в среду.
Опция -f необязательна, она переопределяет местоположение по умолчанию блока среды.

Что такое блок окружения GRUB? (GRUB environment block)
Часто полезно помнить небольшой объем информации от одной загрузки к другой. Например, вы можете захотеть установить запись меню по умолчанию на основе того, что было выбрано в последний раз. GRUB обычно не реализует поддержку записи файлов, чтобы свести к минимуму вероятность того, что загрузчик понесёт ответственность за повреждение файловой системы, поэтому конфигурационный файл GRUB не может просто создать файл обычным способом. Однако GRUB предоставляет «блок среды», который можно использовать для сохранения небольшого количества состояний.
Блок окружения представляет собой предварительно выделенный 1024-байтовый файл, который обычно находится в /boot/grub/grubenv (хотя вы и не должны это предполагать). Во время загрузки команда load_env загружает в нее переменные среды, а команда save_env сохраняет в ней переменные среды. Из работающей системы утилиту grub-editenv можно использовать для редактирования блока окружения.
grub-mkconfig использует эту возможность для реализации ‘GRUB_SAVEDEFAULT’ (в /etc/default/grub).

chainloader

Передает управление загрузкой по цепочке другому загрузчику (загрузчик ищется на заданном в качестве root разделе). В общем случае требует указания файла для загрузки:

Однако, для NTLDR (загрузчика Windows) можно использовать

boot

производит загрузку указанного ядра (заданного с «linux» и «initrd») или же другого загрузчика (заданного через «chainloader»). Используется без параметров

root

При использовании без параметров сообщает, какой раздел сейчас используется в качестве корневого (по умолчанию — корневой раздел системы, на которую установлен текущий grub2) и тип файловой системы на этом разделе (для ext3/4 тип будет указан как ext2, это нормально). Также команда может быть использована для задания другого root-раздела. Раздел задается в «grub device» формате, то есть «(hd*,*)». Например:

После задания раздела команда сообщит новый root-раздел и тип файловой системы. Примечание: «root (hd*,*)» не всегда корректно срабатывает. Более предпочтительным вариантом является «set root» (см. ниже)

save_env

Использование: save_env [-f файл] значение …
Сохранить значения из переменных среды в файл блока окружения.
Опция -f переопределяет местоположение по умолчанию блока среды.

set Править

Весьма универсальная команда для изменения различных параметров. Служит для задания значений переменных и используется в формате

Наиболее необходимое ее применение — для задания root-раздела. Для этого изменяется переменная «root», в качестве значения задается необходимый раздел, например:

(именно такая технология используется в «grub.cfg») Также с ее помощью можно, например, «на лету» изменить цвет текста в меню и консоли, что позволяет опробовать цветовую схему перед установкой ее в качестве основной. Для этого изменяем переменные «color_normal» и «color_highlight» для обычного пункта (и текста в консоли) и выделенного пункта соответственно. Например, попробуем такой вариант:

(Подробнее о цветах читайте в главе II, раздел «настройка цвета пунктов меню»).

search

Пожалуй, одна из самых полезных команд. Потомок «find» и «uuid» из grub-legacy. Служит для поиска раздела по UUID, метке или заданному файлу. Имеет следующие ключи:

-u (или —fs-uuid) — поиск раздела по UUID;

-l (или —label) — поиск по метке раздела;

-f (или —file) — поиск по указанному файлу;

-n (или —no-floppy) — не проверять флоппи-дисковод (чтоб не трещал);

-s (или —set) — установить найденный раздел в качестве значения заданной переменной.

Зачем это нужно? Дело в том, что при подключении/отключении жестких дисков (и в некоторых других случаях) нумерацию дисков и разделов может «поехать», и тогда наша команда «set root=(hd0,5)» в «grub.cfg» будет вести или в никуда или на раздел не того диска. Поэтому в «grub.cfg» вы найдете строчку с «search». Для поиска раздела с известным нам uuid запустим «search» с ключом -«u»:

Команда сообщит нам, какой раздел соответствует заданному UUID. Однако, UUID длинный, и хотя его и можно узнать, вводить вручную такое количество символов проблематично, и существует большой шанс сделать ошибку. Вместо этого мы воспользуемся поиском по файлу, который точно имеется на нужном разделе. Допустим, мы ищем раздел boot-раздел нашей системы. Найдем его по файлу «grub.cfg»:

Обратите внимание, что при использовании такого способа указанный файл должен иметься только на одном разделе! Получив искомое, можно вручную задать нужный раздел в качестве root-раздела, но гораздо проще воспользоваться ключом «-s». Если после него не указана переменная, будет использована «root», то есть найденный раздел как раз и будет задан в качестве корневого. Допустим, раздел с Windows имеет метку «C_drive». Установим его в качестве корневого для загрузки с него:

В качестве послесловия отмечу, что остается неясным, зачем разработчики используют в «grub.cfg» строку с «set root», если вполне можно обойтись «search . «.

«search . » может не хватить если хочется явно задать устройство для загрузки.

lsfonts

Эта команда отобразит список загруженных в настоящий момент шрифтов (полезно для тех, кто все-таки решил поразвлечься с настройкой шрифтов в grub2, конвертацией их в .pf-формат и прочим).

help

При использовании в чистом виде выведет список доступных команд. В формате

выведет справку по всем командам, начинающимся на «r».

отобразит справку по команде «search».

halt

Выключит компьютер (в теории) или введет его в ступор (у меня ).

reboot

background_image

Позволяет «на лету» изменить фоновое изображение. Используется в формате

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

vbeinfo

Выведет список поддерживаемых видеорежимов. Этой командой полезно будет воспользоваться перед настройкой разрешения в «/etc/default/grub».

configfile

Потомок одноименной команды в grub-legacy. Позволяет загрузить другой файл конфигурации с другим меню вместо текущего «grub.cfg». Создав новый файл, вы можете сделать другое меню с другими настройками, оформлением и пунктами, не захламаляя основное меню. Используется так:

Создание и использование новых меню позже будет рассмотрено отдельно.

terminal_output.console

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

terminal_output

Использование: terminal_output [—append|—remove] [терминал1] [терминал2] …

Перечисляет или выбирает выходной терминал. Без аргументов перечисляет активные и доступные выходные терминалы.
Параметр —append добавляет терминалы в список активных выходных терминалов; Все они будут получать данные из GRUB.
Параметр —remove удаляет терминалы из активного списка.
Без параметров, кроме списка имен терминалов, активирует только перечисленные имена терминалов.

play

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

Чтобы проиграть файл, пишем play и указываем путь до файла формата MID. Для того чтобы создавать свои мелодии нужно задать темп, а также высоту и длительность каждого звука. Пример мелодии:

Можно писать мелодии любого размера без ограничений.

tr

Заменяет буквы в тексте.

—set=ЗНАЧЕНИЕ — устанавливает полученный результат в переменную ЗНАЧЕНИЕ. -U —upcase — переводит все символы в верхний регистр. -D —downcase — переводит все символы в нижний регистр.

testspeed

Даёт возможность протестировать скорость чтения файла с диска.

-s, —size=ЧИСЛО — объём данных каждой операции чтения.

time

Замеряет время выполнения любой команды.

sleep

Заморозка grub на указанное количество секунд. Аналогична команде sleep в linux, но без отмены командой Ctrl-C.

-v, —verbose — показывает отсчёт в одной строке. -i, —interruptible — разрешает прерывание сна кнопкой ESC. Если не указать данный ключ, то пока не закончится отсчёт нельзя будет предпринимать какие-либо действия.

Премудрости 😉

Ну и для полного счастья ниже я приведу небольшой список премудростей, которые помогут вам облегчить работу в консоли: уже упомянутое автодополнение команд (как в bash) по нажатию tab. tab в пустой строке выведет полный список доступных команд. Это самое автодополнение имеет нетривиальный способ использования. Если вы не помните, какой раздел вам нужен, напишите «root (hd0,» (или «root (hd1.» и далее по списку) и нажмите tab. Будет выведен список разделов заданного диска с указанием файловых систем, UUID и времени последнего изменения. Имя раздела вида «(hd*,*)» можно использовать в начале пути к файлу, например, вот так:

Еще один полезный пример

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

Позволяет облегчить себе жизнь и не путатся в названиях программы. Теперь обновлять grub.cfg можно командой grub-update . Если пишет ошибку то что файла /usr/sbin/update-grub не существует, то выполняем команду which update-grub> и заменяем /usr/sbin/ на путь до программы.

Загрузка другого grub2 из текущего

Как выяснилось в ходе экспериментов, все весьма просто. загружаемся в grub2, переходим в консоль нажатием «c». Загрузка другого grub2 происходит по методу «set root — chainloader — boot». Для начала определимся с диском, в MBR которого прописан grub2, который мы собираемся загрузить. Выполните команду

чтобы увидеть список текущих дисков и разделов. Диск, с которого производился загрузка будет именоваться (hd0). В нашем примере мы загрузим с флэшки основной grub2 на жестком диске. Если флэшка — (hd0), то жесткий диск будет (hd1). Выполняем

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

и даем команду на запуск

и попадаем в искомый загрузчик.

Создание дополнительных меню загрузки

В этом разделе мы рассмотрим создание своих собственных загрузочных меню со своей конфигурацией. Суть в том, что вместо уже знакомого нам «grub.cfg» можно загрузить другой файл конфигурации. Это позволяет создать дополнительное меню, совершенно другое — с другими пунктами, настройками. оформлением. Те, кто имел дело с установкой ArchLinux, могли заметить несколько подменю в grub установочного диска. Примерно такой метод мы и будем использовать. Итак, создадим наш новый файл конфигурации. Писать с нуля мы его, конечно же, не будем, а сотворим на основе имеющегося «grub.cfg». Для чего скопируем последний, дав новое имя, например:

Поскольку файл скопируется с правами 444, выставим ему права на запись:

Теперь открываем его в любимом текстовом редакторе и начинаем ковырять. Если вы в достаточной мере знаете структуру «grub.cfg» и понимаете, какие строки что делают, можно значительно сократить свой файл, вырезав лишнее, и привести его к более удобочитаемому виду. Однако же, можно и не трогать руками все подряд, а изменить лишь интересующие параметры, что мы и проделаем. Для начала найдем строку «set default=. » (у меня это 13-я строка). Здесь можно задать пункт меню по умолчанию, указав или его номер или точное название. Далее отыщем строку «set gfxmode. » (24-я в моем случае). Здесь задается разрешение экрана в привычном формате WxH. Можно также указать глубину цвета, например «1024x768x32». Можно указать несколько вариантов, при этом если первый не сможет быть установлен, будет загружен второй, если и он не сработает — третий и т.д. Варианты перечисляются через запятую и без пробелов:

Теперь зададим время отображения меню. Для этого ищем строку «set timeout», но именно ту, которая идет после «else» (36). Здесь и задается задержка в секундах. Установите -1 для отключения таймера. Настроим оформление нашего меню. Для задания фонового изображения найдем строку с «if background_image. » (45). (здесь подразумевается, что в вашем grub.cfg используется фоновое изображение. Если нет — смотрите пример файла в конце этого раздела). После команды background_image прописан путь к файлу картинки. Поменяйте его на нужный файл (обратите внимание, что разрешение картинки должно соответствовать заданному выше разрешению экрана! Но не обязательно, только чревато низким качеством фона). Строкой ниже мы можем задать цвета текста. Правятся они точно так же, как и в «/etc/grub.d/05_debian_theme» (подробнее о цветах читайте в главе II, раздел «настройка цвета пунктов меню»). Еще можно проделать один интересный трюк: уберите строки с «set color_highlight» и «else». Теперь настройка будет такой: color_normal задает цвет/фон текста сверху и снизу (версия grub и комментарии) и текста в консоли menu_color_normal отвечает за цвет пунктов меню и фон прямоугольника, в котором они находятся menu_color_highlight задает цвет/фон выделенного пункта меню. Закончив с настройкой, перейдем собственно к пунктам. Ниже идут пункты из вашего «grub.cfg». Измените их, удалите ненужные и добавьте новые, пересортируйте на свой вкус. Ниже будет приведен пример с немного отредактированными тремя пунктами загрузки. Настроив свой файл, сохраните его. Теперь нам нужно добавить возможность загрузить его вместо «grub.cfg». Для этого в последний нужно будет добавить еще один пункт, что мы сделаем через «/etc/grub.d/40_custom». Для смены файла конфигурации в grub2 используется команда «configfile». Ей мы и воспользуемся, добавив в «40_custom» запись такого вида:

Если ваш путь к файлу отличается — исправьте его. Если вы используете отдельный boot-раздел, путь будет таким: «/grub/custom.cfg». Также учтите, что «40_custom» должен заканчиваться пустой строкой! Если вы хотите, чтобы ваше новое меню загружалось вместо стандартного «grub.cfg», установите новый пункт в качестве пункта по умолчанию. Также можете установить таймаут для «grub.cfg» в 0 (в «/etc/default/grub»), но перед этим рекомендую протестировать свежеиспеченное меню на работоспособность. Обновите свой «grub.cfg» выполнив

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

Пример файла «custom.cfg»

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

MBR — бэкап, восстановление и загрузка через образ

Для тех, кто не знает, поясню: MBR — фрагмент первого сектора жесткого диска, в котором, в том числе, прописан код, запускающий загрузчик. При загрузке с диска оттуда считывается информация о том, как запустить загрузчик. grub2 прописывает свой код в MBR при установке (и это же мы делаем, выполняя «grub-install … /dev/sda»). На случай повреждения MBR (причины бывают разными) и для возможности быстрого восстановления работоспособности grub2 полезно будет иметь резервную копию MBR жесткого диска. Чтобы создать ее, сначала нужно определиться, с какого из жестких дисков производится загрузка (можно посмотреть с помощью «sudo fdisk -l»). После этого скопируем первый сектор (первые 512 байт) диска в файл с помощью команды dd:

Если ваш загрузочный диск — не sda, поменяйте значение на свое (на самом деле, код загрузчика занимает первые 446 байт, а дальше записана таблица разделов, но для загрузки нашего образа он должен быть не меньше 512 байт). Наш образ готов! Данные сохранены в файл «mbr.bin» в вашей домашней директории. Используя полученный образ, можно загрузить основной grub2 из-под другого при поврежденном MBR диске. Если у вас есть другая установленная linux-система с grub2 на другом жестком диске или загрузочная флэшка с grub2 (создание таковой описано выше) — можете попробовать на практике нижеприведенный совет. Итак, в моем примере я загружаюсь со своей спасительной флэшки с grub2, на которую я предварительно закинул образ MBR своего жесткого диска. Загрузившись в grub2, выходим в консоль (нажав «c»). Указываем в качестве корневого раздела тот жесткий диск, на котором по сценарию попорчен MBR, и с которого мы хотим запустить grub2. Можно указать сам диск или любой из его разделов, например так:

Проверим результат командой

Если все верно — загружаем наш образ с помощью chainloader. Здесь нужно указать полный путь, начиная с раздела, на котором лежит наш файл. Флэшка, с которой я загружен именуется (hd0), так что команда будет выглядеть так:

Если все тихо — даем команду на запуск:

и наслаждаемся родным grub2.
Примечание: в MBR (и, соответственно, в полученном образе) нет четкого указания жесткого диска, поэтому через наш образ загрузится grub2 с того раздела, который был указан в качестве корневого (root) в консоли grub2. Загрузив родную систему, мы можем восстановить из-под нее MBR диска. Но если лишнего grub2 у вас под рукой нет, действовать мы будем с LiveCD.
Грузимся с LiveCD любой linux-системы (в данном случае поддержка grub2 роли не играет). Для восстановления MBR нам нужно будет «раскатать» ранее созданный образ обратно в первый сектор диска. Но для начала проверим таблицу разделов, ведь вполне возможно, что grub2 не грузился и из-за нее. Для этого выполните

Если fdisk видит разделы — таблицу разделов трогать не будем, а восстановим только код загрузчика. В этом случае нам нужно перезаписать лишь первые 446 байт. Если же «убита» и таблица разделов — все 512. Определившись, что именно мы делаем, копируем нужное количество байт из образа в первый сектор диска. В примере ниже таблица разделов в порядке, восстанавливаем только grub2:

Если нужно восстановить и таблицу разделов — укажите 512 вместо 446. В качестве значения if пропишите путь к файлу образа, в of — тот диск, загрузочный сектор которого мы восстанавливаем. Если все прошло успешно — перезагружаемся, грузимся с починенного диска и радуемся.
Еще одна полезная возможность — полученный образ можно использовать для загрузки grub2 через NTLDR (в случае, если grub2 не загружает нормально Windows, и вы хотите сделать NTLDR основным загрузчиком). Но об этом как-нибудь позже.
P.S. Через grub4dos данный трюк провернуть не получится, возникает ошибка: Geom Error Missing Helper.

Создание LiveCD с GRUB2

В случае, если ваш компьютер не поддерживает загрузку с usb, можно создать cd-диск с grub2, через который можно будет загрузить свою систему при неисправности основного grub2. Для начала создадим в удобном месте каталог, в котором будем собирать наш диск, а в ней вложенные каталоги «/boot» и «/boot/grub»:

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

Теперь нам нужно написать файл конфигурации «grub.cfg», содержащий загрузочное меню и настройки. Вы можете взять за основу ваш «/boot/grub/grub.cfg» и изменить его под текущие нужды, а можете написать его с нуля — оба варианта подходят если вы понимаете структуру «grub.cfg». В противном случае вы можете взять готовый шаблон, помещенный в конце этого раздела и отредактировать его. Для тех же, кто избрал «путь самурая» — подробнее о создании собственного «grub.cfg» вы можете почитать выше, в разделе «создание дополнительных меню загрузки». Здесь же опишу лишь некоторые специфичные для LiveCD вещи. Если вы берете за основу «/boot/grub/grub.cfg» — уберите из него строки, задающие ваш рут-раздел системы в качестве root («search. uuid_раздела. «). Корневым разделом должен быть cd-диск! Если вы выбрали вариант с графическим меню — нужно обязательно подгрузить скопированный ранее шрифт. Кроме того, следует, собственно, включить графический режим. Для этого добавьте такие строки:

И еще один очень важный момент: в начале файла должна иметься такая строка: insmod part_msdos загрузка данного модуля обязательна! Без него полученный grub2 увидит только жесткий диск, но не увидит таблицу разделов на нем, и такой LiveCD будет бесполезен. Про настройки цветов/разрешения и всего прочего читайте в вышеупомянутом разделе. А теперь же перейдем к созданию самого меню. Вы можете скопировать нужные пункты из «/boot/grub/grub.cfg», но я рекомендую написать их с нуля, ибо для корректной работы тамошних пунктов потребуется загрузка дополнительных модулей. А написать их несложно, для Linux-системы пункт меню должен иметь такой вид:

В качестве uuid нужно задать тот раздел, где находится ваш /boot (если у вас общий / — пишите его, если отдельный /boot-раздел — именно его и указываем, а не /. В случае с отдельным /boot пути будут выглядеть как «/vmlinuz. » и «/initrd. «) UUID узнать проще всего командой blkid запущенной от рута. Для Windows будет что-то такое:

Закончив с файлом, сохраняем его как «grub.cfg» в целевом каталоге (в моем случае — »

/tmp/iso/boot/grub/grub.cfg»). Теперь мы готовы к созданию iso-образа нашего LiveCD. В этом нам поможет утилита grub-mkrescue. команда будет выглядеть так:

Вместо «tmp/iso» укажите свой каталог, а вместо «tmp/grub.iso» — путь, куда сохранить полученный iso-образ. Если все успешно — получаем на выходе очень небольшой iso-шник (

2.8M), прожигаем его на rw-шку (лучше программой cdrecord из пакета cdrtools) и пробуем грузиться!

Пример файла «grub.cfg»

Как и обещал, привожу пример файла «grub.cfg», корректно работающего на LiveCD с комментариями:

Создание LiveCD с GRUB2 на базе имеющегося дистрибутива

(за идею спасибо тов. komix)
Поскольку тратить целую болванку ради записи iso-шника с grub2 в 3 мегабайта было бы глупо, можно совместить приятное с полезным, а именно: LiveCD с grub2 и установочный диск какой-нибудь системы. Исходить мы будем из того, что имеется iso некоего LiveCD, к которому мы хотим прикрутить grub2. Порядок действий будет в целом аналогичен описанному в предыдущем пункте. Первым делом создадим каталог, в котором будем собирать наш новый диск. В нём же создадим каталог /boot/grub и каталог, в который будут помещены файлы нашей live-системы (я назову ее live):

Теперь нам нужно примонтировать iso-образ нашей системы в свежесозданный каталог для нее:

Теперь создайте «grub.cfg», как это описано в предыдущем пункте (не забудьте скопировать файл шрифта, если хотите использовать графическое меню). Здесь все аналогично вышеописанному способу, но с той лишь разницей, что в меню мы добавим пункт для загрузки нашей live-системы. Как именно нужно запускать «живое ядро»? На этот вопрос нет универсального ответа. Узнать это можно, покопавшись в настройках прилагаемого загрузчика (обычно это isolinux или же старый grub — в обоих случаях понять логику несложно). Приведу конкретный пример для мини-дистрибутива Parted Magic:

В данном случае этого будет достаточно. Для других систем могут потребоваться дополнительные параметры загрузки ядра. Ядро же может лежать в «/live/boot» или в другом каталоге в зависимости от конкретного дистрибутива. Обратите внимание на то, что здесь не используются строки вида «set root. » или «search. «. Если вы создали правильный «grub.cfg», то корневым разделом при загрузке устанавливается cdrom, поэтому нет нужды его задавать повторно. После того, как «grub.cfg» готов, можно приступить к созданию iso-образа:

Продолжительность процесса зависит от размера оригинального дистрибутива. По окончании получаем свежеиспеченный iso-образ с оригинальным дистрибутивом и бонусом в виде grub2. Отмонтируем оригинальный iso:

и прожигаем новый iso-шник на болванку. Грузимся и проверяем результат.

Добавление в меню пункта загрузки с CD/DVD & USB

Средствами исключительно GRUB загрузиться с CD-ROM/USB не получится, но «мир не без добрых людей». Существуют мультизагрузчики, не такие многофункциональные, как GRUB, но, зато, умеющие грузить систему с CD-ROM/USB, даже если BIOS такой возможности не предоставляет.

Способ 1. Загрузка с CD & USB посредством Plop Boot Manager

Сама загрузка будет осуществляться посредством Plop Boot Manager. Для этого качаем архив Plop’а, откуда извлекаем файл plpbt.bin, и кидаем его в каталог /boot/ нашей системы. Далее открываем файл /etc/grub.d/40_custom:

И добавляем в него следующие строчки (мой системный раздел — (hd0,1)):

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

Затем обновляем grub.cfg:

Перезагружаемся, радуемся результату.

Способ 2. Загрузка с CD посредством Smart Boot Manager

В этом случае загрузка будет осуществляться посредством Smart Boot Manager. Итак, качаем два файлика: memdisk.bin — «крохотный» файлик из пакета Питера Анвина syslinux и sbootmgr.dsk — образ загружаемой дискеты из Smart Boot Manager. Кидаем оба файлика в каталог /boot/ нашей системы. Далее открываем файл /etc/grub.d/40_custom:

И добавляем в него следующие строчки (мой системный раздел — (hd0,1)):

Затем обновляем grub.cfg:

Перезагружаемся, смотрим результат.

Деактивация recordfail grub2

GRUB2 поставляется с функцией, которая после неудачной попытки загрузки во время следующей загрузки автоматически останавливается в меню загрузки.
Это может быть нежелательным в определенных обстоятельствах. В зависимости от версии GRUB, изменения необходимо внести либо в файл /etc/grub.d/00_header, либо в переменную GRUB_RECORDFAIL_TIMEOUT в файле /etc/default/grub.
Сначала выполните поиск в файле /etc/grub.d/00_header.

Если это найдено (точное совпадение, или чуть-чуть изменённое), то просто добавьте комментарии:

Также строчка может иметь такой вид:

Затем отредактируйте файл /etc/default/grub и добавьте строку:

Для таймаута в 7 секунд. Потом выполните обновление конфигурации grub:

Теперь GRUB2 будет всегда использовать установленное время ожидания.

Ручной сброс значения recordfail

Значение для grubenv можно сбросить вручную. Для этого нужно ввести в консоли grub следующее:

Источник:http://ru.m.wikibooks.org/wiki/Grub_2

Оцените статью
( 1 оценка, среднее 5 из 5 )
CompPC - все про Windows 10
Добавить комментарий