Подробный гайд по параметрам загрузки ядра и настройке GRUB2 в ALT Linux 11 - Часть 2
Вторая часть гайда (разделы с 10 по 18 включительно):
10. Как правильно узнать текущий root=UUID
Выполните:
findmnt -no UUID /
Если вывод пустой или вместо UUID устройство, можно так:
ROOT_DEV=$(findmnt -no SOURCE /)
echo "$ROOT_DEV"
blkid "$ROOT_DEV"
Для LVM источник может быть вида:
/dev/mapper/vg-root
Тогда можно посмотреть файловую систему:
blkid /dev/mapper/vg-root
или:
lsblk -f
11. Добавление собственного пункта загрузки
Иногда нужно не менять стандартные пункты, а добавить отдельный пункт с конкретными параметрами.
Для этого используется файл:
/etc/grub.d/40_custom
Пример добавления собственного пункта.
Сначала посмотрите текущие параметры:
cat /proc/cmdline
Посмотрите файлы ядра и initrd:
ls /boot | grep -E 'vmlinuz|initrd'
Добавьте блок в конец файла /etc/grub.d/40_custom.
Пример, если /boot находится на том же разделе, что и система:
menuentry 'ALT Linux custom' {
search --fs-uuid UUID_РАЗДЕЛА_ГДЕ_ЛЕЖИТ_BOOT --set=root
linux /boot/vmlinuz-VERSION root=UUID=UUID_КОРНЕВОГО_РАЗДЕЛА ro quiet nomodeset
initrd /boot/initrd-VERSION.img
}
Если /boot отдельный раздел, пути обычно будут без /boot:
menuentry 'ALT Linux custom' {
search --fs-uuid UUID_РАЗДЕЛА_BOOT --set=root
linux /vmlinuz-VERSION root=UUID=UUID_КОРНЕВОГО_РАЗДЕЛА ro quiet nomodeset
initrd /initrd-VERSION.img
}
После редактирования:
chmod +x /etc/grub.d/40_custom
update-grub
Важно:
Не меняйте автоматически сгенерированные пункты в /boot/grub/grub.cfg. Лучше создайте свой пункт в 40_custom.
12. UEFI и BIOS: что важно знать
Проверить, какой режим используется:
ls /sys/firmware/efi
Если каталог существует:
ls /sys/firmware/efi
вы видите содержимое — значит система загружена в режиме UEFI.
Если каталога нет:
ls /sys/firmware/efi
сообщает об ошибке — скорее всего, используется BIOS/Legacy.
12.1. Где лежит конфигурация при UEFI
В ALT основные настройки и сгенерированный grub.cfg обычно находятся в /boot/grub/, даже при UEFI.
На EFI-разделе может быть небольшой файл вроде:
/boot/efi/EFI/alt/grub.cfg
Он часто только указывает основному загрузчику, где искать настоящую конфигурацию.
12.2. Если GRUB не появляется
Не спешите переустанавливать GRUB, если проблема только в параметрах ядра.
Сначала попробуйте:
- Включить меню GRUB через
EscилиShift. - Выбрать старое ядро.
- Отредактировать пункт клавишей
e. - Удалить проблемный параметр.
- Загрузиться.
- Исправить
/etc/default/grub. - Выполнить
update-grub.
Если же сам загрузчик повреждён, может понадобиться переустановка GRUB, но это уже отдельная операция.
13. Что делать, если после изменения параметров система не грузится
13.1. Если видно меню GRUB
- Выберите старый рабочий пункт ядра.
- Нажмите
e. - Уберите или замените подозрительный параметр.
- Загрузитесь.
- Отредактируйте
/etc/default/grub. 6. Выполните:
update-grub
13.2. Если меню GRUB не видно
Попробуйте:
- удерживать
Shiftсразу после BIOS; - часто нажимать
Esc; - нажать
Escпри появлении логотипа.
Если меню всё равно не появляется, может потребоваться загрузка с установочного или спасательного носителя.
13.3. Восстановление через LiveCD/установочный носитель
Общий смысл:
- Загрузиться с внешнего носителя.
- Смонтировать корневой раздел установленного ALT.
- При необходимости смонтировать
/bootи/boot/efi. - Войти в окружение установленной системы через
chroot. - Исправить
/etc/default/grub. - Выполнить
update-grub.
Упрощённая схема для обычного раздела:
mount /dev/sdXn /mnt
Если /boot отдельный:
mount /dev/sdYn /mnt/boot
Если UEFI:
mount /dev/sdZn /mnt/boot/efi
Затем:
for d in /dev /dev/pts /proc /sys /run; do
mount --bind "$d" "/mnt$d"
done
chroot /mnt
update-grub
exit
Если используется LUKS:
cryptsetup open /dev/sdXn cryptroot
Если используется LVM:
vgchange -ay
И монтировать уже /dev/mapper/....
14. Типичные ошибки
14.1. Редактирование /boot/grub/grub.cfg вручную
Этот файл будет перезаписан.
Правильно:
/etc/default/grub
затем:
update-grub
14.2. Дублирование root=
Если вы добавите второй root=, может возникнуть путаница.
Проверьте:
grep 'linux' /boot/grub/grub.cfg
В строке ядра обычно должен быть один основной root=....
14.3. Удаление параметров шифрования или LVM
Если у вас шифрованный раздел или LVM, не удаляйте параметры вида:
rd.luks.*
rd.lvm.*
cryptdevice=...
пока не понимаете, как они работают в вашей конфигурации.
14.4. Постоянное использование init=/bin/sh
Это аварийный параметр. Не делайте его постоянным.
14.5. Использование acpi=off как постоянного решения
Это может помочь при диагностике, но на современном железе лучше искать конкретную причину проблемы.
15. Полезные команды диагностики
Текущие параметры загрузки:
cat /proc/cmdline
Файл настроек:
cat /etc/default/grub
Сгенерированный конфиг:
cat /boot/grub/grub.cfg
Строки ядра в конфиге:
grep 'linux' /boot/grub/grub.cfg
Пункты меню:
grep 'menuentry' /boot/grub/grub.cfg
Список ядер:
ls /boot | grep vmlinuz
Список initrd:
ls /boot | grep initrd
Корневая файловая система:
findmnt /
UUID разделов:
blkid
Структура дисков:
lsblk -f
Режим загрузки:
ls /sys/firmware/efi
Ошибки текущей загрузки:
journalctl -b -p err
Сообщения ядра:
dmesg | less
16. Рекомендуемый безопасный порядок действий
Если вы меняете параметры загрузки:
1. Сделайте резервную копию:
cp -a /etc/default/grub /etc/default/grub.bak
2. Посмотрите текущие параметры:
cat /proc/cmdline
- Сначала проверьте параметр временно через
eв GRUB. - Если всё работает, добавьте параметр в
/etc/default/grub.
5. Обновите конфигурацию:
update-grub
6. Проверьте результат:
grep 'linux' /boot/grub/grub.cfg
- Перезагрузитесь.
8. После загрузки проверьте:
cat /proc/cmdline
17. Минимальная шпаргалка
Временно проверить параметр:
GRUB -> e -> отредактировать строку linux -> Ctrl+X
Постоянно добавить параметр:
mcedit /etc/default/grub
Изменить, например:
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash nomodeset"
Сохранить и выполнить:
update-grub
Проверить:
cat /proc/cmdline
Вернуть старое:
cp -a /etc/default/grub.bak /etc/default/grub
update-grub
18. Практический пример полного изменения
Допустим, у вас было:
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
Вы хотите:
- убрать тихую загрузку;
- видеть сообщения;
- временно отключить KMS из-за чёрного экрана;
- добавить ожидание корневого диска.
Можно сделать так:
GRUB_CMDLINE_LINUX="rootdelay=5"
GRUB_CMDLINE_LINUX_DEFAULT="loglevel=7 nomodeset"
После этого:
update-grub
Проверка:
grep 'linux' /boot/grub/grub.cfg
После перезагрузки:
cat /proc/cmdline
Вы должны увидеть примерно:
... root=UUID=... ro rootdelay=5 loglevel=7 nomodeset
Мы делимся этой технической информацией, чтобы помочь вам в решении задач — используйте её с пониманием. Статья носит рекомендательный характер, поэтому, пожалуйста, применяйте описанные методы осмотрительно.