====== GRUB ====== GRand Unified Bootloader — загрузчик операционной системы от проекта GNU, он позволяет выбрать пользователю выбирать для загрузки одну из операционных систем. ====== GRUB2 ====== ===== Файлы настройки ===== ''/boot/grub/grub.cfg'' - главный конфигурационный файл который является результатом компиляции скриптов из папки ''/etc/grub.d/'' и настроек из ''/etc/default/grub'' {{anchor:updategrub}} ===== Компиляция ===== FIXME Компиляция в файла ''/boot/grub/grub.cfg'' (это вызов ''grub-mkconfig'' с параметрами) update-grub Пример: grub-mkconfig -o /boot/grub/grub.cfg Компиляция с выводом в ''/boot/grub/grub.cfg'' ===== Нумерация дисков и разделов ===== В GRUB2 имеется еще одно важное отличие от старого нумерация дисков идет с ''0'' (нуля), а нумерация разделов - с ''1'' (единицы) Примеры: |Диски|''sda = hd0''| |:::|''sdb = hd1''| |Разделы|''sda1 = hd0,1''| |:::|''sdb1 = hd1,1''| ===== Добавление пункта меню для загрузки Windows ===== Автоматический вариант: update-grub Ручной вариант: Нужно изменить файл ''/etc/grub.d/40_custom'' Самая важная строка: set root=<Диск,Раздел> Пример: menuentry "Microsoft Windows XP" { insmod chain set root=(hd1,1) chainloader +1 } {{anchor:grubdefault}} ===== Загрузка по умолчанию ===== 1. Исправить значение ''GRUB_DEFAULT'' GRUB_DEFAULT=0 2. Выполнить [[#updategrub|компиляцию настроек]] ===== Восстановление GRUB2 ===== - Загружаемся с [[super_grub2_disk:super_grub2_disk|]] - Загружаем нужную систему - Выполняем установку Grub \\ Пример: grub-install /dev/sda ===== mdadm ===== При использовании [[mdadm:mdadm|mdadm]] нужно помнить, что после установки, при первом запуске нужно выполнить настройку пакета dpkg-reconfigure grub-pc а если система с EFI, то: dpkg-reconfigure grub-efi-amd64 и выбрать устройства, на которых будет установлен ''grub'': ┌─────────────────────────────────────────────────┤ Настраивается пакет grub-pc ├─────────────────────────────────────────────────┐ │ Выполняется обновление пакета grub-pc. Это меню позволяет вам выбрать устройства, для которых нужно автоматически запустить │ │ grub-install. │ │ │ │ В большинстве случаев рекомендуется выполнять автоматический запуск grub-install, так как это синхронизирует основной образ │ │ GRUB с модулями GRUB и grub.cfg. │ │ │ │ Если вы не знаете какое устройство указано в BIOS для загрузки, часто лучше всего установить GRUB на все устройства. │ │ │ │ Замечание: также возможно установить GRUB в загрузочную запись раздела, и здесь предлагаются соответствующие разделы. Однако, │ │ это включает в GRUB использование механизма блок-листа, при котором уменьшается надёжность, и поэтому это не рекомендуется. │ │ │ │ Устройства, на которые устанавливается GRUB: │ │ │ │ [ ] /dev/md0 (199914 МБ; srv:0) │ │ [ ] /dev/md1 (4000650 МБ; srv:1) │ │ [ ] /dev/md2 (4000650 МБ; srv:2) │ │ [*] /dev/sda (200049 МБ; INTEL_SSDSC2BX200G4) │ │ [*] /dev/sdb (200049 МБ; INTEL_SSDSC2BX200G4) │ │ [ ] /dev/sdc (4000787 МБ; TOSHIBA_MG04ACA400E) │ │ [ ] /dev/sdd (4000787 МБ; TOSHIBA_MG04ACA400E) │ │ [ ] /dev/sde (4000787 МБ; TOSHIBA_MG04ACA400E) │ │ [ ] /dev/sdf (4000787 МБ; TOSHIBA_MG04ACA400E) │ │ [ ] /dev/dm-0 (39996 МБ; srv-root) │ │ │ │ │ │ │ │ │ └─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘ [[https://wiki.debian.org/DebianInstaller/SoftwareRaidRoot|Debian Installer: Software Raid Root]] ===== GRUB only offers a rescue shell ===== FIXME grub rescue> If, instead, you only get a rescue shell, this usually means that GRUB failed to load the ‘normal’ module for some reason. It may be possible to work around this temporarily: for instance, if the reason for the failure is that ‘prefix’ is wrong (perhaps it refers to the wrong device, or perhaps the path to /boot/grub was not correctly made relative to the device), then you can correct this and enter normal mode manually: Inspect the current prefix (and other preset variables): ''set'' Find out which devices are available: ''ls'' Set to the correct value, which might be something like this: set prefix=(hd0,1)/grub set root=(hd0,1) insmod normal normal **[[https://webhamster.ru/site/page/index/articles/comp/196|Grub - как восстанавливаться в rescue mode ( Статьи - Компьютерное : Linux: как перестать удивляться, и начать работать )]]** [[http://www.lexpr.ru/grub2_commandline_and_rescuemode|GRUB: Командная строка и режим Rescue]] [[https://serveradmin.ru/booting-from-hard-disk-error-entering-rescue-mode/|Booting from Hard Disk error, Entering rescue mode]] ===== Не отображаются сообщения на консоли ===== 1. Нужно добавить ''nomodeset'' в переменную ''GRUB_CMDLINE_LINUX_DEFAULT'' файла ''/etc/default/grub''. Пример: GRUB_CMDLINE_LINUX_DEFAULT="quiet nomodeset" 2. Выполнить [[#updategrub|компиляцию настроек]] ===== Русские буквы отображаются как знак вопроса ???????? ===== Нужно выполнить [[#updategrub|компиляцию настроек]] ===== Отключение графической заставки ===== 1. Убрать комментарий с строки в файле: GRUB_TERMINAL=console 2. Выполнить [[#updategrub|компиляцию настроек]] ===== Сектор 32 уже используется программой FlexNet ===== {{anchor:flexnet}} При установке/обновлении загрузчика выдаётся сообщение: предупреждение: Сектор 32 уже используется программой «FlexNet» или warning: Sector 32 is already in use by the program 'FlexNet' Решение заключается в очистке нужного сектора: dd if=/dev/zero of=/dev/sda bs=512 count=1 seek=32 [[https://www.linux.org.ru/forum/desktop/13443756|LINUX.ORG.RU: Данные какого-то FlexNet в 32 секторе диска. WTF? ]] [[https://blacktorch.livejournal.com/1688.html|FlexNet DRM - blacktorch]] ====== GRUB4DOS ====== Это универсальный загрузчик на основе GNU GRUB. Он может управляться в режиме командной строки или с помощью конфигурационного файла, в его возможности входят: * Передача управления программе в MBR * Загрузка из раздела (основного/логического) * Загрузка DOS 6.22/7.x/8.0 (Windows 9x/Me) Загрузчиком (io.sys) * Загрузка FreeDOS, Загрузчиком (kernel.sys) * Загрузка Windows NT/2000/XP, Загрузчиком (ntldr) * Загрузка Windows Vista, Загрузчиком (bootmgr) * Загрузка Linux, Загрузкой ядра (kernel) * Поддержка нескольких файловых систем * Загрузка с любого устройства доступного в BIOSе, Включая: * Жёсткий диск (HDD) * CD/DVD диск * Флеш носитель (USB Flash drive) * Флоппи дискета (Floppy Disk) * Загрузка образов дисков (HDD,Floppy,ISO) * Изменение очерёдности загрузки (используя маппинг) * Загрузка образов по сети * Поддержка режима LBA В отличии от GNU GRUB, который функционирует за счёт нескольких файлов, Grub4dos использует всего один файл grldr (или grub.exe если загрузка происходит из DOS или Linux). grldr может быть загружен с помощью уже существующей операционной системы, например, через NT загрузчик NTLDR , В ходе загрузки Windows NT/W2K/XP. Основной способ загрузки grub4dos, это загрузка из MBR. Файл grldr.mbr входит пакет в Grub4dos и и может быть записан в загрузочную область (HDD, floppy, USB Flash drive) Файл в корне устройства grldr загружается из MBR файлом grldr.mbr. Когда Grub4dos загружается из MBR, он сканирует все поддерживаемые устройства со всеми поддерживаемыми файловыми системами (смотрите список этих систем ниже) на наличие файла grldr – если он найден, он загружается. Когда grldr загружен, производится сканирование на предмет нахождения конфигурационного файла menu.lst – если такой файл не найден, то активируется командный режим. Файлы grldr и menu.lst могут находиться не только в корне активного раздела вместе с MBR, но и на любых локальных дисках с поддерживаемыми файловыми системами. Поддерживаемые файловые системы: * FAT12\FAT16\FAT32 * NTFS * EXT2\EXT3 Если файлы grldr или grub.exe загружаются другой операционной системой (или из загрузочного сектора), происходит сканирование (поиск) конфигурационного файла menu.lst. При использовании этого метода конфигурационный файл так же может быть перемещён на любой поддерживаемый локальный диск. Если файлов menu.lst несколько (например они на разных дисках) первым загруженным menu.lst будет файл на (hd#),а поиск на устройствах (cd#) и (fd#) производиться не будет (если конечно (fd#) не выставлен как первое загрузочное устройство). ====== GRUB ====== Версия 1.5 (0.97) ===== Файл настройки ===== ''/boot/grub/grub.conf'' ''/boot/grub/menu.lst '' обычно это символическая ссылка на ''grub.conf'' ===== Нумерация дисков и разделов ===== hd<номер_диска>,<номер_раздела> Нумерация дисков и разделов на диске начинается с ''0'' (нуля) Пример: (hdD,P) ''P+1''-ый раздел на ''D+1''-ом диске. ====== Ссылки ====== [[http://ru.wikipedia.org/wiki/GNU_GRUB|GNU GRUB]] [[http://ubuntologia.ru/grub2-intro|Grub2 - введение - Убунтология]] [[http://en.gentoo-wiki.com/wiki/Grub2|Grub2 - Gentoo Linux Wiki]] [[http://www.gnu.org/software/grub/manual/grub.html|GNU GRUB Manual 1.99]] [[http://computers.rirri.com/linux-reshenie-problem-s-perezagruzkoi|Linux: решение проблем с перезагрузкой]] **[[http://www.supergrubdisk.org/super-grub2-disk/|Super Grub2 Disk]]** http://sourceforge.net/projects/grub4dos/ [[http://greenflash.su/Grub4Dos/files/intro.htm|Русскоязычное руководство по загрузчику Grub4dos]] [[http://superuser.com/questions/986875/grub2-is-it-possible-to-disable-graphics-drivers-through-kernel-boot-command|Grub2: is it possible to disable graphics drivers through kernel boot command?]] [[https://wiki.debian.org/ru/GrubRecover|Восстановление Grub]] [[https://wiki.debian.org/GrubEFIReinstall|GrubEFIReinstall]] {{tag>Boot Linux}}