Ссылки по теме
GRUB (GRand Unified Bootloader) — мультисистемный модульный программируемый кроссплатформенный загрузчик с поддержкой сети, множества файловых систем, таблиц разделов, логических томов, образов и архивов.
Текущая версия GRUB — GRUB 2 — не использует код старой ветки GRUB 0.9x (GRUB Legacy) и создана на основе проекта PUPA.
Данная статья применима к:
- Astra Linux Special Edition РУСБ.10015-01 и РУСБ.10015-10 (очередное обновление 1.7)
- Astra Linux Special Edition РУСБ.10015-37 (очередное обновление 7.7)
- Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 1.6)
Astra Linux Special Edition РУСБ.10015-16 исп. 1
Astra Linux Common Edition 2.12
В общем случае, после внесения изменений в конфигурационные файлы загрузчика (файл /etc/default/grub или файлы в каталоге /etc/grub.d/) для вступления изменений в силу следует выполнить команду обновления загрузчика:
При этом будет переписан файл /boot/grub/grub.cfg, и все внесенные в него изменения будут утеряны.
Для внесения изменений в конфигурационные файлы требуются права суперпользователя (при включенном МКЦ – права суперпользователя с высоким уровнем целостности).
Релиз GRUB-2.00 уже вышел, но разработка продолжается. В репозиториях Arch Linux появляюся самые свежие, в том числе и бета-версии GRUB, поэтому переустанавливать загрузчик (командой grub-install) и особенно обновлять файл конфигурации (командой grub-mkconfig) следует с осторожностью.
Если вы хотите стабильности – не переустанавливайте без необходимости загрузчик и не запускайте генератор конфига. Пакет grub сам по себе содержит лишь утилиты и файлы, необходимые для установки и настройки загрузчика, и обновления пакета не затрагивают загрузчик. Однако, существует некоторый риск в отношении файла grub.cfg, см. Защита конфигурации.
Если вы не хотите использовать GRUB2, можно установить GRUB Legacy из AUR.
Замечание для текущих и бывших пользователей GRUB Legacy
- Обозначения устройств в GRUB2 отличаются от таковых в GRUB Legacy. Разделы теперь нумеруются с 1 (как в Linux), а диски по-прежнему с 0. Например, первый раздел первого диска в GRUB2 обозначается как
hd0,1.
- GRUB2 теперь модульный, и не имеет постоянных образов stage1_5 и stage2. Роль stage1_5 в GRUB2 играет образ core.img/core.efi, при каждой установке загручика собираемый из ядра GRUB2 и модулей, необходимых для доступа к файловой системе. Остальные модули загружаются из ФС по мере надобности, расширяя функциональность загрузчика.
Восстановить загрузчик Linux в Rescue
Восстановить загрузчик Linux в Rescue
Основной загрузчик операционных систем Linux — GRUB. При возникновении проблем восстановить загрузчик можно с помощью LiveCD — загрузиться в режим Rescue.
В Live-системе необходимо смонтировать все разделы в заранее созданную папку (например /mnt) аналогично тому, как они были смонтированы в основной системе.
Чтобы восстановить загрузчик:
Запустите систему с LiveCD и откройте терминал.
Найдите корневой раздел, в который установлена система, с помощью команды
fdisk(в выводе найдите раздел с типомLinux filesystem):Если система установлена в разделе без использования LVM, то корневой раздел будет находиться в
/dev/sda*:- в разделе с использованием LVM —
/dev/mapper; - если разделы находятся на софтверном RAID-массиве —
/dev/md*(монтирование выполняется в соответствующий массив);
- в разделе с использованием LVM —
Допустим, в основной системе есть корневой раздел
/, находящийся в/dev/sda2и раздел/boot, находящийся в/dev/sda1. Смонтируйте разделы в/mnt:mount /dev/sda2 /mnt/
mount /dev/sda1 /mnt/bootЕсли используется UEFI-загрузчик, то примонтируйте также EFI-раздел:
mount /dev/sda3 /mnt/boot/efiУкажите
/dev/sda3— раздел c EFI.С помощью команды
cat /mnt/etc/fstabможно посмотреть точку монтирования в основной ОС, а также UUID диска и сопоставить его с UUID-диска в Live-образе.Примонтируйте директории
/sys,/proc,/dev:mount --bind /sys /mnt/sys
mount --bind /proc /mnt/proc
mount --bind /dev /mnt/devПерейдите в окружение основной системы с помощью
chroot:Если возникает ошибка, то используйте команду с
/bin/bash:Если GRUB на дисках не установлен, то установите его. Если установка не требуется, то переходите к шагу 7. GRUB нужно устанавливать на все диски, с которых вы планируете загружаться. Например, если для загрузочного раздела используется RAID0:
В зависимости от количества устройств в RAID может быть больше дисков.
Для генерации файла конфигурации GRUB введите:
Выйдите из окружения
chroot:
Grub (GNU GRand Unified Bootloader) – свободный загрузчик операционных систем, который используется во многих дистрибутивах Linux. Он позволяет выбирать операционную систему для загрузки при старте компьютера и управлять процессом загрузки системы, также поддерживает загрузку различных ОС, включая различные версии Linux, Windows, macOS, позволяет настраивать параметры загрузки, создавать различные профили загрузки и выполнять другие задачи, связанные с загрузкой операционных систем.
Grub обычно устанавливается в начало жесткого диска компьютера и запускается при старте системы для предоставления пользователю возможности выбора операционной системы для загрузки. Grub является важной частью многих дистрибутивов Linux и играет ключевую роль в процессе загрузки операционной системы.
GRUB (GNU GRand Unified Bootloader) — мощный и гибкий загрузчик операционных систем, который используется во многих дистрибутивах Linux и других операционных систем, таких как FreeBSD. GRUB предоставляет пользователю возможность выбора операционной системы или ядра, которое нужно загрузить при старте компьютера.
Позволяет загружать различные операционные системы, а также варианты загрузки для конкретной операционной системы, например, в безопасном режиме или с другими параметрами загрузки. Он также поддерживает многоядерные системы и может автоматически обнаруживать установленные операционные системы на жестком диске. Имеет гибкую конфигурацию, которая позволяет пользователям настраивать параметры загрузки, добавлять новые ядра или операционные системы в меню загрузки, а также выполнять другие действия при загрузке системы.
GRUB является одним из наиболее распространенных загрузчиков для систем Linux и используется по умолчанию во многих дистрибутивах Linux, таких как Ubuntu, Fedora, Debian и многих других.
Если Grub не видит Windows 10 при загрузке, возможно, что загрузочная запись Windows была повреждена или удалена. Есть несколько причин, почему так происходит:
- Неправильная конфигурация: если Grub неправильно сконфигурирован или не обновлен после установки Windows 10, он может не видеть новую операционную систему.
- Изменения разделов диска: после установки Виндовс 10 могли произойти изменения в разделах диска, из-за чего Grub перестал её видеть..
- Проблемы с загрузочным сектором: некорректное обновление загрузочного сектора или MBR (Master Boot Record) могут привести к проблеме.
- Проблемы с UEFI/BIOS: некорректные настройки в UEFI или BIOS компьютера могут привести к тому, что Grub не сможет правильно обнаружить операционную систему.
- Поврежденные файлы загрузки: если файлы загрузки повреждены или отсутствуют, Grub не сможет их обнаружить.
Дальше расскажем, что же делать, если возникла такая проблема.
Сначала можно попытаться сделать наш с Windows раздел более видимым для программы. Для этого примонтируйте его в какую-либо папку. Например, в /mnt/:
sudo mount -t ntfs-3g -o ro /dev/sda1
Система Windows установлена на разделе, который определяется в Linux, как /dev/sda1. Дальше запустите утилиту os-prober:

Если программа обнаружит Windows, останется обновить конфигурацию загрузчика Grub:

sudo grub2-mkconfig -o /boot/grub/grub.cfg
Если же этот способ не сработает, останется только вручную добавить пункт меню для Windows. Это не самое простое, но зато эффективное решение. Сначала нам нужно узнать UUID раздела диска, на который установлена Windows, например, /dev/sda1:

Затем откройте файл /etc/grub.d/40_custom и добавьте туда такой код:

Так мы устанавливаем в качестве корня первый раздел первого диска, а затем указываем загрузчику, что нужно найти раздел с нужным нам UUID. Затем передаем управление загрузчику на этом разделе с помощью chainloader. Дальше осталось обновить конфигурацию Grub:
Мы использовали такой метод потому что теперь настройка не собьется после обновления ядра или другого процесса, инициализирующего обновление конфигурации. Потому что если бы мы добавили эти строки в /boot/grub/grub.cfg, то они были бы перезаписаны если не при первом, то при одном из следующих обновлений системы.
Когда конфигурация обновлена вы можете перезагрузить компьютер и загружать Windows с помощью нового пункта. Таким образом, можно добавить несколько пунктов, только для разных разделов нужно указывать их UUID.
В этой статье мы представляем вам подробные и нструкции по восстановлению загрузчика Windows из командной строки. Независимо от версии операционной системы, вы найдете здесь необходимые шаги для быстрого решения проблемы!

- Система Windows 10 не загружается, что делать?
- Вопросы и ответы
- Комментарии
Система Windows 10 не загружается, что делать?
Не загружается Windows? Восстанови загрузку Windows 10, 8 или 7 (bootrec, fixmbr, fixboot) 👨💻⚕️💻
Как запустить, открыть командную строку от имени администратора в Windows 10, 8 или 7 💻⌨️👨💻
Восстановите данные, утерянные в результате повреждения загрузчика

Восстановление загрузчика Windows, повреждение или перезапись системных файлов, ошибки файловой системы или наличие битых секторов диска – это не далеко полный список причин утери данных.
Восстановление загрузочного сектора Windows вернет работоспособность операционной системы, но может привести к утере личных файлов. Не всегда имеется возможность вернуть работоспособность Windows без чистой установки операционной системы, что также может повлечь за собой утерю файлов.
Загрузите бесплатно и просканируйте компьютер с помощью Hetman Partition Recovery. Ознакомьтесь с возможностями программы и пошаговой инструкцией.
Инструмент восстанавливает файлы с любых устройств, независимо от причины потери данных.
Восстановите загрузчик Windows 10 из командной строки
В случае повреждения, загрузчик Windows можно восстановить с помощью Командной строки.
Если система не загружается, то запустите диагностическую утилиту с загрузочного диска:
- Запустите компьютер используя загрузочный диск.
- В загрузившемся меню перейдите в Восстановление системы / Диагностика / Дополнительные параметры / Командная строка.

Автоматическое восстановление Windows из консоли, вход в среду восстановления 🛠️👨💻⚕️
Если вы можете загрузить Windows, выполните следующее:
- Нажмите Windows + R.
- Ведите в окне cmd и нажмите на Enter.
Используйте команду bootrec.exe для восстановления загрузчика:
Введите в Командной строке bootrec.exe /fixboot

- Перезагрузите компьютер.
Программы для восстановления загрузчика Windows 10
Если в наличии нет оригинального загрузочного диска Windows, то загрузить компьютер, в том числе и с целью восстановления загрузчика, можно с помощью диска загрузочной сборки – LiveCD. Как правило на таких дисках имеется и несколько программ для восстановления загрузчика Windows 10. Такие программы можно запускать прямо из LiveCD – для них не требуется запускать операционную систему c жесткого диска компьютера, они работают в портативном режиме.
- Найдите и запишите образ подходящего вам LiveCD на CD/DVD-диск или USB-накопитель.
- Подключите LiveCD к компьютеру и включите его. Компьютер автоматически загрузится с LiveCD (в BIOS или UEFI необходимо изменить очередность загрузки с CD или USB).
Запустите программу для восстановления загрузчика, установленную на вашем LiveCD:
- EasyBCD;
- MultiBoot;
- FixBootFull.
Следуйте указаниям программы.
- Дождитесь окончания процесса восстановления.
- Перезагрузите компьютер без использования LiveCD.
Как восстановить данные, если Windows компьютер или ноутбук не загружается, зависает, сбоит в 2020
Восстановите загрузчик Windows 10 после установки Linux, Ubuntu
Иногда, после установки Ubuntu Linux второй системой, основная система Windows 10 перестаёт загружаться. Это связано с возможной перезаписью загрузочного сектора Windows.
Для восстановления загрузчика Windows и сохранения возможности загрузки Ubuntu Linux необходимо сделать следующее:
- Сохраните загрузочный сектор Ubuntu Linux. Для этого запустите терминал и введите в нём:
dd if=/dev/sda3 of=/linux.boot bs=512 count=1.
В результате данной команды загрузочная запись скопируется в каталог пользователя под которым работает ПК. Перейдите в папку пользователя и скопируйте данный файл в раздел, в котором установлен Windows. - Запустите компьютер используя загрузочный диск Windows.
- В загрузившемся меню перейдите в Восстановление системы / Диагностика / Дополнительные параметры / Командная строка.
Введите в Командной строке:
bootrec.exe /FixMbr
bootrec.exe /FixBoot
В результате восстановиться загрузчик Windows но с большой вероятностью будет повреждён загрузчик Ubuntu Linux. Для возобновления его работоспособности:
Перезагрузите Windows, запустите консоль с правами администратора и введите:
bcdedit /create /d “Linux” /application BOOTSECTOR
После этого на компьютере смогут загружаться как Windows так и Ubuntu Linux.
Загрузчик Windows 10 восстановлен? Оставляйте отзывы и задавайте ваши вопросы в комментариях.
Это загрузчик операционной системы, который используется во многих дистрибутивах Linux. Он является одним из наиболее популярных загрузчиков для Linux и обеспечивает поддержку множества операционных систем.
GRUB (Grand Unified Bootloader) — это загрузчик операционных систем, который используется во многих дистрибутивах Linux и других операционных систем, работающих на базе UNIX. GRUB предназначен для загрузки операционных систем при запуске компьютера. Позволяет выбирать операционную систему или ядро Linux для загрузки, а также предоставляет возможность внесения изменений в параметры загрузки.
Он также позволяет работать с различными файловыми системами и загружать операционные системы с разных разделов жесткого диска. Имеет гибкую конфигурацию, которая позволяет пользователям настраивать параметры загрузки, добавлять новые ядра или операционные системы, а также выполнять другие действия при загрузке компьютера. Обычно GRUB устанавливается в начало жесткого диска и является первым этапом загрузки после BIOS. Он отображает меню выбора операционной системы и позволяет пользователю выбрать нужную для загрузки.
Восстановление grub требуется в следующих случаях:
- Установка новой операционной системы: при установке новой ОС (например, Windows) она может затереть или изменить загрузчик grub, что может привести к тому, что вы не сможете загрузиться в другие ОС на вашем компьютере. Восстановление grub поможет восстановить возможность выбора и загрузки других операционных систем.
- Обновление или удаление grub: в некоторых случаях, при обновлении или удалении grub могут возникнуть проблемы, из-за которых ваш компьютер может не загружаться. Восстановление grub поможет исправить эти проблемы и вернуть нормальную загрузку системы.
- Изменение разделов жесткого диска: если вы изменяли разделы на жестком диске (например, создали новый раздел или изменяли размер существующего раздела) без использования соответствующих инструментов, это также может привести к потере загрузчика grub. Восстановление grub позволит восстановить возможность загрузки операционных систем на вашем компьютере.
Восстановление grub позволяет вернуть нормальную функциональность загрузчика и восстановить выбор и загрузку операционных систем на вашем компьютере. Необходимо отметить, что инструкции по восстановлению grub могут различаться в зависимости от используемой операционной системы и конфигурации вашего компьютера.
Инструкция по восстановлению grub:
- Загрузитесь с помощью LiveCD или Live USB-накопителя. Должна быть установлена та же версия Linux, что и на вашем компьютере.
- Откройте терминал и выполните следующую команду, чтобы найти раздел, содержащий вашу Linux-установку: sudo fdisk -l
- Обратите внимание на раздел, помеченный как “Linux” или “Linux LVM”.
- Смонтируйте раздел Linux на вашей системе. Предположим, что он находится в разделе /dev/sda1. Выполните следующую команду для монтирования раздела: sudo mount /dev/sda1 /mnt
- Установите несколько необходимых пакетов. Выполните следующую команду: sudo apt-get install grub2-common grub-pc
- Восстановите grub. Выполните следующую команду: sudo grub-install –root-directory=/mnt /dev/sda
- Запустите обновление grub. Выполните следующую команду: sudo update-grub
- Смонтируйте раздел Linux. Выполните следующую команду: sudo umount /mnt
- Перезагрузитесь и проверьте, восстановлен ли grub.
Это базовая инструкция. В зависимости от вашей конкретной ситуации, вам могут потребоваться дополнительные шаги или команды. Если у вас возникли какие-либо проблемы или ошибки, рекомендуется обратиться к официальной документации вашего дистрибутива Linux или поискать дополнительную информацию в Интернете.
Если вы используете UEFI и хотите восстановить grub после установки Windows 10, есть более простое решение.
Вот пошаговая инструкция:
Запустите Windows 10 и откройте командную строку с правами администратора. Для этого нажмите Win + X и выберите “Командная строка (администратор)”.
В командной строке выполните следующую команду, чтобы отключить Fast Startup (Быструю загрузку) в Windows 10:
powercfg /h off`
Теперь выполните следующую команду, чтобы увидеть список разделов на вашем компьютере:
В командной строке Diskpart выполните следующую команду, чтобы узнать номер раздела, в котором установлена ваша Linux-система. Обратите внимание на размер раздела (в GB) и метку файловой системы, чтобы найти правильный раздел. Запишите номер раздела, он понадобится на следующем шаге.
Теперь в командной строке выполните следующую команду, чтобы восстановить загрузчик GRUB на выбранный раздел (номер_раздела):
(зависит от вашего дистрибутива).
Перезагрузите компьютер. Теперь должен быть восстановлен grub и вы сможете выбрать вашу Linux-систему в меню загрузки.
Это более простое решение, которое позволяет восстановить grub с использованием Windows 10 и без необходимости использовать LiveCD или другие инструменты. Обратите внимание, что в некоторых случаях может потребоваться дополнительная настройка или более сложные действия.
Переустановка GRUB после установки Windows 10 может быть вызвана изменениями в загрузочном секторе диска, которые вносит Windows при своей установке. Windows использует свой загрузчик (Boot Manager), который может заменить GRUB и стать основным загрузочным менеджером.
Для восстановления GRUB после установки Windows 10 вам может потребоваться выполнить следующие шаги:
- Загрузитесь с Live CD или USB с Linux (например, Ubuntu Live CD).
- Откройте терминал и выполните команды для установки GRUB на диск. Например, если ваш Linux находится на /dev/sda, то команда может выглядеть примерно так: sudo grub-install /dev/sda
- После этого обновите конфигурацию GRUB, выполнив команду: sudo update-grub
- Перезагрузите компьютер и проверьте, успешно ли восстановлена загрузка GRUB.
Если эти шаги не помогли, возможно, что процесс восстановления требует более глубокого понимания структуры разделов на вашем жестком диске. В этом случае рекомендуется обратиться к специалисту или форумам поддержки Linux для получения более точной инструкции, учитывая конкретные детали вашей системы.
Требования к диску
Загрузчик в BIOS
Сама по себе BIOS, как правило, не требует наличия на диске каких-либо таблиц разделов.
Примечание: Некоторые реализации BIOS могут проверять содержимое MBR, чтобы определить тип носителя (особенно это относится к USB-дискам и флешкам). Носитель без MBR, или носитель с очень маленьким первым (по номеру) разделом типа FAT, может быть ошибочно принят некоторыми версиями BIOS за USB-флоппи-дисковод, что может сделать невозможной нормальную загрузку с него.
Примечание: Некоторые реализации BIOS могут отказаться запускать код загрузчика, если ни один из разделов MBR не отмечен флагом “bootable”. Несмотря на это, BIOS может запустить код загрузчика только из бут-сектора диска (сектор MBR), но не раздела, а после запуска кода GRUB уже не важно, на какой из разделов установлен флаг.
Участие BIOS в процессе загрузки сводится к считыванию с диска его начального сектора размером в 512 байт, проверке наличия в конце сектора сигнатуры 55AA, и запуску содержимого как исполняемого кода. Так как в 512 байт невозможно уместить сколь-нибудь сложную программу, единственное, что может сделать код начального сектора – загружать с диска другие сектора, на чтение файлов он не способен.
Поэтому, для успешной загрузки в режиме BIOS, используемый способ разметки диска должен предусматривать:
1) встраивание кода загрузчика в начальный сектор;
2) выделение на диске специальной, не занятой файловыми системами области (группы секторов), из которой будет загружаться стартовый образ загрузчика, умеющий читать хотя бы одну файловую систему.
Программа установки GRUB2 умеет встраивать код BIOS-версии загрузчика на диски с таблицами разделов MBR и GPT, которые удовлетворяют обоим требованиям.
В обоих случаях, для встраивания используются два образа:
- boot.img, код которого встраивается в начальный сектор диска,
- core.img, собираемый программой установки из ядра GRUB и модулей доступа к используемой на диске таблице разделов и файловой системе.
Требования GRUB2-BIOS к MBR
Сама по себе таблица разделов на диске с разметкой MBR занимает 68 байт в конце начального сектора диска, последние два байта занимает “загрузочная” сигнатура 55AA. Оставшиеся 442 байта с начала сектора – и есть то место, в которое встраивается код загрузчика из образа boot.img.
Для встраивания образа загрузчика core.img на диск с MBR, используется промежуток между начальным сектором с MBR и самым первым (по расположению) разделом. Если ближайший к началу диска раздел начинается с сектора 63 или больше,
# fdisk -l /dev/sda ... Device Boot Start End Blocks Id System /dev/sda1 63 2120579 1060258+ 82 Linux swap / Solaris ...
то в большинстве случаев этого места (31КБ) вполне достаточно для встраивания GRUB2. Размер образа core.img зависит от размера модулей для чтения используемых таблицы разделов и ФС. В частности, для комбинации MBR+ext4 он составляет всего 25КБ.
Однако, в некоторых более сложных случаях, размер образа может оказаться больше 31КБ, и тогда отступа в 63 сектора уже не хватит. Поэтому современные версии fdisk по-умолчанию предлагают создавать первый раздел с гораздо большим отступом (1МБ), начиная с 2048 сектора.
Требования GRUB2-BIOS к GPT
Начальный сектор диска с разметкой GPT зарезервирован, как ни странно, для MBR, которая обычно используется для совместимости, но точно так же оставляет в секторе те же 442 байта, достаточные для встраивания кода загрузчика из boot.img. Сама GPT располагается на следующих секторах.
В отличии от MBR, GPT предусматривает возможность создания на диске специального раздела для встраивания BIOS-загрузчика. Раздел BIOS boot partition имеет GUID=21686148-6449-6e6f-744e656564454649, и может быть создан в fdisk как раздел типа 4, или в gdisk как раздел типа EF02. Этот раздел не должен содержать никакой файловой системы, иначе она будет затёрта при установке загрузчика. Номер раздела может быть любым, расположение также практически любым. На больших дисках рекомендуется располагать BIOS boot partition в пределах первых 2ТБ, поскольку средства BIOS, скорей всего, не позволят прочесть более дальние сектора.
Если такой раздел на диске с GPT создан, программа установки GRUB2 автоматически найдёт его и использует для встраивания стартового образа BIOS-версии загрузчика. Минимальные требования к размеру раздела те же, что и для просвета перед первым разделом в случае MBR – на это место должен поместиться образ core.img. Так как расположение BIOS boot partition не привязано к началу диска, создать его с размером порядка 1МБ будет несложно, и более чем достаточно в любом случае.
Загрузчик в UEFI
В отличии от BIOS, UEFI загружает образ загрузчика из файла, и поэтому предъявляет определённые требования к таблице разделов, разделу, файловой системе, и к содержимому загружаемого файла.
- Таблица разделов
- Большинство реализаций UEFI поддерживает таблицы разделов GPT и MBR. Некоторые, однако, могут не поддерживать MBR, а некоторые могут поддерживать другие таблицы разделов, специфичные для производителя.
- Загрузочный раздел
- Загрузочный раздел UEFI называется “EFI system partition“, он же ESP, он же EFISYS. На каждом диске может быть не более одного такого раздела.
- В GPT он должен иметь тип EF00 (
GUID=C12A7328-F81F-11D2-BA4B-00A0C93EC93B), и может располагаться в любом месте диска под любым номером. - К загрузочному разделу в MBR требования более жесткие: он должен одновременно иметь тип EF, флаг “bootable“, и быть первым.
- В GPT он должен иметь тип EF00 (
- Файловая система
- Большинство реализаций UEFI работают с загрузочным разделом с файловой системой FAT любой разрядности – FAT12, FAT16 и FAT32. Некоторые реализации могут требовать только FAT32, некоторые могут поддерживать другие ФС, специфичные для производителя.
- Загрузочный образ
- Загружаемый файл должен быть оформлен как EFI-приложение, а значит иметь унаследованный от DOS и Windows бинарный формат MZ/PE (Portable Executable) и соответствовать архитектуре UEFI. Все реализации UEFI для платформы PC имеют архитектуру x86_64, а значит и сборка загрузчика обязательно должна быть под эту архитектуру. Сборка загрузчика под i386 может быть полезна только на некоторых специфических машинах, в основном это старые компьютеры фирмы Apple, а также некоторые миниатюрные устройства на мобильных SoC производства Intel.
- Имя файла по-умолчанию
- UEFI архитектуры x86_64 автоматически находит на загрузочном разделе и запускает файл
\EFI\BOOT\BOOTX64.EFI, который может быть стартовым образом загрузчика.
- Загрузочные записи
- На загрузочный раздел можно записать больше одного EFI-приложения, каждое под своим именем и в свой каталог. Чтобы можно было запускать их при старте, UEFI обычно предоставляет через специальный программный интерфейс доступ к загрузочным записям – особым переменным (UEFI Variables), хрянящимся в энергонезависимой памяти материнской платы (NVRAM). Каждая загрузочная запись содержит:
- видимый в пользовательском интерфейсе UEFI заголовок,
- тип таблицы разделов,
- ID таблицы разделов,
- расположение и размер загрузочного раздела,
- путь к исполняемому файлу EFI-приложения.
- Кроме самих загрузочных записей, в NVRAM задаётся порядок их проверки при загрузке, который может быть изменён пользователем.
- Программа установки GRUB2 будет пытаться создать загрузочную запись с помощью пакета efibootmgr, сохранив в ней параметры для запуска созданного ей образа загрузчика.
Примеры исправления проблем
Сообщение о невозможности встраивания в MBR
grub-setup: warn: This msdos-style partition label has no post-MBR gap; embedding won't be possible! grub-setup: warn: Embedding is not possible. GRUB can only be installed in this setup by using blocklists. However, blocklists are UNRELIABLE and its use is discouraged. grub-setup: error: If you really want blocklists, use --force.
Эта ошибка может возникнуть, когда вы попытаетесь установить в виртуальную машину VMware. Читайте больше об этом здесь.
Это также может случится, если первый раздел начинается сразу после MBR, без необходимого места в 60 блоков перед первым разделом.
Запрет загрузки в режиме восстановления. Время ожидания выбора при загрузке
Для того, чтобы запретить варианты загрузки в режиме восстановления:
Открыть в редакторе файл /etc/default/grub:
sudo nano /etc/default/grub
Дополнительно в этом же файле можно уменьшить время ожидания при выборе варианта загрузки (по умолчанию – 5 секунд), например, совсем скрыв меню (в таком случае в меню НЕЛЬЗЯ будет попасть, зажав при загрузке клавишу Shift, и возможности выбора ОС/ядра не будет):
Для скрытия загрузчика с сохранением возможности переключения клавишей Shift на этап выбора ОС/ядра к параметру GRUB_TIMEOUT=0 добавить GRUB_HIDDEN_TIMEOUT=5:
Сохранить изменения, выйти из редактора;
Для того, чтобы эти изменения вступили в силу, обновить загрузчик командой:
Пункты меню, позволяющие выбрать для загрузки режим восстановления, можно убрать из меню и путем редактирования файла /boot/grub/grub.cfg (см. ниже, но эти изменения не будут сохраняться после выполнения команды обновления загрузчика update-grub.
Включение/выключение
Включение/выключение plymouth при загрузке управляется наличием/отсутствием опции splash в строке значений параметра GRUB_CMDLINE_LINUX (для всех режимов загрузки) или в параметрах GRUB_CMDLINE_LINUX_DEFAULT, GRUB_CMDLINE_LINUX_HARDENED для соответствующих режимов.
Использовать plymouth в обычном режиме загрузки:
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash parsec.max_ilev=63"
Запрет выбора загрузки ядра GENERIC
Для того, чтобы запретить все варианты загрузки, кроме варианта HARDENED:
С правами суперпользователя открыть в редакторе файл /boot/grub/grub.cfg:
sudo nano /boot/grub/grub.cfg
Закомментировать ненужные блоки кода, начинающиеся с menuentry, например:
Изменения, сделанные в файле /etc/grub/grub.cfg не будут сохраняться после выполнения команды обновления загрузчика update-grub.
Настройка выбора ядра для загрузки
Для указания ядра, загружаемого по умолчанию используется параметр GRUB_DEFAULT в файле /etc/default/grub. Значением этого параметра может быть:
- число — порядковый номер элемента выбора ядра меню загрузчика. Нумерация начинается с нуля;
идентификатор элемента меню загрузчика. Например:
GRUB_DEFAULT=gnulinux-5.15.0-70-hardened-advanced-4d59e93e-ab3e-4f05-be84-1774cd76ab8d
специальное значение saved – использовать последнее загруженное ядро (для сохранения информации о последнем загруженном ядре необходимо добавить параметр
GRUB_SAVEDEFAULT="true"):
Получить список элементов меню выбора ядра можно командой:
sudo grep ^menuentry /boot/grub/grub.cfg
Пример вывода команды:
menuentry 'AstraLinux GNU/Linux, with Linux 5.15.0-70-lowlatency' --class astralinux --class gnu-linux --class gnu --class os --unrestricted $menuentry_id_option 'gnulinux-5.15.0-70-lowlatency-advanced-4d59e93e-ab3e-4f05-be84-1774cd76ab8d' {
menuentry 'AstraLinux GNU/Linux, with Linux 5.15.0-70-lowlatency (recovery mode)' --class astralinux --class gnu-linux --class gnu --class os --unrestricted $menuentry_id_option 'gnulinux-5.15.0-70-lowlatency-recovery-4d59e93e-ab3e-4f05-be84-1774cd76ab8d' {
menuentry 'AstraLinux GNU/Linux, with Linux 5.15.0-70-hardened' --class astralinux --class gnu-linux --class gnu --class os --unrestricted $menuentry_id_option 'gnulinux-5.15.0-70-hardened-advanced-4d59e93e-ab3e-4f05-be84-1774cd76ab8d' {
menuentry 'AstraLinux GNU/Linux, with Linux 5.15.0-70-hardened (recovery mode)' --class astralinux --class gnu-linux --class gnu --class os --unrestricted $menuentry_id_option 'gnulinux-5.15.0-70-hardened-recovery-4d59e93e-ab3e-4f05-be84-1774cd76ab8d' {
menuentry 'AstraLinux GNU/Linux, with Linux 5.15.0-70-generic' --class astralinux --class gnu-linux --class gnu --class os --unrestricted $menuentry_id_option 'gnulinux-5.15.0-70-generic-advanced-4d59e93e-ab3e-4f05-be84-1774cd76ab8d' {
menuentry 'AstraLinux GNU/Linux, with Linux 5.15.0-70-generic (recovery mode)' --class astralinux --class gnu-linux --class gnu --class os --unrestricted $menuentry_id_option 'gnulinux-5.15.0-70-generic-recovery-4d59e93e-ab3e-4f05-be84-1774cd76ab8d' {
menuentry 'AstraLinux GNU/Linux, with Linux 5.10.176-1-hardened' --class astralinux --class gnu-linux --class gnu --class os --unrestricted $menuentry_id_option 'gnulinux-5.10.176-1-hardened-advanced-4d59e93e-ab3e-4f05-be84-1774cd76ab8d' {
menuentry 'AstraLinux GNU/Linux, with Linux 5.10.176-1-hardened (recovery mode)' --class astralinux --class gnu-linux --class gnu --class os --unrestricted $menuentry_id_option 'gnulinux-5.10.176-1-hardened-recovery-4d59e93e-ab3e-4f05-be84-1774cd76ab8d' {
menuentry 'AstraLinux GNU/Linux, with Linux 5.10.176-1-generic' --class astralinux --class gnu-linux --class gnu --class os --unrestricted $menuentry_id_option 'gnulinux-5.10.176-1-generic-advanced-4d59e93e-ab3e-4f05-be84-1774cd76ab8d' {
menuentry 'AstraLinux GNU/Linux, with Linux 5.10.176-1-generic (recovery mode)' --class astralinux --class gnu-linux --class gnu --class os --unrestricted $menuentry_id_option 'gnulinux-5.10.176-1-generic-recovery-4d59e93e-ab3e-4f05-be84-1774cd76ab8d' {
menuentry 'AstraLinux GNU/Linux, with Linux 5.4.0-110-generic' --class astralinux --class gnu-linux --class gnu --class os --unrestricted $menuentry_id_option 'gnulinux-5.4.0-110-generic-advanced-4d59e93e-ab3e-4f05-be84-1774cd76ab8d' {
menuentry 'AstraLinux GNU/Linux, with Linux 5.4.0-110-generic (recovery mode)' --class astralinux --class gnu-linux --class gnu --class os --unrestricted $menuentry_id_option 'gnulinux-5.4.0-110-generic-recovery-4d59e93e-ab3e-4f05-be84-1774cd76ab8d' {Идентификаторы элементов меню, которые можно использовать для задания умолчания, находятся после параметра $menuentry_id_option.
Получить список элементов меню с их номерами можно командой:
Пример вывода команды:
0 AstraLinux GNU/Linux, with Linux 5.15.0-70-lowlatency 1 AstraLinux GNU/Linux, with Linux 5.15.0-70-lowlatency (recovery mode) 2 AstraLinux GNU/Linux, with Linux 5.15.0-70-hardened 3 AstraLinux GNU/Linux, with Linux 5.15.0-70-hardened (recovery mode) 4 AstraLinux GNU/Linux, with Linux 5.15.0-70-generic 5 AstraLinux GNU/Linux, with Linux 5.15.0-70-generic (recovery mode) 6 AstraLinux GNU/Linux, with Linux 5.10.176-1-hardened 7 AstraLinux GNU/Linux, with Linux 5.10.176-1-hardened (recovery mode) 8 AstraLinux GNU/Linux, with Linux 5.10.176-1-generic 9 AstraLinux GNU/Linux, with Linux 5.10.176-1-generic (recovery mode) 10 AstraLinux GNU/Linux, with Linux 5.4.0-110-generic 11 AstraLinux GNU/Linux, with Linux 5.4.0-110-generic (recovery mode)
После внесения изменений в файл /etc/default/grub обновить параметры загрузчика:
Запуск GRUB2 из других загрузчиков
Загрузка из старых версий GRUB
Код конфига для GRUB Legacy, с загрузкой GRUB2:
menu.lst
default 0 timeout 1 title Chainload into GRUB v2 root (hd0,7) kernel /boot/grub/i386-pc/core.img
Загрузка из syslinux
Пример загрузки GRUB2 из syslinux приведён в статье о нём.
Установка и изменение пароля для меню загрузчика
Системный загрузчик GRUB2 поддерживает возможность задания паролей в открытом виде, и многие инструкции предлагают именно такой способ. В настоящей инструкции предлагается более безопасный способ задания пароля в виде хеша. Независимо от выбранного способа рекомендуется максимально ограничить доступ к файлу с паролем .
Для смены пароля системного загрузчика необходимо создать хеш нового пароля и заменить им старый хеш:
Для генерации хеша выполнить команду и дважды ввести новый пароль:
Полученный хеш (начиная со слова grub) скопировать в буфер (например, выделив его с помощью мыши, и нажав правую кнопку мыши выбрать “копировать”);
С помощью текстового редактора внести изменения в файл /etc/grub.d/07_password (создать такой файл, если его нет). Например, для редактирования с помощью редактора nano можно воспользоваться командой:
sudo nano /etc/grub.d/07_password
В результате редактирования должен получиться текст вида:
Цветами условно обозначены имя пользователя (красный) и созданный кеш (зеленый), в реальном редакторе цветовых обозначений нет.
Сохранить файл и выйти из редактора;
Установить права доступа к созданному новому файлу, разрешив его выполнение и максимально ограничив чтение:
sudo chmod 700 /etc/grub.d/07_password
Для того, чтобы сделанные изменения вступили в силу, обновить загрузчик командой:
Можно отключить запрос пароля grub, например для записи Windows. Для этого в файла /boot/grub/grub.cfg в параметрах загрузочного меню (строка, начинающаяся с “menuentry”) указать (добавить) параметр –unrestricted, например:
... --class gnu-linux --class gnu --class os --unrestricted ...
Изменения, сделанные в файле /etc/grub/grub.cfg не будут сохраняться после выполнения команды обновления загрузчика update-grub.
Для того, чтобы изменения сделать постоянными нужный элемент меню можно добавить в файл /etc/grub.d/40_custom, указав в нем все необходимые параметры. Например, для создания элемента меню “Windows 10 без пароля” для загрузки Windows 10 без запроса пароля (опция –unrestricted) добавить следующие строки:
menuentry "Windows 10 без пароля" --class windows --class os --unrestricted { insmod ntfs search --no-floppy --set=root --fs-uuid <UUID_загрузочного_раздела_Windows> ntldr /bootmgr }Для получения значения UUID загрузочного раздела Windows можно использовать команду:
В качестве образца для создания своего элемента меню можно использовать записи menuentry из файла /boot/grub/grub.cfg.
Рекомендации по установке загрузчика
Проще всего установить GRUB2 в корневой раздел. По-умолчанию для этого используется каталог с загрузочными образами ядра /boot, но можно установить каталог grub/ в корень /, или в другое место в пределах раздела. GRUB2 обладает средствами для чтения нескольких типов таблиц разделов, логических томов, образов дисков, множества файловых систем и архивов. В большинстве случаев он может читать свои файлы и загружать ОС практически с любого раздела и диска.
- Только в тех случаях, когда Arch Linux установлен на диск, недоступный для чтения средствами BIOS или UEFI, которыми пользуется загрузчик, либо если для корневого раздела использована слишком новая, экзотическая, или зашифрованная файловая система, не читаемая GRUB2, может потребоваться вынос каталога
/bootна отдельный диск либо раздел, и установка загрузчика на него. - Если загрузчик в состоянии прочесть корневой раздел, создание отдельного раздела для
/bootне нужно и не рекомендуется.
Если на компьютере установлено несколько операционных систем или диструбутивов, может оказаться удобным сделать один системонезависимый загрузчик, и установить его на отдельный диск или раздел. В этом случае стоит учесть следующее:
- Не требуется монтировать этот раздел в
/bootили переносить в него образы ядра – GRUB2 и так может загрузить их практически из любого раздела. - Не следует переустанавливать загрузчик без особой необходимости – от него зависит загрузка всех ОС на машине.
- Не рекомендуется использовать для общесистемного загрузчика генератор конфигурации – даже если забыть о его “сырости” и ненадёжности, скорей всего, конфигуратор будет работать только в одной системе, а в остальных всё равно придётся редактировать конфиг загрузчика. Вносить правки гораздо легче в простой и понятный конфиг, чем в громоздкий продукт деятельности конфгуратора.
Выбор таблицы разделов
- Если на диске уже есть таблица разделов, и её возможностей для ваших целей достаточно, то нет никакого смысла её менять.
- Если вы устанавливаете систему на чистый диск, и выбираете таблицу разделов, то с точки зрения установки GRUB2 предпочтительнее GPT, которая позволяет выделить для встраивания загрузчика раздел в любом месте диска. Это общая рекомендация, она действительна как для BIOS, так и для UEFI.
- Если на этот диск планируется установка ОС, не поддерживающих GPT, но поддерживающих MBR, вам придётся выбрать MBR, или в крайнем случае, гибридную разметку диска MBR+GPT.
Важно: Ни одна из версий Windows в режиме BIOS не поддерживает загрузку с GPT.
Версии Windows, поддерживающие UEFI, имеют по два варианта загрузки (и загрузчиков): только с MBR в режиме BIOS, и только с GPT в режиме UEFI. См. Windows.
- Если на диске уже имеется MBR, но в ней недостаточно места перед первым разделом для встраивания GRUB2, и освобождение этого места проблематично, одним из выходов может стать преобразование MBR в GPT, например, с помощью программы gdisk. После этого на диске можно в любом доступном месте создать BIOS boot partition, и использовать её для встраивания загрузчика.
- Если UEFI вашей машины поддерживает загрузку только с GPT, выбор очевиден.
- Если вы устанавливаете Arch Linux на переносной носитель (флешку или USB-диск), то для универсальности вы можете использовать на ней GPT, и установить в неё сразу две сборки GRUB2 – i386-pc и x86_64-efi. В этом случае на носителе понадобится создать два загрузочных раздела – EFISYS для UEFI, и BIOS boot partition для BIOS. Файлы со сборками для каждой из архитектур установятся в отдельные каталоги внутри
grub/, и не помешают друг другу. Файл конфигурации тоже можно использовать общий, но тогда для некоторых специфических настроек и действий понадобятся дополнительные проверки, описанные ниже.
- Если требуется сохранить возможность использования переносного носителя в Windows, включая XP, после создания на нём GPT и установки UEFI-загрузчика, можно использовать для этого гибридную разметку GPT+MBR, с описанием в последней только FAT-раздела с данными, и обязательно под номером 1. Остальное место на носителе в MBR должно быть покрыто “защитными” разделами с кодом 0xEE. Сделать всё это можно программой gdisk. GRUB2 в этом случае будет устанавливаться всегда только на GPT.




