color
grub> help color
color: color NORMAL
Change the menu colors. The color NORMAL is used for most lines in the
menu, and the color HIGHLIGHT is used to highlight the line where the
cursor points. If you omit HIGHLIGHT, then the inverted color of NORMAL
is used for the highlighted line. The format of a color is «FG/BG». FG
and BG are symbolic color names. A symbolic color name must be one of
these: black, blue, green, cyan, red, magenta, brown, light-grey,
dark-grey, light-blue, light-green, light-cyan, light-red,
light-magenta, yellow and white. But only the first eight names can be
used for BG. You can prefix «blink-» to FG if you want a blinking
foreground color.
map
grub> help map
map: map ]
TO_DRIVE FROM_DRIVE]
Map the drive FROM_DRIVE to the drive TO_DRIVE. This is necessary when
you chain-load some operating systems, such as DOS, if such an OS
resides at a non-first drive. TO_DRIVE can be a disk file, this
indicates a disk emulation. If TO_DRIVE is a disk file, it must be
contiguous(i.e., no holes in it). If —read-only is given, the emulated
drive will be write-protected. If —fake-write is given, any write
operations to the emulated drive are allowed but the data written will
be discarded. The —unsafe-boot switch enables the write to the Master
and DOS boot sectors of the emulated disk. If —disable-chs-mode is
given, CHS access to the emulated drive will be refused. If
—disable-lba-mode is given, LBA access to the emulated drive will be
refused. H and S specify the geometry of the emulated drive. M/N
specify the floppy/harddrive count in the BIOS data area. If RAW=1, all
memdrives will be accessed without using int15/ah=87h. If RAW=0, then
int15/ah=87h will be used to access memdrives. If one of —status,
—hook, —unhook, —rehook, —floppies, —harddrives, memdisk-raw,
—a20-keep-on, —safe-mbr-hook, —int13-scheme, —ram-drive, —rd-base
or —rd-size is given, then any other command-line arguments will be
ignored. They either report or change the int13 status, or change the
floppy or hard drive count byte in the BIOS data area. The —mem option
indicates a drive in memory. if RESERV is used and <= 0, the minimum
memory occupied by the memdrive is (-RESERV) in 512-byte-sectors. if
RESERV is used and > 0, the memdrive will occupy the mem area starting
at absolute physical address RESERV in 512-byte-sectors and ending at
the end of this mem block(usually the end of physical mem). RD
specifies the ramdisk number, and can be a BIOS drive number. ADDR
specifies the base address of the ramdisk image. SIZE specifies the
size in bytes of the ramdisk image.
Search & Set
A great many boot problems are due to incorrect paths to required files. The GRUB 2 terminal, in either ‘failure’ mode, provides a robust ability to search hard drive(s) and partitions and to inspect their contents.
In order to boot successfully, the root, prefix, linux and initrd variables must be correct. The user must verify the paths and names of these items. If they are incorrect, use the commands below to find and fix them. GRUB 2 variable settings can be viewed with the set command.
In the following examples, X is a hard drive number; Y is a partition number. If a command example includes either of these replace them with the appropriate value.
How & Where to Search
In the graphic below, the text in red are commands to be entered by the user, and text in green is the output of the command on an operating system (i.e. what you would like to see if your Ubuntu installation is on sda1).
-
The first hard drive is . The first partition is 1. Thus sda1 becomes (hd0,1), sdb5 is (hd1,5).
-
Use the ls command in the follow manner
- «Tab completion» may work — enter part of the filename and press the TAB key.
Command |
Purpose |
ls |
Search the entire computer for devices and partitions: (hd0) (hd1) (hd0,1) (hd0,5) (hd1,1) |
ls / |
Search the root directory of the device designated as root (use the set command to check root). |
ls (hdX,Y) |
View information about a partition — format, size, UUID, etc. |
ls (hdX,Y)/ |
View the root contents of a partition. Use this command to look for the presence of vmlinuz and initrd.img symlinks |
ls (hdX,Y)/boot/ |
View the contents of a folder |
ls (hdX,Y)/boot/ |
Inspect the /boot folder. It should contain the actual kernel (linux-3.2…) and initrd image (initrd.img-3.2….) |
ls (hdX,Y)/boot/grub/ |
Inspect the /boot/grub folder. It should contain grub.cfg and many *.mod files. If looking for a specific file, include the name in the search to limit the number of returns. If available, the command set pager=1 will also limit returns to a single screen. |
What to Look For |
Where It Should Be (Default Installation) |
Specific / General Search Example |
grub.cfg |
(hdX,Y)/boot/grub/ or /boot/grub/ |
ls (hdX,Y)/boot/grub/grub.cfg or ls /boot/grub/ |
vmlinuz |
(hdX,Y)/ or |
ls (hdX,Y)/vmlinuz or ls /vmlinuz or ls / |
linux-3.2.0-14* |
(hdX,Y)/boot/ or /boot/ |
ls (hdX,Y)/boot/vmlinuz-3.2.0-14 |
initrd |
(hdX,Y)/ or |
ls (hdX,Y)/ or ls /initrd |
initrd.img-3.20-14 |
(hdX,Y)/ or /boot/ |
ls (hdX,Y)/boot/initrd.img-3.20-14 or ls (hdX,Y)/boot/ |
* Note: Use the full kernel name, including -generic, when searching or setting a kernel variable. Using the «TAB completion» technique may eliminate some typing and be more accurate if available.
Use the following commands to set these parameters (if incorrect). Substitute the correct value for X and Y. (Example: set root=(hdX,Y) becomes set root=(hd0,5) )
Task |
Command |
Notes |
Set the prefix |
set prefix=(hdX,Y)/boot/grub |
Use the actual location of the grub folder |
Set root |
set root=(hdX,Y) |
|
Set the kernel |
linux /vmlinuz root=/dev/sda1 ro |
Set the kernel if the symlink vmlinuz exists in / |
Set the kernel |
linux (hdX,Y)/boot/vmlinuz-3.0.2-14 root=/dev/sda1 ro |
Set the kernel itself |
Set the initrd image |
initrd /initrd.img |
Set the initrd image if the symlink exists in / |
Set the initrd image |
initrd (hdX,Y)/boot/initrd.img-3.0.2-14 |
Set the initrd image itself |
The commands which follow assume you have determined the proper parameters for prefix, root, linux, and initrd. Review the section of this page for guidance .
Предупреждение
Обратите внимание! GRUB 2 до сих пор является бета-версией
программного обеспечения. Несмотря на это, он уже поставляется с Ubuntu
подобными системами, хотя является не совсем доработанным продуктом
Вы, наверное, сможете использовать его без каких-либо проблем. Хотя
проблемы и существуют, но вероятность повреждения системы невелика.
Вам необходимо это знать
Даже, в случаях, когда решаются задачи, требующие осторожного
обращения, которые осуществляют критически важные функции системы, например, разбиение жесткого
диска на разделы, последовательная загрузка, манипуляции с образом системы и другие, вы всегда
будете готовы к наихудшему развитию событий. Это значит:
- Вы должны иметь проверенный порядок действий при отказе системы, чтобы не произошла
потеря всех ваших данных. - Поэтому вы должны владеть инструментами и знаниями о быстром восстановлении системы
после аварийного сбоя. Это включает в себя восстановление предыдущего состояние системы,
исправление поврежденных конфигураций, восстановление первичных загрузчиков и другие задачи. - Вы должны быть уверены в том, что вы делаете.
Теперь мы знаем об этом и пойдем дальше смело.
Немного теории
Как я уже сказал, основная задача загрузчика — предоставить возможность выбора операционной системы перед загрузкой. Не думайте, что в Windows загрузчик не используется, там он тоже есть и работает, подобно тому, как работает Grub.
Загрузчик может быть установлен в различные таблицы разделов диска. Сейчас самые используемые это GPT и MBR. Установка загрузчика Grub немного отличается для каждой из этих таблиц, учитывая их особенности. Подробнее об отличиях MBR vs GPT можно почитать в отдельной статье. Тут же я скажу, что GPT — более новая и функциональная таблица разделов, MBR — уже устаревшая, но до сих пор часто используемая.
В MBR вариантов немного, Grub записывается в область MBR на диске. Размер сектора MBR занимает первых 512 байт и этого вполне достаточно для того, чтобы установить туда загрузчик.
GPT предоставляет более широкие возможности. Во-первых, для совместимости в GPT эмулируется сектор MBR, и мы можем установить GRUB туда, но такой вариант очень ненадежный и не рекомендуемый. Во-вторых, теперь появилась возможность устанавливать Grub на раздел диска. Мы просто создаем раздел на диске размером 1 Мб и записываем туда то, что раньше записывалось в MBR, это делает установку загрузчика более надежной и защищенной от сбоев.
UEFI предоставляет совсем иной способ установки загрузчика. Тут его не нужно никуда записывать, загрузчик — это обычное приложение EFI, которое помещается на раздел EFI и уже там полностью успешно работает наряду с другими приложениями.
Для установки Grub будет использоваться команда grub-install, во всех случаях. Давайте кратко рассмотрим ее синтаксис и параметры. Синтаксис:
$ grub-install опции диск
Параметров здесь достаточно много, но нам будут нужны только некоторые:
- —compress — сжать файлы загрузчика;
- —install-modules=модули — установить только эти модули;
- —modules — записать эти модули в MBR;
- —boot-directory — использовать другой каталог для файлов Grub;
- —bootloader-id — имя загрузчика в меню EFI;
- —core-compress — сжимать образ, загружаемый в MBR;
- —efi-directory — использовать системный раздел EFI;
- —force — установить несмотря на ошибки;
- —recheck — удалить существующую карту устройств, помогает если возникают ошибки;
- —removable — установка grub на флешку (только EFI);
Основу разобрали. Теперь перейдем к установке. Дальше я буду предполагать, что все действия выполняются из системы, для которой нужно установить загрузчик или из chroot окружения этой системы.
Выбираем источники для мультизагрузки
В главном окне программы Вы можете видеть поля для указания пути к дистрибутивам с операционными системами и утилитами восстановления. Для дистрибутивов Windows требуется указать путь к папке — т.е. не просто к ISO файлу. Поэтому, прежде чем приступать, смонтируйте образы дистрибутивов Windows в системе, или же просто распакуйте ISO образы в папку на компьютере с помощью любого архиватора (архиваторы умеют открывать файлы ISO как архив).
Ставим галочку напротив Windows 2000/XP/2003, нажимаем кнопку с изображением многоточия тут же, и указываем путь к диску или папке с установкой Windows XP (в этой папке содержатся подпапки I386/AMD64). Аналогично прделываем с Windows 7 (следующее поле).
Для диска LiveCD ничего указывать не нужно. В моем случае на нем используется загрузчик G4D, а потому в поле PartedMagic/Ubuntu Desktop variants/Other G4D просто указываем путь к файлу .iso
Нажимаем «Go». И дожидаемся, когда все, что нам нужно, скопируется на флешку.
По завершении копирования программа выдает какое-то лицензионное соглашение… Я всегда отказываюсь, т.к. на мой взгляд оно не имеет отношения к только что созданной флешке.
А вот и результат — Job Done. Мультизагрузочная флешка готова к использованию. На оставшиеся 9 гигабайт я обычно записываю все остальное, что мне необходимо для работы — кодеки, Driver Pack Solution, наборы бесплатных программ и другую информацию. В итоге, для большинства задач, за которыми меня вызывают, мне вполне достаточно этой единственной флешки, но для солидности я, конечно, беру с собой рюкзак, в котором есть отвертки, термопаста, разлоченный 3G USB-модем, набор компакт-дисков для различных целей и другие причиндалы. Иногда пригождаются.
О том, как установить загрузку с флешки в BIOS вы можете прочесть в этой статье.
Основы
Что такое GRUB?
GRUB это один из самых частоиспользуемых загрузчиков, который используется на всех компьютерах с Linux, кроме встраиваемых. Роль GRUB состоит в загрузке ядра Linux с диска в память, а также передаче ему управления.
Зачем переходить?
Прежде всего, GRUB Legacy больше не поддерживается, и, поэтому, больше не обновляется. GRUB Legacy был создан в то время, когда разработчики могли сделать несколько предположений при разработке, которые сегодня являются ложными. Например, GRUB Legacy не может загружаться с дисков, размером больше, чем 2 Тб, и предполагает, что никакие новые файловые системы не заменят /boot.
GRUB2 стремится быть более ясным, более портируемым, более мощным, и имеет более чистую кодовую базу. GRUB2 поддерживает большее число конфигураций оборудования, большее число файловых систем, и большее число разметок диска, чем его предшественник.
Загрузка нескольких операционных систем
Если необходимо настроить загрузку одной из нескольких операционных систем, установленных на компьютере, то наиболее простой способ представлен ниже.
В окончании процесса установки операционной системы, как правило, у вас будет спрошено, куда бы вы хотели установить загрузчик Grub. По умолчанию это первый загрузочный сектор MBR жесткого диска, на который производиться установка. Вместо этого выберите установку загрузчика на раздел диска. Затем инсталлятор спросит вас, с какого жесткого диска производить загрузку операционной системы. В данном случае этот жесткий диск будет являться обычным корневым разделом, настройку которого мы будет производить дальше вручную в конфигурационном файле, открыв его в терминале.
Теперь у нас будет два файла с именем , один из которых располагается в директории раздела, на который установлена операционная система, и второй — оригинальный файл. В своем примере я использую раздел , который загрузчик Grub воспринимает как раздел . На этот раздел у меня установлена операционная система ZenMini. В оригинальный файл я добавляю следующие строки:
title zen-mini
root (hd0,4)
configfile /boot/grub/menu.lst
Теперь, при перезагрузке компьютера, если я выберу этот пункт в меню Grub, то будет осуществлено перенаправление в новое меню, в котором будут пункты, относящиеся к вновь установленной операционной системе ZenMini. В результате у меня имеется файл на разделе с установленной операционной системой, который полностью идентичен оригинальному файлу , с одним единственным различием — раздел заменен на раздел , что позволяет управлять операционными системами более легко. Строфа в файле системы ZenMini выглядит следующим образом:
title zen
kernel (hd0,4)/boot/mykernel root=LABEL=kde4
initrd (hd0,4)/boot/myinitrd
А здесь представлена часть оригинального файла :
title lxde
root (hd0,5)
configfile /boot/grub/menu.lst
title e17
root (hd0,6)
configfile /boot/grub/menu.lst
title Phoenix
root (hd0,7)
configfile /boot/grub/menu.lst
Такое построение загрузки нескольких операционных систем мне кажется наиболее простым и легким для дальнейшей ее поддержки.
Присвоение ярлыков разделам
В моем случае вывод показал две ссылки с именами и . Теперь я также знаю, что корневым разделом у меня является . В своей практике я нашел очень удобным применение ярлыков для разделов. Например, введя команду , тем самым я задаю для своего корневого раздела ярлык . На моем компьютере все разделы имеют ярлыки, созданные таким образом. Однако, если командная строка является для вас неудобной, вы можете воспользоваться графическим интерфейсом Control Center в операционной системе PCLinuxOS. Для этого перейдите в главном меню «Local disks — Manage disk partitions — Expert Mode», где можно задать ярлыки для ваших собственных разделов.
setkey
grub> help setkey
setkey: setkey
Change the keyboard map. The key FROM_KEY is mapped to the key TO_KEY.
A key must be an alphabet, a digit, or one of these: escape, exclaim,
at, numbersign, dollar, percent, caret, ampersand, asterisk, parenleft,
parenright, minus, underscore, equal, plus, backspace, tab,
bracketleft, braceleft, bracketright, braceright, enter, control,
semicolon, colon, quote, doublequote, backquote, tilde, shift,
backslash, bar, comma, less, period, greater, slash, question, alt,
spcae, capslock, FX (X is a digit), and delete. If no argument is
specified, reset key mappings.
install
grub> help install
install: install STAGE1 DEVICE
STAGE2
Install STAGE1 on DEVICE and install a blocklist for loading STAGE2 as
a Stage 2. If the option ‘d’ is present, the Stage 1 will always look
for the disk where the STAGE2 was installed, rather than using the booting
drive. The Stage 2 will be loaded at address ADDR, which will be
determined automatically if you don’t specify it. If the option ‘p’ or
CONFIG_FILE is present, then the first block of Stage 2 is patched with
new values of the partition and name of the configuration file used by
the true Stage 2 (for a Stage 1.5, this is the name of the true Stage
2) at boot time. If STAGE2 is a Stage 1.5 and REAL_CONFIG_FILE is
present, then the Stage 2 CONFIG_FILE is patched with the configuration
filename REAL_CONFIG_FILE. If the option ‘—force-lba’ is specified,
disable some sanity checks for LBA mode. If the option ‘—stage2’ is
specified, rewrite the Stage 2 via your OS’s filesystem instead of the
raw device.
GRUB 2 — перспективы развития
Это то, с чем вы должны ознакомиться до опробования GRUB 2. Когда GRUB 2 станет де-факто
загрузчиком для UNIX подобных операционных систем? В настоящее время GRUB legacy прекрасно
справляется и будет продолжать это делать еще много лет. Получив долгосрочную поддержку от компаний,
подобных RedHat и Novell, в серверных дистрибутивах, GRUB legacy остался ключевым игроком на самое
меньшее 5-10 лет.
На настольных машинах внедрение должно происходить быстрее, но не стоит ждать чудес слишком
быстро. Тем не менее, это не помешает начать его изучение. Примите это к сведению, вы столкнетесь с
некоторыми ограничениями совместимости в дальнейшем, особенно во многих консервативных
дистрибутивах, которые не внедряют новые технологии слишком быстро.
На данное время GRUB 2 применяется только в системах семейства Ubuntu, которые занимают
только третью часть рынка настольных систем на базе Linux. Данное обстоятельство делает это
руководство актуальным только для одного из двух или даже трех домашних пользователей Linux,
которые могли бы быть заинтересованы в том, чтобы узнать больше о GRUB 2 и его применении.
Теперь давайте перейдем к реальным механизмам.
Способ 2
Всё сильно упрощается, если использовать Live CD – загрузочный диск с системой Linux
Он может быть записан на флешке, на внешнем винчестере или на обычном диске – это неважно, главное, чтобы с него можно было загрузить компьютер
После загрузки Linux стандартным способом устанавливается бесплатная утилита Boot Repair. Она предназначена именно для устранения ошибок загрузки с помощью загрузчика Grub и очень проста в использовании – достаточно кликнуть по кнопке.
Заметим, что иметь Live CD для линуксоида всегда полезно и даже необходимо. Это зачастую избавляет от множества проблем, так как позволяет загрузить полноценную систему с внешнего носителя и использовать весь её инструментарий. Скачать такой диск с любой версией Linux не представляет сложностей, в комплекте обычно идёт инструкция по записи его на флешку.
Проверка работоспособности созданной загрузочной флешки
Проще всего это сделать на компьютере, выбрав загрузку с Flash драйва в BIOS или нажав соответствующую клавишу при включении компьютера.
Универсального способа войти в меню, который бы работал на всех компьютерах, нет. Тут необходимо проявить смекалку.
Если у вас стационарный компьютер, то воспользовавшись статьёй Как узнать марку (модель) материнской платы: обзор способов узнайте марку и модель вашей материнской платы, а после воспользуйтесь поисковиком и введите следующий запрос «название вашей материнской платы меню загрузки\boot menu». Если же у вас ноутбук, то посмотрите его название и введите соответствующий запрос.
Более подробно о том, как вызвать загрузочное меню, вы можете прочесть в материале Как зайти в загрузочное меню (boot menu) – подробная инструкция.
Однако если вы редактируете меню, добавляя новые пункты для загрузчика, то оперативнее будет просматривать изменения с помощью утилиты MobaLiveCD.
Скачайте её с официального сайта, сохраните в желаемом месте и запустите от имени администратора.
В открывшемся окне нажмите на кнопку Run The LiveUSB.
В открывшемся окне укажите загрузочную флешку. Ориентируйтесь по букве диска.
В следующем окне будет выдан запрос на создание образа – ответьте отказом, нажав кнопку No.
Если всё было сделано правильно, то будет эмулирован процесс загрузки, отобразится соответствующее меню.
Поздравляю! Загрузчик прописан корректно и теперь ваша флешка является загрузочной.
Как работает 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 | Загружает систему с указанного образа ядра |
Инсталляция в MBR жёсткого диска
GRUB install можно производить сразу же, как только будет создан соответствующий конфигурационный файл (задаётся посредством команды /boot/grub/menu.lst). В каталоге grub в обязательном порядке должны присутствовать такие файлы, как stage1, stage2 и *_stagel_5. В случае их отсутствия, в этот раздел следует записать файлы, содержащиеся в GRUB.
Дальнейшие манипуляции заключаются в запуске загрузчика GRUB и выполнении команды setup. Значения hdl,12 должны быть заменены на имя устройства GRUB раздела диска, содержащего /boot. Следует быть предусмотрительным, так как раздел /boot может располагаться не в системной папке, а в другой. Hd0 отвечает за область хранения загрузочного сектора основного жёсткого диска.
SUSE во время инсталляции пополняется файлом /etc/grub.conf., в котором содержатся команды, относящиеся непосредственно к GRUB install. Если что-то пошло не так, пользователь ПК может в любой момент процедуры заново запустить установку. Помочь в этом может команда grub < /etc/grub.conf.
Настройка 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 — это хорошо, но также важно понимать как все работает на низком уровне
Назначение программы
Многие пользователи вынуждены работать одновременно с 2-3 операционными системами. Каждая из них должна запускаться отдельно. Для того чтобы избежать необходимости постоянно менять компьютер во время работы, можно установить все необходимые операционные системы на один ПК. Не каждая ПЭВМ предоставляет подобную возможность. Для того чтобы пользователи получили шанс менять операционные системы во время включения компьютера, разработчики создали утилиту Grub4Dos.
С помощью данного программного продукта осуществляется настройка меню загрузки. Это дает пользователю возможность выбрать, какие процессы требуется запускать в то или иное время. Данная функция не является единственным назначением приложения. Загрузчик Grub4Dos имеет множество иных полезных опций.
Настройка интерфейса
Приложение реагирует лишь на программируемые команды. На начальном этапе пользователю потребуются некоторые из них. Настройка интерфейса осуществляется с помощью файла menu.lst. Он находится в архиве с утилитой. Используя любой текстовый редактор, можно открыть необходимый файл и внести в него изменения.
По умолчанию в нем прописаны несколько команд. Параметр default применяется для запуска процесса автоматического выбора при долгом ожидании. Если пользователь никак не может отметить нужную строчку в меню, то будет загружен тот пункт, который указан напротив данного параметра. Команда timeout позволяет настроить период ожидания выбора владельца компьютера. С помощью параметра color задается цветовая гамма фона основного меню Grub4Dos.
Другие команды из списка позволяют настроить внешний вид утилиты. Напротив программного элемента foreground указывается цвет всего текста. Параметр splash image задает картинку, которая будет отображаться на заднем плане. С помощью команды background можно выбрать цвет фона меню.