Как изменить порядок загрузки grub?

Настройка параметров ядра

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

Параметр Назначение
acpi=off Отключает системы Advanced Configuration и Power Interface (управление питанием)
init=/bin/bash Указывает ядру запускать только интерпретатор bash — обычно используется для восстановления системы после сбоев
root=/dev/foo Указывает ядру, что корневым устройством является /dev/foo
single Задает режим однопользовательской загрузки (только для Linux. Для систем Solaris используется ключ -s — предназначен для работы со стандартом OpenBoot

Важно заметить, что конфигурация, задаваемая при помощи интерфейса командной строки GRUB не сохраняется. Для задания постоянной конфигурации загрузки необходимо отредактировать файл grub.conf (grub.cfg для GRUB2) или menu.lst

Удаление и добавление записей системы в меню загрузки

В старых версиях Виндовса загрузочное меню, то есть boot.ini, редактировалось из текстового редактора. В новых продуктах Win этот сервис именуется Boot Configuration Data. Изменять его параметры разрешается через графический интерфейс. Попасть в Boot Menu удастся в момент включения ПК. Данный сервис является опцией BIOS или UEFI. Однако абсолютный доступ к BCD можно получить исключительно из интерпретатора командной консоли cmd.exe.

Как войти в Boot Menu:

в момент включения ПК нажать клавишу вызова Boot Menu (F8 или 9, 11, 12);

предварительно потребуется отключить «Быстрый запуск Win» (через «Панель управления», «Электропитание»);

  • в Boot Menu находится список устройств («boot device»), с которых возможен запуск ПК;
  • отметить нужный вариант.

Как отредактировать загрузчик через «Конфигурацию системы»:

  • включить ПК;
  • вызвать службу «Выполнить»;

написать символы:msconfig;

откроется «Конфигурация системы»;

во вкладке «Общие» активировать «Выборочный запуск»;

во вкладке «Загрузка» выбрать из списка нужный вариант.

Как выполнить редактирование из командной строки:

в пустом поле «Поиск» написать:cmd;

запустить командную консоль на администраторских правах;

для просмотра всех элементов, хранящихся в BOOT, написать: bcdedit;

  • появится список в нескольких блоках («Диспетчер загрузки Win» и «Загрузка Win»);
  • получить сведения о конкретной команде: bcdedit.exe/?/наименование.

Важно! Любые команды для самостоятельного редактирования БСД задаются после bcdedit/. Список основных команд (задаются после bcdedit/):. Список основных команд (задаются после bcdedit/):

Список основных команд (задаются после bcdedit/):

  • для активации параметра по умолчанию: default{ID};
  • для удаления элемента: displayorder{ID}/remove;
  • для очистки загрузчика от компонента: delete{ID}/cleanup.

Важно! Если при указании ID есть слово {default}, то команда должна писаться с /f. Когда ID пишется в виде кода, то /f писать не требуется. Как добавить параметр через консоль (команды задаются после bcdedit/):

Как добавить параметр через консоль (команды задаются после bcdedit/):

скопировать текущую загрузочную запись и дать ей наименование: copy{current}/d “NewWin”;

указать местонахождение загрузчика: set{ID}device partition=D;

задать местонахождения операционки: set{ID} osdevice partition=D;

добавить параметр в конец: displayorder{ID}/addlast.

Важно! Для редактирования виндовской конфигурации используется утилита с аббревиатурой BCDEDIT и ее родные команды. Вводить их нужно из командной консоли, запущенной исключительно на администраторских правах. Желательно вначале сохранить первоначальную конфигурацию «BDC»

Например, на одном из накопителей создать папку «BootBackup», а потом перекинуть данные в это хранилище (export D:\\BootBackup\\bcd). Для восстановления конфигурации нужно вместо «/export» написать «/import».

Желательно вначале сохранить первоначальную конфигурацию «BDC». Например, на одном из накопителей создать папку «BootBackup», а потом перекинуть данные в это хранилище (export D:\\BootBackup\\bcd). Для восстановления конфигурации нужно вместо «/export» написать «/import».

Делаем загрузчик GRUB загрузчиком по умолчанию

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

Шаг 1 – Запускаем менеджер загрузки

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

Обычно это можно сделать клавишей F9, но иногда используются и другие клавиши (F12 и т.д.).

Итак, во время включения компьютера нажимаем клавишу F9.

Шаг 2 – Запускаем UEFI Shell

В итоге запустится загрузочное меню. Нам нужно открыть UEFI Shell. Для этого входим в «Boot Manager» (интерфейс у Вас может отличаться).

Затем выбираем пункт «EFI Internal Shell».

После чего запустится командная оболочка для работы с UEFI. В командной строке отобразится приглашение ввода команд «Shell>».

Шаг 3 – Входим в файловую систему загрузочного раздела

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

Это делается достаточно просто, вводим команду FS0: (обычно именно такая метка у загрузочного раздела).

Шаг 4 – Переименовываем текущий загрузочный файл

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

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

Переименовываем файл следующей командой.

        mv EFIBootbootx64.efi EFIBootbootx64.efi_    

Если у Вас отобразилось сообщение , значит, все прошло успешно.

Таким образом, файл bootx64.efi мы переименовали в bootx64.efi_, этот файл расположен в каталоге EFIBoot.

Шаг 5 – Копирование файла загрузчика GRUB

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

В этой статье речь идет о Debian, поэтому загрузчик лежит в одноименном каталоге EFIdebian, а файл его называется grubx64.efi.

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

        cp EFIdebiangrubx64.efi EFIBootbootx64.efi    

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

Шаг 6 – Выход из командной строки

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

Для выхода из «EFI Internal Shell» вводим команду Exit.

Чтобы продолжить загрузку компьютера, выбираем пункт «Continue».

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

Где:

  • Debian GNU/Linux– это операционная система Debian;
  • Windows Boot Manager (на /dev/sda2) – это Windows 10.

Если ничего не выбрать в течение нескольких секунд, по умолчанию будет загружаться Debian, однако можно сделать и так, чтобы по умолчанию загружалась Windows 10, и даже переименовать пункты меню для удобства, об этом я уже рассказывал в материале – Как изменить порядок загрузки операционных систем (Linux, Windows) в GRUB.

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

  • https://alimuradov.ru/vosstanovlenie-grub-posle-obnovlenija-windows-10/
  • https://losst.ru/vosstanovlenie-grub-posle-ustanovki-windows-10
  • https://info-comp.ru/grub-does-not-load-after-install-debian-10

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

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

sudo cp /boot/grub/{grub,custom}.cfg

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

sudo chmod 744 /boot/grub/custom.cfg

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

sudo gedit /boot/grub/custom.cfg

Если вы в достаточной мере знаете структуру «grub.cfg» и понимаете, какие строки что делают, можно значительно сократить свой файл, убрав лишнее и привести его к более удобочитаемому виду.

  • задаем пункт меню по умолчанию, указав или его номер или точное название.
  • здесь задается разрешение экрана в привычном формате WxH. Можно также указать глубину цвета, например «1024x768x32». можно указать несколько вариантов, при этом если первый не сможет быть установлен, будет загружен второй, если и он не сработает — третий и т.д. Например:
    set gfxmode=1024x768x32,1024x768x24,1024x768
  • Теперь зададим время отображения меню, для этого ищем строку , и устанавливаем значение -1 для отключения таймера.

Для задания фонового изображения найдем строку с (подразумевается, что в вашем «grub.cfg» используется фоновое изображение. Если нет — смотрите пример файла в конце раздела). После команды прописан путь к файлу картинки, поменяйте его на нужный файл.

Обратите внимание, что разрешение картинки должно соответствовать заданному выше разрешению экрана!

Строкой ниже мы можем задать цвета текста. Изменяются они так же, как и в »/etc/grub.d/05_debian_theme« (см. Настройка внешнего вида загрузчика GRUB). Можно проделать один интересный трюк: уберите строки с и теперь настройка будет такой:

  • задает цвет/фон текста сверху и снизу (версия grub и комментарии) и текста в консоли
  • отвечает за цвет пунктов меню и фон прямоугольника, в котором они находятся
  • задает цвет/фон выделенного пункта меню.

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

Настроив свой файл, сохраните его Ctrl+Shift и закройте.

Теперь необходимо добавить дополнительное меню. Для этого в файле »/etc/grub.d/40_custom« добавим запись такого вида:

menuentry "Название меню"{
configfile /boot/grub/custom.cfg
}

Если ваш путь к файлу отличается — исправьте его.

Если вы используете отдельный boot-раздел, путь будет таким: »/grub/custom.cfg«.
Также учтите, что «40_custom» должен заканчиваться пустой строкой!

Если вы хотите, чтобы ваше новое меню загружалось вместо стандартного «grub.cfg», установите новый пункт в качестве пункта по умолчанию, но перед этим проверьте новое меню на работоспособность.

Обновите свой «grub.cfg» выполнив команду:

sudo update-grub

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

В качестве образца пример файла «custom.cfg» (файл урезан до необходимого минимума):

have_grubenv=true
load_env
 
### выбранный пункт по умолчанию
set default=0
### таймаут меню
set timeout=2
### разрешение
set gfxmode=800x600x32,800x600x24,800x600
 
insmod ext2
search -u 0e717c2a-24bd-4abe-acfe-ecf98fc814f8 -s
insmod gfxterm
insmod vbe
if terminal_output gfxterm ; then true ; else terminal gfxterm; fi
insmod png
 
### фоновое изображение
background_image /usr/share/images/grub/yellow.png
### настройка цветов
set color_normal=black/black
set menu_color_normal=green/light-blue
set menu_color_highlight=red/blue
 
menuentry "9.10 @ 2.6.32" {
search -u 0e717c2a-24bd-4abe-acfe-ecf98fc814f8 -s
linux /boot/vmlinuz-2.6.32-020632-generic root=UUID=0e717c2a-24bd-4abe-acfe-ecf98fc814f8 ro quiet splash
initrd /boot/initrd.img-2.6.32-020632-generic
}
menuentry "9.10 @ 2.6.32 (recovery)" {
search -u 0e717c2a-24bd-4abe-acfe-ecf98fc814f8 -s
linux /boot/vmlinuz-2.6.32-020632-generic root=UUID=0e717c2a-24bd-4abe-acfe-ecf98fc814f8 ro single 
initrd /boot/initrd.img-2.6.32-020632-generic
}
menuentry "windooz"{
search -u AC9C75E59C75AA8A -s
chainloader +1
}

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

Загрузчик GRUB – это GNU-проект, разработанный специально для использования в качестве загрузчика по-умолчанию для систем UNIX и Linux. Для подавляющего числа дистрибутивов GRUB давно поставляется «из коробки». Его главной задачей является работа со списком (который подготавливается заранее вручную или автоматически) вариантов загрузки, из которого выбирается нужный для последующей загрузки системного ядра с определёнными для выбранного варианта параметрами.

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

GRUB читает конфигурацию загрузки при каждом запуске компьютера. Сами файлы конфигурации (в зависимости от используемой версии и дистрибутива) следующие: /boot/grub/menu.lst, /boot/grub/grub.conf или /boot/grub/grub.cfg для версии 2. В системах Red Hat используются файлы grub.conf, а для Ubuntu, SUSE и Solaris – menu.lst. Эти файлы имеют незначительные различия в синтаксисе конфигурации. Для примера, содержимое grub.conf может быть таким:

default=0
timeout=10
splashimage=(hd0,0)/boot/grub/splash.xpm.gz
title Red Hat Enterprise Linux Server (2.6.18-92.1.10.el5)
root (hd0,0)
kernel /vmlinuz-2.6.18-92.1.10.el5 ro root=LABEL=/

В этом примере конфигурируется загрузка всего одной системы Red Hat, которая (согласно default=0) будет загружена автоматически по прошествии 10 секунд (timeout=10), если не будет нажата какая-либо клавиша на клавиатуре. При этом корневая файловая система должна искаться, согласно параметру (hd0,0) команды root, на первом разделе первого жесткого диска.

Для поиска файла ядра задаётся путь относительно загрузочного раздела, монтируемого в каталог /boot. Для приведённого примера ядро будет загружаться из файла /vmlinuz-2.6.18-92.1.10.el5. Затем загрузчик выведет на экран заставку из файла /boot/grub/splash.xpm.gz, находящегося, как указано в команде splashimage, на разделе (hd0,0).

Настраивать параметры загрузки можно и в интерактивном режиме, используя интерфейс командной строки. Для этого нужно на экране меню загрузки нажать клавишу «c».

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

Таким образом с помощью командной строки возможны все те же действия, что выполняются по инструкциям из файлов конфигурации. Как можно видеть, для этого загрузчик предоставляет целый набор команд со своими параметрами. Это бывает очень полезным, когда необходимо загружать системы, не имеющие соответствующей конфигурации в конфигурационных файлах или когда нужно восстановить «сломанную» конфигурацию. Для ознакомления со списком самых главных команд используется клавиша <Tab> в режиме работы командной строки загрузчика. В следующей таблице представлены наиболее часто используемые команды GRUB:

Команда Назначение
reboot Перезагружает систему
find Производит поиск файла во всех смонтированных логических разделах
root Задаёт корневое устройство (логический раздел)
kernel Загружает ядро системы с корневого устройства
help Выводит интерактивную справку по команде
boot Загружает систему с указанного образа ядра

Создание тем загрузки

Grub2 поддерживает установку пользовательских тем загрузки.
В качестве фона для тем могут быть использованы графические файлы расширений jpg/jpeg, png, tga.

  Замечание:
  Для добавления дополнительных тем загрузки оптимизированных для Grub2 в Debian может быть использован пакет
  grub2-splashimages. Установленные темы размещаются в папку /usr/share/images/grub/.

Графический файл для использования в качестве фона

  • может находиться в каталоге /boot/grub/
  • может быть указан в виде переменной WALLPAPER
  • может быть указан прямо в файле

выполняется команда

  # update-grub2
  Замечание:
  Просмотр наличия графических файлов осуществляется в указанном выше порядке.
  В качестве фона Добавляется первый из найденных.

Для изменения темы загрузки путём размещения файла в каталоге /boot/grub/

  • копируется (или создаётся ссылка на) графический файл установленного формата в каталоге /boot/grub/
  • осуществляется

Для изменения темы загрузки путём изменения переменной WALLPAPER

в файл /etc/grub.d/05_debian_theme добавляется строчка

  WALLPAPER="/usr/share/wallpapers/At_Night/contents/screenshot.png"
  строка добавляется перед командами set_background_image  и set_default_theme 

осуществляется обновление файла конфигурации

Для изменения темы загрузки путём изменения файла

  • либо изменяется ссылка /usr/share/images/desktop-base/desktop-grub.png или /etc/alternatives/desktop-grub на нужный файл фона в формате png
  set_background_image "/usr/share/images/desktop-base/desktop-grub.png" ||

осуществляется обновление файла конфигурации

Ссылки:

  • Смотри /usr/share/doc/grub2-splashimages/README

Восстановление Grub2

Повреждение загрузчика Grub2 и прекращение с его помощью процесса загрузки может быть связано с установкой / попыткой установки другого загрузчика, например Syslinux или при установке ОС семейства Windows, либо при изменении структуры жёсткого диска, например именования раздела на котором установлен загрузчик, либо в иных случаях.
В связи с этим может возникнуть потребность восстановления загрузчика Grub2.
Для Grub2 разрушение может выглядеть как полное или частичное с различием между ними в том, что старт загрузчика не происходит вовсе или он запускается, но в Rescue mode.

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

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

  • Первый способ заключается в загрузке «внешней» операционной среды с установленным загрузчиком Grub2, например с CD/DVD привода, USB-флешки или по сети через PXE/Etherboot, и последующей его «установкой» на целевой жёсткий диск.
  • Второй способ использует возможность загрузки целевой операционной системе с установленным загрузчиком Grub2 минуя разрушенный MBR с последующим восстановлением Grub2 из «родной» среды.

Для восстановления Grub2 в Rescue mode

в окне Rescue mode Grub2 выполняются команды

  # ls (hd0,1)/                        - устанавливается раздел с установленным загрузчиком
  # set root=(hd0,1)                   - установка пути корневой файловой системы
  # set prefix=(hd0,1)/boot/grub       - установка пути к модулям загрузчика
  # insmod /boot/grub/linux.mod        - загрузка модуля загрузки linux
  # linux /vmlinuz root=/dev/sda1 ro   - установка расположения модуля ядра linux
  # initrd /initrd.img                 - установка стартовой файловой системы ядра linux
  # boot                               - загрузка установленной linux-системы

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

  # dpkg-reconfigure grub-pc

Для восстановления Grub2 при разрушении MBR из внешней «живой» (Live) системы

запускается «живая» (Live CD) система с внешнего носителя

  Замечание:
  В качестве загружаемой "живой" операционной среды могут быть использованы различные Linux Live системы,
  например такие как Debian Live, Parted Magic, SystemRescueCD, Rescatux, а также 
  операционная система Debian запускаемая по сети, например с сервера терминалов NFS.

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

  # su                                           - получение прав суперпользователя
  # mount        /dev/sda1 /mnt                  - подключение носителя с разрушенным Grub
  # mount --bind /dev      /mnt/dev              - подключение устройств для выполнения команды chroot
  # mount --bind /proc     /mnt/proc
  # mount --bind /sys      /mnt/sys
  # chroot /mnt                                  - перехода в chroot-режим
  $ grub-install --recheck --no-floppy /dev/sda  - установка Grub2
  $ exit                                         - выход из chroot-режима
  # umount -l /mnt/dev                           - отмонтирование служебных папок 
  # umount -l /mnt/proc
  # umount -l /mnt/sys
  # umount -l /mnt                               - отмонтирование носителя, Grub2 установлен
  Замечание:
  Существует и возможность осуществить проверку загрузочного меню Grub2 без перезапуска компьютера.
  Например с помощью команд
  # sync
  # echo 3 > /proc/sys/vm/drop_caches
  # qemu -hda /dev/sda

Для восстановления Grub2 при разрушении MBR с загрузкой минуя носитель

запускается целевая операционная система минуя разрушенный MBR

  Замечание:
  Для загрузки операционной системы с установленным загрузчиком Grub2 минуя разрушенный MBR
  могут быть использованы такие средства как SuperGRUB2 disk, специальные ядра altker32/altker64 распространяемые
  на LiveCD диске проекта Systemrescue, а также ручная загрузка из любого загрузчика, позволяющего осуществлять это
  вручную, например те же Grub2 или Syslinux запускаемые с CD/DVD привода или флешки.

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

  # su                                           - получение прав суперпользователя
  # grub-install /dev/sda                        - или
  # grub-install --recheck --no-floppy --root-directory=/ /dev/sda
                                                 - установка Grub2 на жёсткий диск /dev/sda
                                                 с (во)созданием каталога /boot/grub
                                                 в точке подключения носителя 

Ссылки:

Восстановление Grub после Windows 10

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

Откройте меню пуск в операционной системе Windows:

Шаг 2.

Найдите командную строку и щелкните по ней правой кнопкой. В открывшимся окне выберите Запуск от имени администратора:

Шаг 3.

Скопируйте и выполните эту команду:

bcdedit /set path EFIubuntugrubx64.efi

Вам не нужно будет вводить пароль, у вас уже есть права администратора и программа должна отработать нормально. Эта команда обратно запишет вместо загрузчика Windows 10 grub.

Шаг 4.

Восстановление grub после windows 10 завершено. Перезапустите компьютер и вы увидите на экране знакомый Grub. Надеюсь, эта краткая инструкция помогла вам выполнить восстановление Grub после установки Windows 10.

На ssd стояла windows 10. Разбил hdd под установку linux mint, но после его установки загружалась только windows 10. Решил это чистой установкой Linux, установщик разбил диск как ему надо. Как итог linux грузится, windows 10 — нет, и кроме того не могу войти в настройки bios: меню загрузки там пустое, bios setup не открывается. В меню загрузки grub есть только linux. Есть ли способ добавить windows в меню загрузчика grub, как убедиться, что она сможет запуститься, и это не убьет работающий Linux?

Grub выглядит так:

Для диска, на котором лежит windows: blkid /dev/sdb1

blkid /dev/sdb1. Странный лейбл раздела с windows 10. Критично ли это?

upd Добавил руками пункт загрузки в grub как написано в статье.

При выборе — error: invalid EFI file path.

ps. Если бы была возможность зайти в bios, с удовольствием бы снес все и накатил заново винду (или восстановил с загрузочной флешки). С проблемой столкнулся не впервые, но в прошлый раз пришлось прибегнуть к прошивке bios на программаторе. Хотелось бы обойтись без такой хирургии, тк не желательно отдавать ноут на несколько дней.

Рейтинг
( Пока оценок нет )
Editor
Editor/ автор статьи

Давно интересуюсь темой. Мне нравится писать о том, в чём разбираюсь.

Понравилась статья? Поделиться с друзьями:
Вадлейд
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: