Введение
В этой лабораторной работе вы узнаете, как настроить меню загрузки GRUB2 в среде Linux. GRUB2 (GRand Unified Bootloader) — это первая программа, которая запускается при включении компьютера и отвечает за загрузку ядра Linux. Вы получите практический опыт работы с основным файлом конфигурации /etc/default/grub, чтобы адаптировать процесс загрузки под свои нужды.
Сначала вы получите доступ к конфигурации GRUB2 по умолчанию и изучите её. Затем вы измените ключевые параметры, такие как GRUB_TIMEOUT, чтобы настроить время отображения меню, и GRUB_DEFAULT, чтобы задать запись для загрузки по умолчанию. В завершение работы вы примените изменения, создав новый файл конфигурации GRUB2 с помощью команды grub2-mkconfig, и научитесь проверять корректность настроек.
Примечание: Поскольку это временная и изолированная виртуальная среда LabEx, мы не можем выполнить реальную перезагрузку системы, чтобы увидеть изменения в действии. Вместо этого вы научитесь проверять изменения конфигурации путем анализа сгенерированных файлов GRUB2. Это критически важный навык для системных администраторов, позволяющий проверять настройки перед перезагрузкой рабочих систем.
Доступ к файлу конфигурации GRUB2 по умолчанию /etc/default/grub
На этом этапе вы узнаете, как получить доступ к основному файлу конфигурации GRUB2 и просмотреть его. GRUB2 (GRand Unified Bootloader, версия 2) является стандартным загрузчиком для большинства современных дистрибутивов Linux. Это первая программа, запускаемая при включении компьютера; её задача — загрузить ядро Linux в память и запустить операционную систему.
Основной файл конфигурации, с которым вы будете работать для настройки поведения GRUB2, находится по адресу /etc/default/grub. Этот файл содержит пары «ключ-значение», которые управляют такими параметрами, как время ожидания меню загрузки, операционная система по умолчанию и дополнительные параметры ядра.
Перед внесением любых изменений важно изучить текущую конфигурацию. Поскольку /etc/default/grub является системным файлом, принадлежащим пользователю root, для доступа к нему необходимо использовать команду sudo. Мы воспользуемся командой cat для вывода содержимого файла в терминал.
Выполните следующую команду, чтобы просмотреть содержимое файла конфигурации GRUB2:
sudo cat /etc/default/grub
Чтобы иметь под рукой эталон для сравнения в ходе лабораторной работы, сохраните текущие настройки времени ожидания и записи по умолчанию в файл в вашей домашней директории:
sudo grep -E "^(GRUB_TIMEOUT|GRUB_DEFAULT)" /etc/default/grub | tee ~/grub-current-settings.txt >/dev/null
Вы увидите вывод, похожий на приведенный ниже. Точные значения могут незначительно отличаться в зависимости от конфигурации вашей системы.
GRUB_TIMEOUT=1
GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
GRUB_DEFAULT=saved
GRUB_DISABLE_SUBMENU=true
GRUB_TERMINAL_OUTPUT="console"
GRUB_CMDLINE_LINUX="crashkernel=1G-4G:192M,4G-64G:256M,64G-:512M rhgb quiet net.ifnames=0 console=tty0 console=ttyS0,115200n8 no_timer_check iommu=pt crash_kexec_post_notifiers=1 nvme_core.io_timeout=4294967295 nvme_core.admin_timeout=4294967295"
GRUB_DISABLE_RECOVERY="true"
GRUB_ENABLE_BLSCFG=true
Давайте кратко рассмотрим два важных параметра из этого файла:
GRUB_TIMEOUT: это значение определяет, как долго (в секундах) будет отображаться меню GRUB2 перед автоматической загрузкой записи по умолчанию.GRUB_DEFAULT: этот параметр указывает, какая операционная система или ядро будут загружаться по умолчанию.
На следующем этапе вы узнаете, как изменить эти параметры, чтобы настроить поведение меню загрузки.
Изменение параметров GRUB_TIMEOUT и GRUB_DEFAULT
На этом этапе вы измените файл конфигурации GRUB2, чтобы настроить поведение меню загрузки. В частности, вы увеличите время ожидания меню и установите конкретную запись для загрузки по умолчанию. Для редактирования файла /etc/default/grub вы будете использовать nano — простой и интуитивно понятный текстовый редактор командной строки. Поскольку это системный файл, необходимо использовать sudo для получения прав на редактирование.
Сначала откройте файл с помощью nano с привилегиями sudo.
sudo nano /etc/default/grub
Редактор nano откроется и отобразит содержимое файла. Теперь внесите два изменения:
Измените значение
GRUB_TIMEOUT: Найдите строку, начинающуюся сGRUB_TIMEOUT. Скорее всего, там установлено значение1. Используйте клавиши со стрелками, чтобы переместить курсор к этой строке, и измените значение с1на15. Теперь меню GRUB2 будет ждать 15 секунд перед автоматической загрузкой.После внесения изменений строка должна выглядеть так:
GRUB_TIMEOUT=15Измените параметр
GRUB_DEFAULT: Найдите строку, начинающуюся сGRUB_DEFAULT. Её значение может бытьsaved. Измените его на0. УстановкаGRUB_DEFAULT=0указывает GRUB2 автоматически загружать первую запись в списке меню (список индексируется с нуля, поэтому0— это первая запись).После внесения изменений строка должна выглядеть так:
GRUB_DEFAULT=0
После внесения изменений необходимо сохранить файл и выйти из nano.
- Нажмите
Ctrl + O(команда "Write Out"), чтобы сохранить изменения. nanoпопросит подтвердить имя файла для записи. Просто нажмитеEnter.- Нажмите
Ctrl + X, чтобы выйти из редактораnanoи вернуться в командную строку.
Вы успешно изменили настройки GRUB2 по умолчанию. На следующем этапе вы примените эти изменения.
Применение и проверка изменений конфигурации GRUB2
На этом этапе вы примените изменения конфигурации, сделанные на предыдущем шаге, и узнаете, как проверить, что GRUB2 был настроен правильно. Вы воспользуетесь командой grub2-mkconfig для генерации нового файла конфигурации на основе ваших правок.
Генерация новой конфигурации GRUB2
Теперь, когда вы изменили файл /etc/default/grub, необходимо применить изменения, создав новый файл конфигурации GRUB2. Команда grub2-mkconfig считывает настройки из /etc/default/grub и скрипты из /etc/grub.d/ для создания итоговой конфигурации GRUB2.
Выполните следующую команду для генерации новой конфигурации:
sudo grub2-mkconfig -o /boot/grub2/grub.cfg
Вы должны увидеть вывод, похожий на этот:
Generating grub configuration file ...
Adding boot menu entry for UEFI Firmware Settings ...
done
Эта команда сканирует систему на наличие доступных ядер, считывает ваши настройки и создает итоговую конфигурацию меню GRUB2.
Проверка изменений конфигурации
Давайте убедимся, что ваши изменения были корректно применены к конфигурации GRUB2. Сначала проверьте, что измененные настройки отражены в файле /etc/default/grub:
sudo grep -E "(GRUB_TIMEOUT|GRUB_DEFAULT)" /etc/default/grub
Вы должны увидеть вывод с вашими новыми значениями:
GRUB_TIMEOUT=15
GRUB_DEFAULT=0
Затем проверьте, что эти настройки были применены к сгенерированному файлу конфигурации GRUB2:
sudo grep -E "(timeout|default)" /boot/grub2/grub.cfg | head -5
Это покажет, как ваши настройки отображаются в итоговом файле конфигурации GRUB2.
Создание резервной копии конфигурации
Всегда полезно создавать резервные копии важных файлов конфигурации перед внесением изменений:
sudo cp /boot/grub2/grub.cfg /boot/grub2/grub.cfg.backup
Это создаст резервную копию, которую можно восстановить в случае необходимости.
Устранение неполадок и проверка конфигурации GRUB2
На этом заключительном этапе вы изучите основные методы устранения неполадок в конфигурациях GRUB2 и поймете, как проверять внесенные изменения. Эти навыки критически важны для системных администраторов, которым необходимо убедиться, что изменения в GRUB2 работают корректно перед перезагрузкой рабочих систем.
Проверка синтаксиса конфигурации GRUB2
Убедитесь, что в вашей конфигурации GRUB2 нет синтаксических ошибок, используя встроенный инструмент проверки:
sudo grub2-script-check /boot/grub2/grub.cfg
Если ошибок нет, команда завершится без вывода сообщений. Любые синтаксические ошибки будут отображены с указанием номеров строк, что поможет вам выявить и исправить проблемы.
Изучение структуры каталогов GRUB2
Изучите структуру каталогов конфигурации GRUB2, чтобы понять, как она работает. Обратите внимание, что для доступа к этому каталогу требуются права суперпользователя:
sudo ls -la /etc/grub.d/
Вы увидите все скрипты, которые генерируют различные части меню GRUB2. Каждый скрипт имеет числовой префикс, определяющий порядок выполнения. Вы увидите такие скрипты, как:
00_header: задает базовую конфигурацию GRUB200_tuned: конфигурации, специфичные для tuned01_users: пользовательские конфигурации10_linux: находит и добавляет ядра Linux20_linux_xen: поддержка гипервизора Xen30_os-prober: поиск других операционных систем40_custom: содержит пользовательские пункты меню
Фактический набор скриптов может варьироваться в зависимости от конфигурации вашей системы и установленных пакетов.
Просмотр доступных пунктов загрузки
Давайте посмотрим, какие пункты загрузки доступны в вашей сгенерированной конфигурации:
sudo grep "menuentry" /boot/grub2/grub.cfg | head -10
Эта команда покажет ссылки на пункты меню и сами пункты. Вывод может включать как переменные конфигурации (например, menuentry_id_option), так и реальные пункты меню загрузки. Ищите строки, содержащие полные определения пунктов меню.
Проверка настроек времени ожидания и значений по умолчанию
Проверьте, что настройки времени ожидания и значения по умолчанию настроены правильно:
sudo grep -E "set timeout|set default" /boot/grub2/grub.cfg
Вы увидите несколько настроек времени ожидания и значений по умолчанию в файле конфигурации. Это нормально, так как GRUB2 использует разные значения времени ожидания для различных сценариев:
- Основное время ожидания (обычно 15 секунд, как мы настроили)
- Условные тайм-ауты для особых ситуаций
- Различные стили тайм-аута (меню, скрытый)
Ключевые настройки для проверки:
set default="0"— устанавливает первый пункт меню по умолчаниюset timeout=15— устанавливает основное время ожидания меню на 15 секунд
Изучение восстановления GRUB2
Понимание процесса восстановления GRUB2 необходимо для устранения проблем с загрузкой. В экстренных ситуациях вы можете:
- Получить доступ к командной строке GRUB2: нажмите
cв меню GRUB2, чтобы войти в режим командной строки - Редактировать пункты загрузки: нажмите
eдля редактирования пункта загрузки перед запуском - Использовать режим восстановления (rescue mode): если GRUB2 не может найти свою конфигурацию, он переходит в режим восстановления
Распространенные команды восстановления:
ls: список доступных разделов и файловset root=(hd0,1): установка корневого разделаlinux /boot/vmlinuz root=/dev/sda1: загрузка ядраboot: запуск процесса загрузки
Финальная проверка конфигурации
Давайте проведем финальную проверку всей конфигурации GRUB2:
sudo cat /etc/default/grub | grep -E "(TIMEOUT|DEFAULT)"
Это подтверждает, что ваши базовые настройки правильно сохранены в исходном файле конфигурации.
Что вы сделали:
- Изменили время ожидания GRUB2 и настройки загрузки по умолчанию
- Применили изменения конфигурации с помощью
grub2-mkconfig - Научились проверять и устранять неполадки в конфигурациях GRUB2
- Создали процедуры резервного копирования для критически важных загрузочных файлов
- Изучили структуру каталогов GRUB2 и варианты восстановления
- Получили навыки проверки конфигураций перед перезагрузкой системы
Ваша конфигурация GRUB2 теперь настроена с 15-секундным тайм-аутом и первым пунктом меню в качестве загрузки по умолчанию. В рабочей среде эти изменения вступили бы в силу при следующей перезагрузке системы, обеспечивая более удобный процесс загрузки.
Резюме
В этой комплексной лабораторной работе вы получили практический опыт настройки загрузчика GRUB2 и методов устранения неполадок. Вы начали с изучения конфигурации GRUB2 по умолчанию, затем изменили ключевые параметры, включая GRUB_TIMEOUT и GRUB_DEFAULT, чтобы настроить поведение меню загрузки. Вы научились применять эти изменения с помощью команды grub2-mkconfig и проверять корректность их реализации.
Ключевые навыки, которые вы развили: понимание структуры конфигурации GRUB2, безопасное редактирование файла /etc/default/grub, правильное применение изменений конфигурации, а также выполнение процедур проверки и резервного копирования. Вы также изучили основные методы устранения неполадок, включая проверку синтаксиса, валидацию конфигурации и понимание вариантов восстановления GRUB2, что критически важно для системных администраторов.
Лабораторная работа подчеркнула практические навыки, необходимые системным администраторам в реальных сценариях, в частности способность проверять конфигурации GRUB2 перед их применением в рабочих системах. Вы научились использовать такие команды, как grub2-script-check для проверки синтаксиса, и различные команды grep для подтверждения того, что изменения были корректно применены к сгенерированным файлам конфигурации.
Эти навыки подготовят вас к уверенной работе со сценариями настройки загрузки и эффективному устранению проблем, связанных с загрузкой в корпоративных средах Linux. Методы проверки, которые вы отработали, особенно ценны для обеспечения корректности конфигураций GRUB2 перед перезагрузкой производственных систем.



