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. Система перестает загружаться чаще всего из-за проблем с ним. Он может быть поврежден установкой рядом других систем или неправильной разбивкой диска.
Важно понимать, что если корневой раздел системы жив, то восстановление непосредственно загрузки — дело техники. Чаще все это все исправляется и система продолжает работать