Grub
Содержание:
- Восстановление Grub с помощью утилиты Boot repair
- Удаление Grub в UEFI
- Использование утилиты восстановления
- HDD Image Instructions for OS X users
- Установка Grub4Dos
- Useful tools
- Настройка интерфейса
- Password protection of GRUB menu
- Установка загрузчика Grub в MBR для BIOS
- Установка GRUB UEFI GPT
- Как установить/восстановить загрузочную запись grub?[править]
- Installing GRUB 2 on OS X
- Добавление дистрибутивов Windows XP
- Speeding up LUKS decryption in GRUB
- Решение проблем
- Расширенные возможности
- Восстановление Grub с помощью LiveCD/USB
- Где отредактировать параметры ядра?[править]
- Как отучить GRUB2 запоминать последний выбранный пункт?[править]
- Multiple entries
Восстановление Grub с помощью утилиты Boot repair
С помощью этой замечательной утилиты вы сможете восстановить загрузчик всего в пару кликов. Как видно из скриншота, утилита имеет собственный GUI, ее использование не вызовет трудностей.
Чтобы установить boot repair, вы можете воспользоваться одним из приведенных способов:
- Запись и установка специального образа диска Boot Repair (и дальнейшая загрузка с него)
- Установка Boot repair из PPA-репозитория в LiveCD/USB дистрибутиве.
Если с первым способом все понятно: нужно просто скачать и записать образ с помощью соответствующих инструментов. То во втором уже нужно знать конкретные команды, которые выглядят следующим образом:
В утилите будет доступно два варианта на выбор:
Recommended repair исправляет большую часть известных ошибок, которые могли бы возникнуть при запуске. С его помощью вы сможете пофиксить и загрузчик Grub.
Create a BootInfo summary создает Boot-Info-Script – скрипт, который позволяет диагностировать большинство проблем при загрузке.
Здесь же есть и Advanced options. Он включает в себя варианты для восстановления и настройки загрузчика Grub2 (загрузка по-умолчанию, опции загрузки ядра, отображение или скрытие GRUB при загрузке, удаление GRUB). С помощью этих же инструментов, вы можете восстановить MBR и т.д.
Удаление Grub в UEFI
Чтобы реализовать задуманное, пользователю снова потребуется программа, которая была рассмотрена в предыдущем пункте. Единственная разница заключается в том, что теперь нужно будет скачать на сайте 64-битную версию утилиты.
В UEFI совсем необязательно удалять ненужный загрузчик. Вы можете оставить обе программы в системе, переместив ненужный вариант ниже основного. То есть, нужно сделать так, чтобы Grub оказался запасным инструментом.
Пошаговое руководство:
- Запустите программу Bootice на своём ПК.
- Далее вам понадобится вкладка UEFI.
- Перейдите туда и нажмите на кнопку «Edit Boot Enteries». Перед вами откроется новое окошко.
Теперь пользователь может пойти одним из двух доступных путей:
- Опустите загрузчик Grub, воспользовавшись для этих целей клавишей Down. Это позволит сделать загрузчик Windows основной программой в системе.
- Альтернативный вариант: удалите запись о загрузчике Grub, воспользовавшись клавишей Del.
Удаление загрузчика Grub с флешки
Чтобы удалить программу с флешки, пользователи часто прибегают к распространенной ошибке. Они интуитивно выполняют действие, первое пришедшее им на ум. Что это может быть? Конечно же, форматирование флешки. Однако подобный способ не приносит нужных результатов. Дело в том, что Grub записывается в таблицу MBR, а потому требуется создание новой таблицы.
Дельнейшие процессы выполняются в Linux. Чтобы узнать имя устройства у вашей флешки, задайте в терминале специальную команду. Впишите в строке текст, указанный ниже:
Далее выполните удаление существующей таблицы. Еще раз воспользуйтесь строкой терминала Линукс:
Чтобы создать новую таблицу разделов, потребуется программа Gparted. Добавьте раздел на флешке и выполните форматирование в файловую систему FAT32. Готово! Еще раз напоминаем о том, что нельзя стирать загрузчик с жёсткого диска. Его восстановление – очень непростой и энергозатратный процесс.
Заключение
Для успешного удаления стандартного загрузчика Grub в Линукс достаточно следовать инструкциям, предоставленным в данной статье.
Использование утилиты восстановления
Если работа с терминалом кажется сложной, можно автоматизировать процесс восстановления, использовав специальную утилиту boot-repair.
Запустите сборку Linux с флешки или диска. Откройте терминал и выполните последовательно три команды:
- sudo add-apt-repository ppa:yannubuntu/boot-repair.
- sudo apt-get update.
- sudo apt-get install boot-repair.
Установленная программа будет иметь название «Восстановление загрузчика». Запустите утилиту (выполните «boot-repair» в консоли) и выберите режим работы. Новичкам подойдет «Рекомендуемый способ восстановления». После запуска этого режима GRUB будет автоматически восстановлен.
Есть и топорный способ восстановления GRUB – переустановка Linux. Многие новички используют этот радикальный метод, лишь бы не связываться с терминалом. Однако переустановка приводит к удалению пользовательских файлов, поэтому применять её из-за банального повреждения загрузчика – слишком большая роскошь.
Несмотря на то, что операционная система Linux занимает незначительную долю рынка, её различные сборки завоёвывают популярность своей официальной бесплатностью, довольно стабильной работой, а также значительной гибкостью в настройках. Да, некоторые моменты функционируют не так , как на Windows или Mac OS, да и большинство программного обеспечения создаются в первую очередь для этих двух продуктов. Но это останавливает далеко не всех.
Для работы ОС Linux необходимо восстановление загрузчика Grub, если произошел сбой.
Хотя практически любая сборка Linux работает без сбоев, иногда может случиться ошибка загрузчика, из-за чего становится невозможным запустить операционную систему. По каким причинам это может происходить? Как восстановить загрузчик Grub в Linux? Какие рабочие способы существуют? Обо всём этом и даже немного больше мы расскажем в сегодняшней статье.
После того как вы производите инсталляцию Linux на жёсткий диск вашего компьютера, все файлы копируются в отдельные папки. В одних каталогах хранятся файлы обычного программного обеспечения, которое можно спокойно удалить. В других же записываются файлы, без которых операционная система работать не будет. Сюда относятся ядро Linux, графическая оболочка, а также системный загрузчик Grub . Именно последний и применяется для того, чтобы запускать инсталлированную операционную систему. Каким образом это происходит?
В специальном загрузочном разделе система создаёт главную загрузочную запись. Её английская аббревиатура выглядит как MBR, и расшифровывается как Master Boot Record. При старте компьютера BIOS обращается к этой записи, а потом в действие вступает Grub и, когда всё в порядке, происходит запуск Linux. И если же загрузчик повреждён, при запуске произойдёт ошибка и система запускаться не будет.
По каким причинам это может случиться? Подавляющее большинство случаев являются следствием того, что после установки Linux в качестве первой системы вы устанавливаете Windows в роли дополнительной. Компания Microsoft традиционно не любит Linux, поэтому установщик Windows удаляет Grub Linux. Эта же проблема может возникнуть при некорректной установке самого Linux, перехода на другой дистрибутив либо из-за переразметки диска.
Самое важное, что следует учесть — это то, что не нужно сразу же думать о переустановке всей системы. Достаточно лишь просто восстановить Grub и всё будет работать, как и прежде
Перейдём к рассмотрению наиболее действенных способов, доступных даже неопытным юзерам.
HDD Image Instructions for OS X users
It might be useful to create an image file for a HDD; The following instructions help you create a HDD with an MBR partition map.
Based on information from <palk> on #osdev, it is slightly more complicated to create a HDD image than you’d expect.
This information might not be applicable to Linux users, who will most probably want to use a loopback device. This is for developers on OS X, which doesn’t
have a loopback device and has a finicky image mounter.
1. First, create a blank, raw image with DD, with the required size. Here, I’ll make a 80MB image — 163840 sectors of 512 bytes.
dd if=devzero of=disk.img count=163840 bs=512
2. For an explaination on calculating the CHS values from the LBA / size see
Since we have a 80MB disk, the CHS values are 78, 32 and 63 respectively.
3. Fire up FDISK (or your tool of choice) — I’m using the OS X version here, so commands may differ. The concept is essentially identical.
What will show on your screen (in OS X anyway) is on the left, what you enter is on the right.
fdisk -e disk.img
The signature for this MBR is invalid.
Would you like to initialize the partition table? y Yes
fdisk:*1> disk
Disk: disk.img geometry: 650463 16340 sectors
Change disk geometry? n No
fdisk:*1> edit 1
Partition id ('0' to disable) - FF: B (? for help) 0B
Do you wish to edit in CHS mode? n No
Partition offset - 163840: 63 2047
Partition size 1 - 161793: 161793 <Enter>
fdisk:*1> write
fdisk:*1> quit
4. Now that the MBR Partition Table is initialised, you’ll want to make a Filesystem on the disk. But first.
Here, we separate the MBR bit, and the actual FS bit.
dd if=disk.img of=mbr.img bs=512 count=2047 dd if=disk.img of=fs.img bs=512 skip=2047
5. Because we’re on OS X, we need to attach the disk image first, without actually mounting it.
hdiutil attach -nomount fs.img
6. Use ‘diskutil list’ to find out which device your image is, use that below.
7. Now, make a FAT12/16/32 filesystem on the FS.img disk. Remember, use FS.img — not disk.img
newfs_msdos -F 32 devdiskX
8. Now you’ll want to unmount it, then recombine the two images, then install GRUB.
hdiutil detach devdiskX cat mbr.img fs.img > disk.img hdiutil attach disk.img # note the mount point here (/Volumes/NO NAME, probably) grub-install --modules="part_msdos biosdisk fat multiboot configfile" --root-directory="/Volumes/NO NAME" disk.img Installation finished. No error reported.
And there it is! You know have a disk.img, that will have GRUB 2 installed, ready to go. It should be mountable in OS X simply by double clicking (or with the mount command).
Enjoy!
Additional useful options
Whatever device you are using, you may want to have a PC partition table and create a partition you format in one of the filesystems supported by GRUB. If you do, be sure to add the following option the grub-install arguments:
--modules="part_msdos"
In general, if GRUB 2 happens to fail to do what you want and you suspect that it needs some missing functionality, just try to add a module name you believe has the functionality you need to the —modules argument. The module files generally are in /boot/grub/i386-pc/.
Установка Grub4Dos
Перед началом инсталляции рекомендуется удалить все ненужные файлы на диске. Далее следует распаковать архив и запустить установщик приложения. После этого необходимо выбрать HDD, на который будет инсталлирована программа. Затем требуется кликнуть по кнопке «извлечь».
Не рекомендуется устанавливать программу на жесткий диск, не имея опыта работы с загрузчиком. Пользователю необходимо знать, как осуществляется редактирование конфигурационного файла menu.lst. Найти информацию об этом можно в любом учебнике по программированию. В файле menu.lst разработчики указали пункты меню для загрузки ОС с первого раздела HDD. Если операционная система установлена в ином месте, то пользователь может столкнуться с определенными трудностями.

Useful tools
GParted is a Gnome Partition Editor. Although Linux-based, it fully supports the NTFS file system. It runs from
a CD.
This is a live CD specifically geared toward rescue and recovery. The tools package includes some of the most
important tools available for Linux user, like GParted, QTParted, Partimage, Grub, Lilo, sfdisk, security
tools, network tools, and more.
Super Grub Disk is intended to run from a floppy disk or CD and is used for system rescue. Most importantly, it
can be used to restore boot loaders, including GRUB, LILO and even Windows boot loader.
TestDisk is a utility specially designed to recover lost partitions and make non-booting disks bootable again.
This highly useful tool can be found on a number of live CDs, including Knoppix and GParted. It supports NTFS
partitions and also comes in Windows flavor.
Настройка интерфейса
Приложение реагирует лишь на программируемые команды. На начальном этапе пользователю потребуются некоторые из них. Настройка интерфейса осуществляется с помощью файла menu.lst. Он находится в архиве с утилитой. Используя любой текстовый редактор, можно открыть необходимый файл и внести в него изменения.
По умолчанию в нем прописаны несколько команд. Параметр default применяется для запуска процесса автоматического выбора при долгом ожидании. Если пользователь никак не может отметить нужную строчку в меню, то будет загружен тот пункт, который указан напротив данного параметра. Команда timeout позволяет настроить период ожидания выбора владельца компьютера. С помощью параметра color задается цветовая гамма фона основного меню Grub4Dos.
Другие команды из списка позволяют настроить внешний вид утилиты. Напротив программного элемента foreground указывается цвет всего текста. Параметр splash image задает картинку, которая будет отображаться на заднем плане. С помощью команды background можно выбрать цвет фона меню.
Warning: If someone has physical access to your machine and is able to boot a live USB/disk (i.e., BIOS allows booting from an external disk), it is fairly trivial for one to modify GRUB configuration files to bypass this if resides on an unencrypted partition. See and .
If you want to secure GRUB so it is not possible for anyone to change boot parameters or use the command line, you can add a user/password combination to GRUB’s configuration files. To do this, run the command . Enter a password and confirm it:
$ grub-mkpasswd-pbkdf2
Your PBKDF2 is grub.pbkdf2.sha512.10000.C8ABD3E93C4DFC83138B0C7A3D719BC650E6234310DA069E6FDB0DD4156313DA3D0D9BFFC2846C21D5A2DDA515114CF6378F8A064C94198D0618E70D23717E82.509BFA8A4217EAD0B33C87432524C0B6B64B34FBAD22D3E6E6874D9B101996C5F98AB1746FE7C7199147ECF4ABD8661C222EEEDB7D14A843261FFF2C07B1269A
Then, adjust permissions on such that only root can read it and add the following to this file:
/etc/grub.d/40_custom
set superusers="username" password_pbkdf2 username password
where is the string generated by .
Regenerate your configuration file. Your GRUB command line, boot parameters and all boot entries are now protected.
Password protection of GRUB edit and console options only
Adding to a menu entry will allow any user to boot the OS while preventing the user from editing the entry and preventing access to the grub command console.
Only a superuser or users specified with the switch will be able to edit the menu entry.
/boot/grub/grub.cfg
menuentry 'Arch Linux' --unrestricted --class arch --class gnu-linux --class os ...
The factual accuracy of this article or section is disputed.
In order to make Linux entries , the variable in the beginning of can be modified.
/etc/grub.d/10_linux
CLASS="--class gnu-linux --class gnu --class os --unrestricted"
Установка загрузчика Grub в MBR для BIOS
Начнем с самого просто и привычного. Данная инструкция как установить загрузчик Grub подойдет для любого дистрибутива, поскольку команды везде почти одинаковые. Здесь не нужно устанавливать никаких дополнительных пакетов или создавать разделов. Установка Grub на жесткий диск выполняется командой:
sudo grub-install /dev/sda
sudo grub2-install /dev/sda
sudo grub-mkconfig -o /boot/grub/grub.cfg
sudo grub2-mkconfig -o /boot/grub2/grub.cfg
Готово. По поводу двойки здесь такое же замечание. Если вы хотите установить Grub на флешку в MBR, то тут тоже нет проблем просто примонтируйте флешку и выполните такую команду:
sudo grub-install —root-directory=/mnt/USB/ /dev/sdb
Здесь /mnt/USB — папка, куда была смотирована ваша флешка, а /seb/sdb — сама флешка. Только здесь есть одна проблема, конфигурационный файл придется делать вручную.
Установка GRUB UEFI GPT
Если же такого раздела нет, мы можем его создать с помощью gparted. Для этого создаем раздел с такими параметрами:
Размер 100 Мегабайт, имя раздела ESP, файловая система fat32. Дальше примените изменения и установите для раздела флаг ESP:
То же самое вы можете сделать в Gdisk, только на этот раз нужно устанавливать HEX Code раздела ef00. После того как раздел был создан, подключаем его к нашей файловой системе:
sudo mkdir /boot/efi $ sudo mount /dev/sda2 /boot/efi
Здесь /dev/sda2 — это наш EFI раздел. Далее необходимо установить нужные пакеты, если они еще не установлены. В Ubuntu это будет выглядеть вот так:
sudo apt install grub-efi efibootmgr
Дальше останется только установка grub efi. Система сама определит нужный раздел и скопирует туда все файлы:
Установка Grub efi на MBR все выглядит точно так же, только тут есть несколько ограничений. Раздел ESP нужно создавать только в начале диска. В режиме EFI тоже можно установить GRUB на флешку, и это не очень сложно. Для этого используется команда:
grub-install —boot-directory=/mnt/sdb2/boot —efi-directory=/mnt/sdb1 —target=x86_64-efi —removable
Рассмотрим опции: —boot-directory — задает папку с файлами загрузчика на флешке, —efi-directory — папка куда смонтирован раздел efi, —target — архитектура целевой системы и —removable говорит, что это установка на съемный носитель. С UEFI все. После перезагрузки и выбора в меню EFI пункта связанного с Grub, вы получите доступ к привычному меню grub и сможете выбрать нужный параметр.
Как установить/восстановить загрузочную запись grub?[править]
Аналогично предыдущему пункту (см. также :
Если использован ALT Linux Rescue:
mount-system chroot /mnt/system1
Если в используемом LiveCD нет mount-system, делаем самостоятельно (предполагая/зная, что корень на /dev/sda2):
mount /dev/sda2 /mnt mount -o bind /dev /mnt/dev mount -o bind /proc /mnt/proc mount -o bind /run /mnt/run mount -o bind /sys /mnt/sys chroot /mnt/ /bin/bash
После того как проведены подготовительные действия и сделан сhroot, необходимо выполнить
grub-mkconfig -o /boot/grub/grub.cfg grub-install /dev/sda # заменить /dev/sda на то устройство, куда хочется установить GRUB
если же используется EFI-режим, может потребоваться восстановить загрузчик в ESP-разделе (EFI System Partition), который монтируется в /boot/efi:
mount -a # достаточно смонтировать точку монтирования /boot/efi grub-efi-autoupdate
Installing GRUB 2 on OS X
The installation of GRUB 2 on OS X is a little tricky. The latest released version 2.00 (as of 7th of October, 2014) doesn’t seem to work with any configuration. The developer team fixed this in the newer revisions.
1. Clone the developer version of the sources:
git clone git://git.savannah.gnu.orggrub.git
(This was tested on revision: 77063f4cb672f423272db7e21ca448cf3de98dcf)
2. A tool named objconv is required, get it from:
Download sources, compile (see website for details) and make available in your PATH.
3. Run «autogen.sh» in the GRUB sources folder
4. Create a seperate build directory, switch to it, and run GRUB’s configure script (insert your target-specific tools!):
../grub/configure --disable-werror TARGET_CC=i386-elf-gcc TARGET_OBJCOPY=i386-elf-objcopy \ TARGET_STRIP=i386-elf-strip TARGET_NM=i386-elf-nm TARGET_RANLIB=i386-elf-ranlib --target=i386-elf
5. Run «make» and «make install»
Now you have a working GRUB 2 that has the required files to build an image that boots on i386 platforms.
Добавление дистрибутивов Windows XP
При работе можно использовать утилиту WinSetupFromUSB 1.0 beta 7. С помощью данного приложения необходимо сделать вторую флешку загрузочной. Предварительно нужно распаковать образы ОС XP. Далее требуется открыть программу. Затем следует отметить в приложении вторую флешку и распакованный образ.
После нажатия на кнопку Go программа выдаст сообщение о том, что задача выполнена. То же самое нужно проделать с другими распакованными дистрибутивами. При этом флешку форматировать не стоит. Далее необходимо перенести папку c файлами программы на первый USB-накопитель и прописать дистрибутивы в menu.lst. Впоследствии с помощью Grub4Dos Windows XP будет загружена с флешки.
Speeding up LUKS decryption in GRUB
Warning: Before following this section, make sure you understand the importance of high entropy passwords. Information on how to generate secure passwords can be found at Wikipedia:Password strength.
Upon boot GRUB may in some cases take a long time to verify the password. This can be due to a high PBKDF iteration count, which you can check as follows:
# cryptsetup luksDump /dev/sda3
The problem is that the iteration count for a given keyslot is generated when the key is added to ensure a balance between being high enough to protect against brute force attacks and low enough to allow for fast key derivation by estimating the capabilities of your computer. However, when GRUB is started, it might not have the same computational resources at hand, thus being vastly slower.
If your password provides enough entropy to counter common attacks by itself, you can lower this number:
# cryptsetup luksChangeKey --pbkdf-force-iterations 1000 /dev/sda3
Tip: GRUB tries enabled key slots sequentially. When adding keys, the option can be used to specify a key slot explicitly.
Решение проблем
GRUB Error 17
В случае неразберихи с таблицей разделов, всё что Вы можете наблюдать при попытке загрузки системы — это лаконичное сообщение «GRUB error 17». Существует несколько причин, которые могут привести к искажению таблицы разделов. Чаще всего подобные проблемы связаны с изменением порядка разделов, в результате работы пользователя с программой GParted. Например, Вы удалили раздел , затем изменили размер раздела , и, наконец, создали заново раздел, который, как ожидалось, снова должен стать . Однако этот новый раздел получит, например, имя .
Исправить таблицу разделов достаточно легко. Для этого загрузитесь с Live-CD, войдите в систему как root и запустите команду:
# fdisk /dev/sda
Затем войдите в режим etra/expert. Далее ix the partition order, и сохраните таблицу rite. Затем выйдите из программы fdisk.
Проверить состояние таблицы разделов после исправления можно с помощью команды . Теперь осталось исправить параметры GRUB, см. предыдущую секцию .
Обычно, всё что Вам нужно — это указать корректное расположение директории и перезаписать загрузчик, находящийся в MBR.
Например:
# grub
grub> root (hd0,6) grub> setup (hd0) grub> quit
Случайная установка GRUB в раздел Windows
Если Вы случайно установили GRUB на раздел с Windows, GRUB запишет определенные данные в загрузочный сектор раздела, затерев при этом ссылку на загрузчик Windows.
Более детальная информация: .
Редактирование параметров GRUB из меню загрузки
Выбрав один из пунктов в меню загрузки, Вы можете отредактировать его нажав клавишу e. Использйте автодополнение по клавише Tab, чтобы получить подсказку по доступным именам устройств/разделов, используте клавишу Esc для выхода. После того, как Вы отредактировали запись, можете попытаться загрузить её, нажав клавишу b. Внесенные Вами изменения не будут сохранены.
Ошибка device.map
Если во время устаноки, или во время загрузки появляются ошибки с упоминанием файла , необходимо выполнить команду:
# grub-install --recheck /dev/sda
для того, чтобы GRUB пересоздал таблицу устройств, даже если она уже существует. Это может потребоваться после изменения разделов, или добавления/удаления жесткик дисков.
Выбор ОС при перезагрузке KDE не работает
Если в окне перезагрузки KDE Вы открыли подменю со списком операционных систем, выбрали нужную ОС, перегрузили компьютер, и по прежнему загрузились в ОС по умолчанию, вместо выбранной, тогда проверьте наличие строки
default saved
В Вашем .
Расширенные возможности
В GRUB2 есть много возможностей, которые делают GRUB2 очень мощным загрузчиком. Он поддерживает:
- Загрузку с платформ UEFI.
- Загрузку с дисков с таблицей разделов GPT без необходимости использования гибридного MBR (при необходимости, гибридный MBR можно включить для совместимости или переносимости).
- Загрузку с раздела /boot с файловой системой btrfs.
- Загрузка с ZFS pool.
- Непосредственную загрузку с raid set btrfs без необходимости использования initramfs для настройки раннего монтирования.
- Непосредственную загрузку с системы управления логическими томами (например, LVM2).
- Загрузку с поддержкой DM-RAID (RAID 0, 1, 4, 5, 6, 9 и 10).
- Загрузку с зашифрованных устройств (LUKS).
Некоторые возможности будут рассмотрены более детально дальше.
Chainloading
GRUB2 была улучшена поддержка режима chainload по сравнению с GRUB Legacy. Чтобы загрузить другой загрузчик с помощью chainloader используйте опцию .
Файл Загрузка другого загрузчика с помощью chainloader
menuentry "Custom Super-bootloader example" {
insmod part_msdos
insmod chain
chainloader (hd1,1)+1
}
Для более подробной информации о chainloading, пожалуйста, смотрите статью Chainloading.
If you want to secure GRUB so it is not possible for anyone to change boot parameters or use the command line, you can add a user/password combination to GRUB’s configuration files. The program grub-mkpasswd-pbkdf2 generates password hashes for GRUBː
Then, add the following toː
Файл
# Grub user echo 'set superusers="username"' # Grub password echo 'password_pbkdf2 <username> <password>'
Использование фрейбуфера
Чтобы GRUB2 использовал framebuffer, перекомпилируйте GRUB с включенным USE-флагом . Это установит шрифт True Type по умолчанию, а также утилиту для преобразования шрифтов.
Приступим к конфигурации конфигурационного файла по умолчанию GRUB2, который расположен в /etc/default/grub. Например:
Файл Настройки связанные с фрейбуфером
# настройка разрешения и глубины цвета GRUB_GFXMODE=1366x768x32 # сохранить разрешение после загрузки ядра GRUB_GFXPAYLOAD_LINUX=keep # настройка фонового изображения GRUB_BACKGROUND="/boot/grub/bg.png" # использование пользовательского шрифта, конвертированного с помощью утилиты grub-mkfont GRUB_FONT="/boot/grub/fonts/roboto.pf2"
Восстановление Grub с помощью LiveCD/USB
Для этого способа нам понадобится флешка с дистрибутивом Linux на борту. Подойдет любой: от Ubuntu, Arch или даже Linux Mint. Здесь нужен только терминал, поэтому подойдет даже версия без графической оболочки.
Как создать LiveCD/USB
Само собой, нам понадобится носитель, на который мы временно (а может и нет) запишем систему. Сохраните все важные файлы, которые были на этом носителе, после чего (имеется ввиду на другом ПК, желательно под управлением Windows) запишите загруженный образ дистрибутива на носитель. В качестве примера мы будем использовать дистрибутив Ubuntu.
Идем на официальную страницу загрузки. Загружаем любую понравившуюся версию (лучше взять новейшую для десктопа), после чего записываем ее на USB/CD.
С помощью Rufus:
Последняя версия приложения доступна на официальном сайте. Сразу после загрузки и запуска/установки мы увидим такое окно:
Вставляем носитель, выбираем его в соответствующем меню. Далее выбираем нужную схему раздела и тип системного интерфейса, и после уже открываем файловый менеджер с помощью этой кнопки:
Находим загруженный образ через менеджер, после чего жмем «Старт».
С помощью Etcher:

Ну а теперь, собственно, можно переходить к восстановлению Grub. Вставляем флешку в наш ПК (где сломан загрузчик), после чего перезагружаем его с этой самой флешки. Как только мы войдем в лайв-систему, сразу открываем терминал, после чего проделываем следующие действия:
Открываем таблицу разделов с помощью команды:
Примерно такая таблица будет выведена на экран:
По этой таблице мы видим, что Linux, в нашем случае, расположен на разделе /dev/sda1.
С помощью следующей команды мы смонтируем этот раздел в /mnt:
Теперь, для записи grub в MBR, нужно ввести следующую команду:
Если нужно только восстановить MBR диска (после переустановки Windows, к примеру), то этих действий будет вполне достаточно.
Если же необходимо обновить и меню grub (после установки Windows), то нужно выполнить еще и эту команду:
Вот и все, восстановление закончено!
Восстановление с помощью chroot
Помимо вышеописанного способа, при восстановлении Grub с помощью LiveCD можно использовать и этот. Тут мы будем использовать утилиту chroot.
Здесь нам, опять же, понадобится таблица разделов. Вводим уже известную команду:
В выводе снова будет эта таблица. Теперь нам надо присмотреться к ней еще внимательнее.
В этом способе нам необходимо примонтировать системный, а также нескольких других важных разделов. Для этого вводим эти команды:
Обратите внимание, что если если разделы /boot или /var находятся отдельно, то Вам нужно будет примонтировать их в /mnt/boot и /mnt/var. Далее мы переходим в окружающую среду chroot с помощью команды:
Далее мы переходим в окружающую среду chroot с помощью команды:
И теперь, наконец-таки переустанавливаем Grub с помощью следующей команды:
Если вы на этом этапе получаете какие-то сообщения об ошибках, то попробуйте использовать эти команды:
Если все прошло успешно, выходим из chroot, используя команду:
Далее нужно отмонтировать все разделы. Для этого вводим в терминал:
В случае, если вы монтировали раздел /boot введите команду:
Теперь перезагружаем систему с помощью:
Можно также обновить меню Grub, используя команду:
Где отредактировать параметры ядра?[править]
Для постоянного применения иных параметров загрузки следует изменить конфигурацию загрузчика.
- Параметры ядра содержатся в /etc/sysconfig/grub2
- После редактирования этого файла нужно вызвать grub-mkconfig -o /boot/grub/grub.cfg
В /etc/sysconfig/grub2 поддерживаются следующие опции:
GRUB_AUTOUPDATE_CFG=true/false
обновлять ли конфиг файл из файлтриггера установки/удаления ядер (по умолчанию true)
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash ваш_пункт1 ваш_пункт2"
опции загрузки ядра
GRUB_AUTOUPDATE_CFGNAME=/boot/grub/grub.cfg
имя автообновляемого конфигфайла. (по умолчанию /boot/grub/grub.cfg)
GRUB_VMLINUZ_SYMLINKS=true/false/default
добавлять ли симлинки в меню (добавлять, не добавлять, добавлять только /boot/vmlinuz )
GRUB_VMLINUZ_FAILSAFE=true/false/default
добавлять ли failsafe-пункты (добавлять, не добавлять, добавлять только для /boot/vmlinuz )
Как отучить GRUB2 запоминать последний выбранный пункт?[править]
Способ 1править
В файле /etc/sysconfig/grub2 изменить значение GRUB_SAVEDEFAULT на false, перегенерировать конфиг grub:
grub-mkconfig -o /boot/grub/grub.cfg
посмотреть имеющийся список вариантов загрузки утилитой grub-entries:
grub-entries
например
0 ALT p8 starter kit 1>0 Advanced options for ALT p8 starter kit>ALT p8 starter kit, vmlinuz 1>1 Advanced options for ALT p8 starter kit>ALT p8 starter kit, vmlinuz (recovery mode) 1>2 Advanced options for ALT p8 starter kit>ALT p8 starter kit, 4.14.97-un-def-alt0.M80P.1 1>3 Advanced options for ALT p8 starter kit>ALT p8 starter kit, 4.9.154-std-def-alt0.M80P.1 2 Memtest86+-5.01
задать нужный вариант загрузки:
grub-set-default "Advanced options for ALT p8 starter kit>ALT p8 starter kit, 4.14.97-un-def-alt0.M80P.1"
или
grub-set-default "1>2"
цифровой вариант лучше не использовать, так как номера строк изменяются при удалении и добавлении ядер, но его вполне можно использовать для указания варианта на следующую перезагрузку утилитой grub-reboot.
Способ 2править
В файле /etc/sysconfig/grub2 изменить строку
GRUB_DEFAULT='saved'
на
GRUB_DEFAULT=n
где n номер пункта меню, либо на
GRUB_DEFAULT='точное название пункта меню'
Вариант с названием предпочтительнее, поскольку после обновления ядра количество пунктов в меню увеличится и нумерация некоторых пунктов изменится
Внимание! Нумерация пунктов начинается с 0.
Список пунктов можно получить по команде
grep menuentry /boot/grub/grub.cfg | nl -v0
Например, пусть мы имеем следующие пункты меню (этот пример не учитывает текущее состояние с подменю; оставлено в качестве примера, удобнее использовать grub-entries, как в первом варианте):
# grep menuentry /boot/grub/grub.cfg | nl -v0
0 menuentry "ALT Linux 6.0.1 KDesktop" --class gnu-linux --class gnu --class os {
1 menuentry "ALT Linux 6.0.1 KDesktop (failsafe mode)" --class gnu-linux --class gnu --class os {
2 menuentry "ALT Linux 6.0.1 KDesktop, 3.0.8-std-def-alt0.M60P.1" --class gnu-linux --class gnu --class os {
3 menuentry "Windows Vista (loader) (on /dev/sda1)" --class windows --class os {
4 menuentry "Memtest86+-4.20" {
#
и хотим, чтобы по умолчанию грузился Windows. Тогда в /etc/sysconfig/grub2 пишем
GRUB_DEFAULT='Windows Vista (loader) (on /dev/sda1)'
Потом в терминале от пользователя root:
grub-mkconfig -o /boot/grub/grub.cfg
Перезагрузка. Так как в GRUB_DEFAULT задано конкретное значение, а не ‘saved’, переменная GRUB_SAVEDEFAULT значения не имеет.
Multiple entries
If you have multiple kernels installed, say linux and linux-lts, by default groups them in a submenu. If you do not like this behaviour you can go back to one single menu by adding the following line to :
GRUB_DISABLE_SUBMENU=y
Recall previous entry
GRUB can remember the last entry you booted from and use this as the default entry to boot from next time. This is useful if you have multiple kernels (i.e., the current Arch one and the LTS kernel as a fallback option) or operating systems. To do this, edit and change the value of :
GRUB_DEFAULT=saved
This ensures that GRUB will default to the saved entry. To enable saving the selected entry, add the following line to :
GRUB_SAVEDEFAULT=true
This will only work if /boot is not a btrfs, because grub cannot write to btrfs. But it will generate a misleading error message: «sparse file not allowed. Press any key to continue.».
Note: Manually added menu items, e.g. Windows in or , will need added.
To change the default selected entry, edit and change the value of :
Using menu titles :
GRUB_DEFAULT='Advanced options for Arch Linux>Arch Linux, with Linux linux'
Using numbers :
GRUB_DEFAULT="1>2"
Grub identifies entries in generated menu counted from zero. That means for the first entry which is the default value, for the second and so on. Main and submenu entries are separated
by a .
The example above boots the third entry from the main menu ‘Advanced options for Arch Linux’.
Boot non-default entry only once
The command is very helpful to boot another entry than the default only once. GRUB loads the entry passed in the first command line argument, when the system is rebooted the next time. Most importantly GRUB returns to loading the default entry for all future booting. Changing the configuration file or selecting an entry in the GRUB menu is not necessary.
Note: This requires in (and then regenerating ) or, in case of hand-made , the line .



