Как удалить загрузчик grub
Содержание:
- Настройка Grub через конфигурационные файлы
- Утилиты
- Установка Grub4Dos
- Настройка интерфейса
- Восстановление Grub с помощью LiveCD/USB
- Добавление дистрибутива Windows 7/8
- /etc/grub.d
- Команды консоли GRUB
- Что представляет собой загрузочный сектор?
- Installing GRUB 2 on OS X
- DESCRIPTION
- Автоматическая настройка
- Включение устройства
- Определение разделов
- Решение проблем
- Настройка Grub через /boot/grub/grub.cfg
Настройка Grub через конфигурационные файлы
Сразу нужно сказать, что существует два способа настройки Grub Ubuntu, через конфигурационные файлы. Первый — через конфигурационный файл утилиты grub-mkconfig, который позволяет задать общие параметры для загрузчика и ручное редактирование /boot/grub/grub.cfg.
Первый — рекомендованный, и с помощью него можно настроить большинство параметров, в этом случае настройки не собьются, когда вы обновите ядро или загрузчик. Второй вариант еще более гибкий, но после любого обновления вы потеряете свои настройки. Так что то что можно настроить через /etc/default/grub настраиваем через него, все остальное — через /boot/grub/grub.cfg. Сначала рассмотрим первый вариант.
Настройка Grub через /etc/default/grub
Как я уже сказал, настройка загрузчика через файл /etc/default/grub, на основе которого будет автоматически создан /boot/grub/grub.cfg более желательна. Давайте рассмотрим параметры, которые вы можете здесь настроить.
- GRUB_DEFAULT — указывает какой пункт нужно загружать по умолчанию. Может быть указан номер, или полное название или же строка saved, которая значит, что нужно загрузить пункт, указанный с помощью grub-reboot;
- GRUB_SAVEDEFAULT — загружать последнюю использованную запись по умолчанию;
- GRUB_HIDDEN_TIMEOUT — сколько секунд ждать перед тем, как вывести меню;
- GRUB_HIDDEN_TIMEOUT_QUIET — если установлено true, то меню не будет показано;
- GRUB_TIMEOUT — сколько секунд будет показано меню;
- GRUB_CMDLINE_LINUX — добавить опции ядра для всех ядер, как обычных, так и режима восстановления;
- GRUB_CMDLINE_LINUX_DEFAULT — добавить опции ядра только для обычных ядер;
- GRUB_CMDLINE_LINUX_RECOVERY — опции ядра, только для режима восстановления;
- GRUB_BADRAM — указать адреса оперативной памяти, которые не нужно использовать;
- GRUB_TERMINAL — модуль терминала для Grub. Можно использовать console, только для текстового режима или gfxterm с поддержкой графики;
- GRUB_GFXMODE — разрешение экрана в Grub, лучшие использовать auto, чтобы система выбрала сама то что ей нужно.
- GRUB_DISABLE_RECOVERY — не включать в меню пункты восстановления;
- GRUB_DISABLE_OS_PROBER — не искать другие операционные системы;
- GRUB_BACKGROUND — адрес картинки для фона, должна находиться в той же папке что и файлы grub;
- GRUB_THEME — устанавливает тему Grub.
Например, можно использовать такую конфигурацию:
Но как вы могли понять, этим способом вы не можете настроить порядок пунктов загрузки, а также некоторые другие параметры, поэтому давайте рассмотрим настройку непосредственно конфигурационного файла Grub.
Утилиты
Инструменты настройки GRUB
StartUp-Manager , программа, используемая для настройки GRUB
Инструменты установки, используемые различными дистрибутивами, часто включают модули для установки GRUB. Например, YaST2 в дистрибутивах SUSE Linux и openSUSE и Anaconda в дистрибутивах Fedora / RHEL . StartUp-Manager и GRUB Customizer — это графические редакторы конфигурации для дистрибутивов на основе Debian. Разработка StartUp-Manager была остановлена 6 мая 2011 года после того, как ведущий разработчик привел личные причины неактивного развития программы. GRUB Customizer также доступен для дистрибутивов на основе Arch.
Для GRUB 2 существуют модули управления KDE.
GRLDR ICE — это крошечный инструмент для изменения конфигурации файла grldr по умолчанию для GRUB4DOS.
Утилиты восстановления загрузки
Boot-Repair — это простой графический инструмент для восстановления после частых проблем, связанных с загрузкой, с загрузчиком GRUB и Microsoft Windows . Это приложение доступно под лицензией GNU GPL . Boot-Repair может восстановить GRUB в нескольких дистрибутивах Linux, включая, помимо прочего, Debian, Ubuntu, Mint , Fedora, openSUSE и Arch Linux .
Настройщик GRUB
Установщик для Windows
Grub2Win — это программный пакет с открытым исходным кодом для Windows. Он позволяет GNU GRUB загружаться из каталога Windows. Программа установки устанавливает GNU GRUB версии 2.06 в раздел NTFS. Затем приложение Windows GUI используется для настройки меню загрузки GRUB, тем, порядка загрузки UEFI, сценариев и т. Д. Все сценарии и команды GNU GRUB поддерживаются как для UEFI, так и для устаревших систем. Grub2Win может настроить GRUB для мультизагрузки Windows, Ubuntu, openSuse, Fedora и многих других дистрибутивов Linux. Он находится в свободном доступе под лицензией GNU GPL на SourceForge .
Установка Grub4Dos
Перед началом инсталляции рекомендуется удалить все ненужные файлы на диске. Далее следует распаковать архив и запустить установщик приложения. После этого необходимо выбрать HDD, на который будет инсталлирована программа. Затем требуется кликнуть по кнопке «извлечь».
Не рекомендуется устанавливать программу на жесткий диск, не имея опыта работы с загрузчиком. Пользователю необходимо знать, как осуществляется редактирование конфигурационного файла menu.lst. Найти информацию об этом можно в любом учебнике по программированию. В файле menu.lst разработчики указали пункты меню для загрузки ОС с первого раздела HDD. Если операционная система установлена в ином месте, то пользователь может столкнуться с определенными трудностями.
Настройка интерфейса
Приложение реагирует лишь на программируемые команды. На начальном этапе пользователю потребуются некоторые из них. Настройка интерфейса осуществляется с помощью файла menu.lst. Он находится в архиве с утилитой. Используя любой текстовый редактор, можно открыть необходимый файл и внести в него изменения.
По умолчанию в нем прописаны несколько команд. Параметр default применяется для запуска процесса автоматического выбора при долгом ожидании. Если пользователь никак не может отметить нужную строчку в меню, то будет загружен тот пункт, который указан напротив данного параметра. Команда timeout позволяет настроить период ожидания выбора владельца компьютера. С помощью параметра color задается цветовая гамма фона основного меню Grub4Dos.
Другие команды из списка позволяют настроить внешний вид утилиты. Напротив программного элемента foreground указывается цвет всего текста. Параметр splash image задает картинку, которая будет отображаться на заднем плане. С помощью команды background можно выбрать цвет фона меню.
Восстановление Grub с помощью LiveCD/USB
Для этого способа нам понадобится флешка с дистрибутивом Linux на борту. Подойдет любой: от Ubuntu, Arch или даже Linux Mint. Здесь нужен только терминал, поэтому подойдет даже версия без графической оболочки.
Как создать LiveCD/USB
Само собой, нам понадобится носитель, на который мы временно (а может и нет) запишем систему. Сохраните все важные файлы, которые были на этом носителе, после чего (имеется ввиду на другом ПК, желательно под управлением Windows) запишите загруженный образ дистрибутива на носитель. В качестве примера мы будем использовать дистрибутив Ubuntu.
Идем на официальную страницу загрузки. Загружаем любую понравившуюся версию (лучше взять новейшую для десктопа), после чего записываем ее на USB/CD.
С помощью Rufus:
Последняя версия приложения доступна на официальном сайте. Сразу после загрузки и запуска/установки мы увидим такое окно:
Вставляем носитель, выбираем его в соответствующем меню. Далее выбираем нужную схему раздела и тип системного интерфейса, и после уже открываем файловый менеджер с помощью этой кнопки:
Находим загруженный образ через менеджер, после чего жмем «Старт».
С помощью Etcher:
Ну а теперь, собственно, можно переходить к восстановлению Grub. Вставляем флешку в наш ПК (где сломан загрузчик), после чего перезагружаем его с этой самой флешки. Как только мы войдем в лайв-систему, сразу открываем терминал, после чего проделываем следующие действия:
Открываем таблицу разделов с помощью команды:
sudo fdisk -l
Примерно такая таблица будет выведена на экран:
/dev/sda1 27 7683 66999082+ 83 Linux /dev/sda2 * 8450 13995 45430855 7 HPFS/NTFS /dev/sda3 11885 16574 6503497 5 Extended
По этой таблице мы видим, что Linux, в нашем случае, расположен на разделе /dev/sda1.
С помощью следующей команды мы смонтируем этот раздел в /mnt:
sudo mount /dev/sda1 /mnt
Теперь, для записи grub в MBR, нужно ввести следующую команду:
sudo grub-install --root-directory=/mnt /dev/sda
Если нужно только восстановить MBR диска (после переустановки Windows, к примеру), то этих действий будет вполне достаточно.
Если же необходимо обновить и меню grub (после установки Windows), то нужно выполнить еще и эту команду:
sudo update-grub --output=/mnt/boot/grub/grub.cfg
Вот и все, восстановление закончено!
Восстановление с помощью chroot
Помимо вышеописанного способа, при восстановлении Grub с помощью LiveCD можно использовать и этот. Тут мы будем использовать утилиту chroot.
Здесь нам, опять же, понадобится таблица разделов. Вводим уже известную команду:
sudo fdisk -l
В выводе снова будет эта таблица. Теперь нам надо присмотреться к ней еще внимательнее.
/dev/sda1 27 7683 66999082+ 83 Linux /dev/sda2 * 8450 13995 45430855 7 HPFS/NTFS /dev/sda3 11885 16574 6503497 5 Extended
В этом способе нам необходимо примонтировать системный, а также нескольких других важных разделов. Для этого вводим эти команды:
sudo mount /dev/sda1 /mnt sudo mount --bind /dev /mnt/dev sudo mount --bind /proc /mnt/proc sudo mount --bind /sys /mnt/sys
Обратите внимание, что если если разделы /boot или /var находятся отдельно, то Вам нужно будет примонтировать их в /mnt/boot и /mnt/var. Далее мы переходим в окружающую среду chroot с помощью команды:
Далее мы переходим в окружающую среду chroot с помощью команды:
sudo chroot /mnt
И теперь, наконец-таки переустанавливаем Grub с помощью следующей команды:
grub-install /dev/sda
Если вы на этом этапе получаете какие-то сообщения об ошибках, то попробуйте использовать эти команды:
grub-install --recheck /dev/sda
или:
grub-install --recheck --no-floppy /dev/sda
Если все прошло успешно, выходим из chroot, используя команду:
exit
Далее нужно отмонтировать все разделы. Для этого вводим в терминал:
sudo umount /mnt/dev sudo umount /mnt/proc sudo umount /mnt/sys sudo umount /mnt
В случае, если вы монтировали раздел /boot введите команду:
sudo umount /mnt/boot
Теперь перезагружаем систему с помощью:
sudo reboot
Можно также обновить меню Grub, используя команду:
sudo update-grub
Добавление дистрибутива Windows 7/8
Для выполнения данной задачи можно просто копировать образ ОС в корень флешки. Там появится загрузочный файл BOOTMGR. Его следует прописать в меню. Если появляется ошибка, то это означает, что образ ОС был разбит на части. Для дефрагментации необходимо использовать программу WinContig.
При загрузке ОС программой Grub4Dos установка Windows внезапно прервется. Во время настройки языка всплывет окно с сообщением об ошибке. Будет отображена информация о том, что CD-ROM не удается найти. В данном случае требуется загрузить виртуальный драйвер и установить его с помощью командной строки. Чтобы избежать проблем, можно открыть образ ОС в приложении UltraISO.
Далее следует распаковать файлы на флешку. Затем нужно прописать загрузчик BOOTMGR в меню. После этого необходимо попытаться установить операционную систему. С помощью Grub4Dos Windows 7 загружается с флешки. Для тестирования загрузочного носителя можно использовать утилиту MobaLiveUSB.
/etc/grub.d
Эта папка содержит в себе скрипты, которые используются для создания файла «grub.cfg». При обновлении GRUB они находят все установленные на компьютере системы и ядра и формируют в файле «grub.cfg» меню загрузки, которое мы и видим. Два основных из них:
- «10_linux» и «30_os-prober» отвечают за поиск Linux ядер и остальных ОС на других разделах соответственно.
- Файл «40_custom» позволяет добавлять свои пункты загрузки. Это может быть полезно, если вы, например, хотите добавить какие-то особые варианты загрузки системы.
Файл «40_custom» должен заканчиваться пустой строкой, иначе последний пункт не будет отображаться в меню!
Пример
Добавляем режим загрузки без графической заставки, с текстовым отображением процесса загрузки (verbose mode). Для этого мы немного отредактируем обычный пункт загрузки. допустим, он выглядит так (в «/boot/grub/grub.cfg«):
menuentry "Ubuntu, Linux 2.6.32-020632rc6-generic" { recordfail=1 if ; then save_env recordfail; fi set quiet=1 insmod ext2 set root=(hd0,5) search --no-floppy --fs-uuid --set 0e717c2a-24bd-4abe-acfe-ecf98fc814f8 linux /boot/vmlinuz-2.6.32-020632rc6-generic root=UUID=0e717c2a-24bd-4abe-acfe-ecf98fc814f8 ro quiet splash initrd /boot/initrd.img-2.6.32-020632rc6-generic }
Для того, чтобы сделать из этого verbose mode, нам нужно убрать опции quiet и splash и изменим название самого пункта. В итоге получаем:
echo "adding verbose mode" >&2 menuentry "Ubuntu, Linux 2.6.32.rc6 verbose-mode" { recordfail=1 if ; then save_env recordfail; fi set quiet=1 insmod ext2 set root=(hd0,5) search --no-floppy --fs-uuid --set 0e717c2a-24bd-4abe-acfe-ecf98fc814f8 linux /boot/vmlinuz-2.6.32-020632rc6-generic root=UUID=0e717c2a-24bd-4abe-acfe-ecf98fc814f8 ro initrd /boot/initrd.img-2.6.32-020632rc6-generic }
Все это и добавляем в «40_custom» в конец файла. Строка с echo не является обязательной она лишь будет сигнализировать нам о том, что наш пункт найден и добавлен при обновлении GRUB.
Команды консоли GRUB
Чтобы попасть в консоль, нужно нажать клавишу C во время отображения меню загрузки.
ls
Довольно универсальная команда при использовании в чистом виде выдает список жестких дисков и разделов. Также она может быть использована как одноименная команда в Linux — для вывода содержимого папки. например:
ls /boot/grub
Еще одно полезное свойство комадны «ls» — она позволят получить информацию о любом разделе:
ls (hd0,5)
Команда сообщит нам тип файловой системы на разделе, метку раздела (если таковая имеется), UUID и дату последнего изменения данных на разделе (в формате UTC).
Данная команда выводит содержимое заданного файла, используется в формате:
cat /путь/имя_файла
linux
Аналог команды «kernel» в GRUB Legacy. Загружает указанное Linux-ядро:
linux файл_ядра опция1=значение опция2 опция3
Например, так:
linux /boot/vmlinuz-2.6.32-020632-generic root=/dev/sda5 single
initrd
Загружает указанный initrd-образ. Используется так:
initrd /boot/initrd.img-2.6.32-020632-generic
Обратите внимание, что версия initrd должна соответствовать версии загружаемого ядра!
chainloader
Передает управление загрузкой по цепочке другому загрузчику (загрузчик ищется на заданном в качестве root разделе). В общем случае требует указания файла для загрузки:
chainloader /путь/имя_файла
Для (загрузчика Windows) можно использовать:
chainloader +1 boot
root
При использовании без параметров сообщает, какой раздел сейчас используется в качестве корневого и тип файловой системы на этом разделе, также команда может быть использована для задания другого root-раздела. Раздел задается в «grub device» — формате »(hd*,*)«. например:
root (hd0,5)
После задания раздела команда сообщит новый root-раздел и тип файловой системы. Примечание: «root hd(*,*)» не всегда корректно срабатывает. более предпочтительным вариантом является «set root» (см. ниже)
set
Весьма универсальная команда для изменения различных параметров. Служит для задания значений переменных и используется в формате:
set переменная=значение
Наиболее необходимое ее применение — для задания root-раздела, например:
set root=(hd0,5)
Также с ее помощью можно, например, «на лету» изменить цвет текста в меню и консоли, что позволяет опробовать цветовую схему перед установкой ее в качестве основной. Для этого изменяем переменные «color_normal» — для обычного пункта (и текста в консоли) и «color_highlight» для выделенного пункта соответственно. Например, попробуем такой вариант:
set color_normal=magenta/green set color_highlight=light-blue/black
search
Служит для поиска раздела по UUID, метке или заданному файлу. Имеет следующие ключи:
- -u (или –fs-uuid) — поиск раздела по UUID
- -l (или –label) — поиск по метке раздела
- -f (или –file) — поиск по указанному файлу
- -n (или –no-floppy) — не проверять флоппи-дисковод (чтоб не трещал)
- -s (или –set) — установить найденный раздел в качестве значения заданной переменной.
help
При использовании в чистом виде выведет список доступных команд. В формате:
help r
Выведет справку по всем командам, начинающимся на «r».
help search
Отобразит справку по команде «search»
background_image
Позволяет «на лету» изменить фоновое изображение. Используется в формате:
background_image /путь/имя_файла
Дает замечательную возможность посмотреть на выбранную картинку в действии, избегая лишних перезагрузок. В сочетании с заменой цветов через позволит довольно быстро подобрать подходящий вариант оформления.
Данная команда не заменит ваши настройки оформления, фон будет изменен лишь на текущий сеанс.
При использовании без параметров сбросит текущее фоновое изображение. Однако, заданные цвета останутся, так что если у вас черный цвет текста — на черном фоне вы его не увидите.
terminal_output.console
Позволяет переключиться на обычную черно-белую цветовую гамму. Весьма полезно при работе с консолью в том случае, если у вас установлено фоновое изображение. Картинка на фоне — это, конечно, красиво, но на некоторых участках фона может быть не виден текст.
Что представляет собой загрузочный сектор?
Если владелец ПК уверен в своих силах и знаниях, ему будет достаточно прочесть лишь раздел, в котором пошагово расписан процесс установки загрузчика GRUB, однако тем юзерам, которые впервые сталкиваются с подобной проблемой, лучше предварительно узнать об особенностях BIOS и MS DOS.
Жёсткий диск разделён на несколько секторов, в первом из которых осуществляется основная запись диска (пользователи привыкли именовать её как MBR). Для этого требуется всего 512 байт, в которых «спрятана» небольшая программка. Следующий сектор занимает таблица разбиения диска, которая, по обычаю, состоит из четырёх главных разделов, объёмом 64 байта, и цифровой подписи (только 2 байта).
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.
DESCRIPTION
- —compress=,no/|xz|gz|lzo
- compress GRUB files
- —dtb=,FILE/
- embed a specific DTB
- -d, —directory=,DIR/
-
use images and modules under DIR
[default=/usr/lib/grub/<platform>] - —fonts=,FONTS/
- install FONTS
- —install-modules=,MODULES/
-
install only MODULES and their dependencies
- -k, —pubkey=,FILE/
- embed FILE as public key for signature checking
- —locale-directory=,DIR/ use translations under DIR
- [default=/usr/share/locale]
- —locales=,LOCALES/
- install only LOCALES
- —modules=,MODULES/
- pre-load specified modules MODULES
- —themes=,THEMES/
- install THEMES
- -v, —verbose
- print verbose messages.
- —allow-floppy
-
make the drive also bootable as floppy (default
for fdX devices). May break on some BIOSes. - —boot-directory=,DIR/
-
install GRUB images under the directory DIR/grub
instead of the boot/grub directory - —bootloader-id=,ID/
-
the ID of bootloader. This option is only
available on EFI and Macs. - —core-compress=,xz/|none|auto
- choose the compression to use for core image
- —disk-module=,MODULE/
-
disk module to use (biosdisk or native). This
option is only available on BIOS target. - —efi-directory=,DIR/
- use DIR as the EFI System Partition root.
- —force
- install even if problems are detected
- —force-file-id
- use identifier file even if UUID is available
- —label-bgcolor=,COLOR/
- use COLOR for label background
- —label-color=,COLOR/
- use COLOR for label
- —label-font=,FILE/
- use FILE as font for label
- —macppc-directory=,DIR/ use DIR for PPC MAC install.
- —no-bootsector
- do not install bootsector
- —no-extra-removable
-
Do not install bootloader code to the removable
media path. This option is only available on EFI. - —no-nvram
-
don’t update the `boot-device’/`Boot*’ NVRAM
variables. This option is only available on EFI
and IEEE1275 targets. - —no-rs-codes
-
Do not apply any reed-solomon codes when
embedding core.img. This option is only available
on x86 BIOS targets. - —no-uefi-secure-boot
-
do not install an image usable with UEFI Secure
Boot, even if the system was currently started
using it. This option is only available on EFI. - —product-version=,STRING/
- use STRING as product version
- —recheck
- delete device map if it already exists
- —removable
-
the installation device is removable. This option
is only available on EFI. - -s, —skip-fs-probe
- do not probe for filesystems in DEVICE
- —target=,TARGET/
-
install GRUB for TARGET platform
; available targets:
arm-coreboot, arm-efi, arm-uboot, arm64-efi,
i386-coreboot, i386-efi, i386-ieee1275,
i386-multiboot, i386-pc, i386-qemu, i386-xen,
i386-xen_pvh, ia64-efi, mips-arc, mips-qemu_mips,
mipsel-arc, mipsel-loongson, mipsel-qemu_mips,
powerpc-ieee1275, riscv32-efi, riscv64-efi,
sparc64-ieee1275, x86_64-efi, x86_64-xen - —uefi-secure-boot
-
install an image usable with UEFI Secure Boot.
This option is only available on EFI and if the
grub-efi-amd64-signed package is installed. - -?, —help
- give this help list
- —usage
- give a short usage message
- -V, —version
- print program version
Mandatory or optional arguments to long options are also mandatory or optional
for any corresponding short options.
INSTALL_DEVICE must be system device filename.
grub-install copies GRUB images into boot/grub. On some platforms, it may
also install GRUB into the boot sector.
Автоматическая настройка
GRUB2 традиционно настраивается использованием утилиты grub-mkconfig для генерации конфигурационного файла.
grub-mkconfig создаёт конфигурационный файл основываясь на шаблонах расположенных в /etc/grub.d. Стандартных шаблонов, в основном, должно хватить для большинства схем загрузок.
00_header 10_linux 20_linux_xen 30_os-prober 40_custom 41_custom README
Схема именования ядер
Чтобы grub-mkconfig определила доступные ядра, их имена должны начинаться с vmlinuz- или kernel-.
Например:
Код Пример названия ядер, которые GRUB2 может определить
/boot/vmlinuz-3.4.3 /boot/kernel-2.6.39-gentoo /boot/kernel-genkernel-x86_64-3.17.1-gentoo-r1
Если используется initramfs, то название initramfs файла должно начинаться с initramfs- или initrd-. Версия initramfs должна совпадать с версией образа ядра. Файлы, созданные с помощью genkernel, также будут найдены.
Например:
Код Пример initramfs имён, которые GRUB2 может определить
/boot/initrd.img-3.4.3 /boot/initrd-3.4.3.img /boot/initrd-3.4.3.gz /boot/initrd-3.4.3 /boot/initramfs-3.4.3.img /boot/initramfs-genkernel-3.4.3-gentoo /boot/initramfs-genkernel-x86_64-2.6.39-gentoo
Для создания файла grub.cfg выполните команду grub-mkconfig:
Generating grub.cfg ... Found linux image: /boot/vmlinuz-3.2.9 done
Тихая загрузка ядра
Для загрузки ядра без вывода на экран системных сообщений отредактируйте файл /etc/default/grub, добавив в переменную GRUB_CMDLINE_LINUX_DEFAULT.
Файл Пример параметров тихой загрузки
GRUB_CMDLINE_LINUX_DEFAULT="quiet"
Systemd
Для загрузки systemd при использовании GRUB2 отредактируйте переменную GRUB_CMDLINE_LINUX вот так:
Файл Systemd пример
GRUB_CMDLINE_LINUX="init=/usr/lib/systemd/systemd"
Включение устройства
В момент запуска компьютера, в первую очередь начинает запускаться непосредственно сам BIOS. В этот момент происходит считывание данных, хранящихся в MBR первого диска. Спустя несколько секунд, содержимое «идёт» к оперативной памяти, где происходит проверка на наличие в последних байтах шестнадцатеричных кодов 55 АА. Такая проверка заключается в необходимости идентифицировать носители для их последующей загрузки. Небольшая программка, хранящаяся в MBR, необходима при совпадении представленных кодов. Первая программа «цепляет» следующую, расположенную в загрузочном секторе активного раздела, чтобы впоследствии активировать её, и, как следствие, запустить ОС Windows.
В случае наличия не одного жёсткого диска, пользователь может настроить в BIOS порядок, согласно которому будет производиться запуск конкретных жёстких дисков в момент загрузки системы. Благодаря этой особенности, новые ПК имеют возможность загружать систему как с внешнего диска, так и с USB-накопителя. Естественно, изменив порядок загрузки в BIOS, юзер может загружать систему посредством CD и DVD-дисков.
С помощью BIOS вы можете отрегулировать порядок загрузки носителей
Чтобы в будущем не приходилось разбираться с загрузчиками и думать о том, каким образом должна осуществляться настройка GRUB, пользователь должен знать, как установить две операционные системы от разных производителей таким образом, чтобы они не конфликтовали между собой. Как показывает практика, разумнее всего установить изначально загрузчик системы Linux, чтобы впоследствии иметь возможность выбора относительно запускаемой системы.
Однако, если на устройстве стоит одна из последних версий ОС от компании Microsoft (позднее 9х/ME), то в загрузчике системы можно сделать так, чтобы он самостоятельно «беспокоился» о GRUB. Огромным преимуществом такой возможности является отсутствие необходимости лишний раз разбираться с особенностями MBR. Правда, далеко не каждый современный юзер сможет самостоятельно произвести такую манипуляцию, так как процесс этот достаточно сложный. Всё придётся делать вручную.
Среди прочих способов, настроить нормальную работоспособность двух систем, можно прибегнув к дополнительной установке GRUB. Загрузчик необходимо расположить непосредственно в загрузочном секторе главного раздела и впоследствии отметить его в качестве активного. Этот метод также исключает необходимость использовать MBR, однако он может сработать только с основными разделами и файловыми системами, не влияющими на загрузочный сектор раздела.
Определение разделов
Теперь нужно определить раздел диска, на котором был установлен GRUB.
Выведем список разделов, для этого выполняем команду (в конце команды стоит строчная буква L):
Вывод fdisk для BIOS
Пример вывода команды:
В моем случае мы видим 2 диска: /dev/sda (SSD диск) и /dev/sdb (флешка, с которой сейчас загружена Live-система).
Нас интересует диск /dev/sda. На диске /dev/sda создано несколько разделов. В моем случае /dev/sda4, на котором установлен Windows, а также 4 раздела с пометкой Linux (см. последний столбец таблицы). У вас скорее всего может быть один раздел Linux (корневой раздел) или два раздела (корневой и home). На одном из этих разделов установлен GRUB.
То есть из таблицы вы должны определить какой раздел является корневым, на нем скорее всего у вас установлен GRUB. В моем случае GRUB установлен в раздел /dev/sda2. Далее по тексту я буду его использовать (вы должны будете указывать свой раздел).
Иногда бывает, что для загрузчика GRUB выделен отдельный раздел (он называется boot-раздел). Если это так, то на следующем шаге вам нужно будет примонтировать корневой раздел и раздел с загрузчиком.
Вывод fdisk для UEFI
Для новых компьютеров с UEFI вывод команды fdisk -l может быть примерно следующим:
Нам нужно определить, на каком разделе установлен Linux (корневой раздел), а также определить EFI-раздел. В моем случае это разделы: /dev/nvme0n1p5 и /dev/nvme0n1p1, которые расположены на диске /dev/nvme0n1.
Решение проблем
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
В Вашем .
Настройка Grub через /boot/grub/grub.cfg
Файл /etc/boot/grub/grub.cfg управляет непосредственно работой загрузчика, здесь указаны все его параметры и настройки, а также сформировано меню. Поэтому, изменяя этот файл, мы можем настроить Grub как угодно. Сначала попытаемся разобраться с синтаксисом файла. Он очень напоминает синтаксис bash и состоит из нескольких команд, которые что-то делают, загружают и настраивают.
Команды могут быть объединены в функции или блоки с помощью инструкций if else, синтаксис которых аналогичен bash. Рассмотрим основные из этих команд:
- load_env — загрузить переменные окружения из файла;
- set — установить значение переменной окружения. Используется как set имя_переменной=значение;
- insmod — загрузить модуль из папки с модулями Grub;
- linux — загружает ядро Linux;
- initrd — подготавливает образ initrd для загрузки ядра;
- boot — пытается загрузить систему;
- chainloader — запускает загрузчик из другого раздела;
- search — установить значение переменной выполнив поиск по заданным параметрам, например, может найти диск по его UUID или метке;
- menuentry — позволяет создать пункт меню;
Это все команды, которые вам понадобятся. Но две последние нужно рассмотреть подробнее, так как они будут использоваться чаще всего.
Команда search используется для поиска дисков и имеет такой синтаксис:
$ search опции_поиска —set=имя_переменной —hint приметы_устройства основной_параметр
- Опции поиска задают по какому критерию нужно искать, например, —fs-uuid — искать по UUID, —label — по метке, —no-floppy — не искать в схемных носителях.
- Приметы устройства дают программе дополнительные подсказки для более быстрого поиска;
- Основной параметр — значение, по которому будем выполнять поиск.
Например, команда может выглядеть вот так:
Вторая команда, которая нам очень понадобится, это menuentry. Она используется для создания пунктов меню, с помощью которых будут загружаться операционные системы и дистрибутивы linux. Синтаксис этой команды такой:
menuentry имя_пункта {команды установки переменных окружениязагрузка модулейlinux файл_ядра параметры_ядраinitrd файл_initrd}
Обычно, для нормальной загрузки операционной системы сначала необходимо установить корневой раздел, для этого, возможно, нужно загрузить некоторые модули, дальше нужно запустить ядро с нужными параметрами и добавить образ initrd если это требуется. Самый простой пример пункта меню:
Теперь давайте попробуем собрать всю информацию воедино и создадим самый просто конфигурационный файл для Grub вручную:
# Время показа меню 5 секунд
set timeout=5
# Установим разрешение экрана и укажем что это же разрешение нужно сохранять для ядра:
set gfxmode=»1280×800″
set gfxpayload=keep
# Загрузим необходимые модули для работы видео режима, нужно для использования фоновой картинки
insmod vbe
insmod gfxterm
terminal_output gfxterm
# Установка шрифта с поддержкой Unicode:
font «/boot/grub2/fonts/unicode.pf2»
loadfont unicode
# Загрузим модуль работы с jpeg и зададим фоновый рисунок:
insmod jpeg
background_image «/boot/fon.jpg»
# Установим переменные окружения для настройки цвета меню:
set menu_color_normal=red/black
set menu_color_highlight=yellow/black
set color_normal=yellow/black
menuentry «Ubuntu» {
root=(hd0,1)
linux /casper/vmlinuz boot=casper noeject noprompt splash
initrd /casper/initrd.lz
}
menuentry «OpenSUSE» {
insmod gzio
insmod part_msdos
insmod ext2
set root=’hd0,msdos5′
linux /boot/vmlinuz-4.1.31-30-default root=UUID=c52ca066-e48f-4df2-bc7e-4d885a354090 resume=/dev/sda7 splash=silent quiet showopts
initrd /boot/initrd-4.1.31-30-default
}
Теперь, когда вы знаете как примерно выглядит конфигурационный файл Grub, вы сможете разобраться с файлом, созданным автоматически. Пункты меню выводятся по порядку, поэтому чтобы поменять их местами будет достаточно поменять местами команды в файле
Программа настройки Grub — это хорошо, но также важно понимать как все работает на низком уровне