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

Normal

When GRUB 2 is fully functional, the GRUB 2 terminal is accessed by pressing c. If the menu is not displayed during boot, hold down the SHIFT key until it appears. If it still does not appear, try pressing the ESC key repeatedly.

From a GRUB 2 terminal with the grub> prompt, a wide variety of commands are available.

A few of the more important commands: Command
Result / Example

boot

Initiate the boot sequence, also F10 or CTRL-x

cat

Display the contents of readable files; cat (hd0,1)/boot/grub/grub.cfg

configfile

Load a GRUB 2 configuration file such as grub.cfg; configfile (hd0,5)/boot/grub/grub.cfg

initrd

Loads the initrd.img, necessary for booting; initrd (hd0,5)/initrd.img

insmod

Loads a module; insmod (hd0,5)/boot/grub/normal.mod, or insmod normal

linux

Loads the kernel; insmod /vmlinuz root=(hd0,5) ro

loop

Mount a file as a device; loopback loop (hd0,2)/iso/my.iso

ls

Lists the contents of a partition/folder; ls, ls /boot/grub, ls (hd0,5)/, ls (hd0,5)/boot

lsmod

List loaded modules

normal

Activate the normal module, if loaded

search

Search for a device. Type help search for the available options.

set

Review current settings, or set XXX to set a variable such as colors, prefix, root

vbeinfo

Display GRUB 2 available resolutions

To view the complete command list, type help. For details on a particular command, type help

2 ответа

Решение

Протестировано с двойной загрузкой двух ОС Ubuntu 20.04.

Отредактируйте следующую строку в файле
файл

как это

и запустите следующую команду

это делает таймаут равным 0 с условием, что если есть одна ОС, он будет придерживаться 0, в противном случае он будет перезаписан до 10.

в
файл, измените строку

к

Это предотвратит изменение значения тайм-аута на 10 секунд в случаях с несколькими ОС.

см. функцию «adjust_timeout» из файла

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

В случае, если вы хотите изменить ОС по умолчанию, вы можете установить из того же файла
.

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

Например, у меня две ОС 20.04.. одна в
и другие в

по умолчанию. Если я хочу сделать тот
в качестве ОС по умолчанию мне нужно найти ее номер, как показано ниже.

Итак, его позиция под номером 2.

Отредактируйте файл
и измените строку

к

затем запустите следующую команду

Система загрузится прямо в Ubuntu 20.04 на

4

2020-05-15 17:03

Хотя действительно работает, следует по возможности избегать модификации файлов, установленных базовой системой. В этом случае (например, Ubuntu 20.04) apt-файл показывает, что
принадлежит пакету
(это также верно для всех файлов, расположенных в
, которые используются
команда для компиляции окончательного файла конфигурации GRUB):

Если пакет
обновляется в будущем, apt обнаружит изменение и предложит вам решить, что он должен делать (поскольку оба варианта — файл, измененный вами, а также немодифицированный файл от дистрибьютора — действительны). В худшем случае вам придется вручную сравнить и объединить содержимое файла.

Итак, каковы наши возможности, если мы хотим скрыть меню GRUB в мультизагрузочной среде? На этот раз
package только хочет убедиться, что каждый пользователь может переключаться между установленными операционными системами. Из-за этого сценарий
содержит следующий фрагмент кода:

Этот сценарий (который выполняется после
команда запускается) в основном позволяет вам установить пользовательский тайм-аут даже для сред с несколькими загрузками, но он не допускает тайм-аут, равный 0, поскольку начинающие пользователи, возможно, не будут знать, как загружать свои другие операционные системы без очевидного меню. Это означает, что вы можете установить
значение 1, и поэтому меню GRUB будет отображаться всего на секунду перед загрузкой параметра загрузки по умолчанию.

раствор / тл; др

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

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

Вуаля: GRUB теперь скроет меню и сразу загрузит параметр загрузки по умолчанию. Другие операционные системы по-прежнему можно загружать с помощью UEFI.

2020-08-28 18:00

Отрегулируйте яркость подсветки

Подветка экрана потребляет достаточно много энергии, и её снижение может увеличить время работы от батареи. Снижая яркость подсветки экрана вы не только экономите энергию, но и бережёте свои глаза (работа с высоким уровнем яркости со временем приведет к потере зрения).

Для регулировки яркости подсветки можно использовать небольшую утилиту “xbacklight”. Для того, чтобы установить её в Ubuntu, выполните следующую команду:

После установки, можно вызвать команду с параметром “-set” для задания уровня яркости по шкале от 0 до 100, например, для того, чтобы задать яркость 15:

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

Презентация

Самым важным моментом этой спецификации является то, что именно операционная система отвечает за управление мощностью компонентов компьютера. Это важный шаг вперед по сравнению с предыдущими стандартами, такими как Advanced Power Management (APM), за управление питанием которых отвечает BIOS .

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

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

Первой версией Microsoft Windows, поддерживающей ACPI, была Windows 98 . Первой версией FreeBSD с поддержкой ACPI является версия 5.0. Linux , NetBSD , OpenBSD и DragonFly BSD теперь имеют хотя бы частичную поддержку ACPI.

Команды консоли 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

Позволяет переключиться на обычную черно-белую цветовую гамму. Весьма полезно при работе с консолью в том случае, если у вас установлено фоновое изображение. Картинка на фоне — это, конечно, красиво, но на некоторых участках фона может быть не виден текст.

Восстановление с помощью LiveCD/USB

Первый способ

gnome-terminal

Далее необходимо узнать Вашу таблицу разделов. Используйте команду:

sudo fdisk -l

На экран должна быть выведена примерно такая таблица:

/dev/sda3     239616 233392328 233152713 111,2G Microsoft basic data
/dev/sda4  233394176 234438655   1044480   510M Windows recovery environment
...
Disk identifier: 0x7d6fe43d

Device     Boot    Start        End    Sectors   Size Id Type
/dev/sdc1  *        2048   29304782   29302735    14G 83 Linux
/dev/sdc2       29304832 1953523711 1924218880 917,6G 83 Linux

Из таблицы видим, что Linux (загрузочный /-корень отмечен звёздочкой) стоит, в нашем случае, на разделе /dev/sdc1.

Теперь подключим этот раздел в /mnt следующей командой (следим за пропусками между кодами и порядковыми номерами разделов):

sudo mount /dev/sdc1 /mnt

Затем, для записи grub в MBR, вводите следующую команду:

sudo grub-install --root-directory=/mnt /dev/sdc

В случае, если нужно только восстановить MBR диска (например, после переустановки Windows), то этого достаточно, закрываем терминал и перезагружаем.

Если нужно обновить и меню grub (например, после установки Windows), то нужно сделать:

sudo update-grub --output=/mnt/boot/grub/grub.cfg

Восстановление закончено!

Восстановление используя chroot

gnome-terminal

Далее необходимо узнать Вашу таблицу разделов. Используйте команду:

sudo fdisk -l

На экран должна быть выведена примерно такая таблица:

/dev/sda1 29 8369 66999082+ 83 Linux
/dev/sda2 * 8370 13995 45190845 7 HPFS/NTFS
/dev/sda3 13996 14593 4803435 5 Extended

Теперь нужно примонтировать Ваш Linux раздел (здесь это sda1) и еще несколько важных директорий:

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

sudo chroot /mnt

Теперь необходимо установить GRUB, используя команду:

grub-install /dev/sda

Если Вы получили сообщение об ошибке, то используйте команду:

grub-install --recheck /dev/sda

Также в некоторых случаях может помочь вариант:

grub-install --recheck --no-floppy /dev/sda
exit

Теперь необходимо отмонтировать разделы:

sudo umount /mnt/dev
sudo umount /mnt/proc
sudo umount /mnt/sys
sudo umount /mnt

Если Вы монтировали раздел /boot воспользуйтесь командой:

sudo umount /mnt/boot

Затем перезагрузим Ваш компьютер командой:

sudo reboot

При необходимости Вы можете обновить меню загрузчика командой:

sudo update-grub

раствор / тл; др

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

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

Вуаля: GRUB теперь скроет меню и сразу загрузит параметр загрузки по умолчанию. Другие операционные системы по-прежнему можно загружать с помощью UEFI.

Настройка 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 — это хорошо, но также важно понимать как все работает на низком уровне

Дистрибутивы Linux с Legacy GRUB

Amazon Linux 1 аналогично RHEL6.X, RHEL5.X и CentOS использует в качестве загрузчика GRUB (также известный как Legacy RUB). Узнать версию в подобных дистрибутивах вы можете так:

# grub-install -v grub-install (GNU GRUB 0.97)

Файл конфигурации GRUB располагается в /boot/grub/grub.conf и содержит две символические ссылки на себя: /etc/grub.conf и /boot/grub/menu.lst. Нам нужно изменить эту конфигурацию grub, добавив дополнительные параметры загрузки ядра. Однако, чтобы сделать это эффективно, давайте сначала разберём основы конфигурации grub. Ниже приведён её пример из инстанса EC2 Amazon Linux 1.

Интерфейс прошивки

ACPI определяет множество таблиц, которые обеспечивают интерфейс между ACPI-совместимой операционной системой и системной прошивкой ( BIOS или UEFI ). Это включает, например, RSDP, RSDT, XSDT, FADT, FACS, DSDT, SSDT, MADT и MCFG.

Таблицы позволяют описывать аппаратное обеспечение системы независимым от платформы способом и представлены либо в виде структур данных с фиксированным форматом, либо в виде AML. Основная таблица AML — это DSDT (таблица описания дифференцированной системы). AML можно декомпилировать с помощью таких инструментов, как Intel iASL (с открытым исходным кодом, часть ACPICA) для таких целей, как исправление таблиц для расширения совместимости с ОС.

Указатель описания корневой системы (RSDP) расположен в зависимости от платформы и описывает остальные таблицы.

grub rescue>

The GRUB 2 rescue mode is a major enhancement to the GRUB bootloader. The presence of the grub rescue> prompt signifies that GRUB 2 has failed to find the grub folder, the grub.cfg file, and/or the associated modules. The rescue prompt is presented so the user can provide the path to the grub folder, load the necessary modules, and provide the proper boot commands.

A common reason for the grub rescue> prompt is an incorrect path to the grub folder. Reasons for the prompt also include a failure to update GRUB 2 after certain system or partition operations, improper designation of the grub folder location, missing linux or initrd.img symlinks in /, or a failed installation.

To successfully boot from the grub rescue> prompt:

  • The grub folder must exist and contain the necessary GRUB 2 files and modules.

  • The proper paths must be set via the set prefix command.

    Many GRUB 2 commands will not work until the correct path is set. If the path to the grub folder (normally /boot/grub) is not correct, an unknown command or file not found message is likely.

  • The necessary modules must be loaded.

    The kernel cannot be loaded until the ‘linux’ module is loaded.

  • A Linux kernel and initrd.img must be located and loaded.

Use the section to locate the correct partitions and file locations. Once the user has confirmed the paths and existence of the proper folders using the section, run the following commands:

1. set prefix=(hdX,Y)/boot/grub

Use the values determined earlier.

Example: If the Ubuntu system is on sda5, enter: set prefix=(hd0,5)/boot/grub

2.* set root=(hdX,Y)

Confirm the correct X,Y values and press ENTER.

Example: If the Ubuntu system is on sda5, enter: set root=(hd0,5)

3. insmod normal

Load the normal module.

If the module loads there will be no message.

If the module fails to load, try the full path: insmod (hdX,Y)/boot/grub/normal.mod

4. normal

Transition to the normal GRUB 2 mode with increased functionality.

If the module loads there will be no message.

If the module loads, HELP, TAB completion and command recall using the UP/DN keys should be available.

5. set

(Optional) Review the current settings.

6. insmod linux

Load the linux module. An error message usually means the path is incorrect.

7.* linux /vmlinuz root=/dev/sdXY ro

Selects the latest kernel.

Example: linux /vmlinuz root=/dev/sda5 ro

If the vmlinuz symlink does not exist in /, use the full path to the kernel in /boot

Example: linux /boot/vmlinuz-3.2.0-14-generic root=/dev/sda1 ro

8. initrd /initrd.img

Selects the latest initrd image.

If the initrd symlink does not exist in /, use the full path to the initrd image in /boot

If successful, after ENTER there will be a slight delay and no messages.

9. boot

Boot to the latest kernel on the selected partition.

* Wubi users only — substitute these commands in Steps 2 and 7:

1.set root=(loop0)

2. linux /vmlinuz root=/dev/sdXY loop=/ubuntu/disks/root.disk ro

Some additional considerations:

  • The current prefix and root settings may be checked at any time with the set command. To remove a setting, use the unset command.

    Example: unset prefix

  • Modules must be loaded before they can be used. If a module has not been loaded a unknown command error is displayed. If an incorrect path is specified, a file not found error message may be displayed.

  • The linux module must be loaded to be able to load both the kernel and the initrd image unless the normal module is loaded first.

  • If the modules cannot be found in the /boot/grub folder, the user may be able to load them from the /usr/lib/grub/i386-pc folder. The address if Ubuntu was installed on sda1 would be (hd0,1)/usr/lib/grub/i386-pc and the command would be:

    insmod (hd0,1)/usr/lib/grub/i386-pc/normal.mod

Refer to the section if the system successfully boots.

Отключите хранители экрана

Хранители экрана — это программы, которые работают в фоновом режиме, показывая на экране картинки или какую-то информаци. когда компьютер не используется. Это очень старые программы, которые использовались для продления срока службы мониторов с электронно-лучевыми трубками. На современных компьютерах, тем более ноутбуках, они абсолютно бесполезны. Кроме того, они потребляют дополнительную энергию, особенно если графика сложная.

Для того, чтобы отключить хранители экрана, выполните следующую команду:

Однако, эта команда отключит их только для текущего сеанса, для того, чтобы отключать их при каждой загрузке, добавьте в файл /home/имя-пользователя/.xsession (на забудьте заменить имя-пользователя на ваше имя):

следующую строку:

Заключение

В целом, мы выполнили типовую процедуру восстановления загрузки любого linux сервера, в том числе ubuntu. Если бы раздел boot не получилось восстановить, его нужно было бы создать вручную и проделать все то же самое с восстановлением grub. Это ключевой элемент загрузки linux. Система перестает загружаться чаще всего из-за проблем с ним. Он может быть поврежден установкой рядом других систем или неправильной разбивкой диска.

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

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

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