Как сделать так, чтобы GRUB установил корневое устройство как загруженное EFI-устройство?

Вопрос или проблема

Проблема XY: У меня есть несколько Live OS Debian (созданных с помощью live-build) на нескольких дисках в системе, но какой бы диск я ни загружал, он просто загружает squashFS с первого диска.

Кажется, параметр boot=live ищет файлы в директории /live (которая содержит filesystem.squashfs), однако, похоже, что GRUB просто получает эту папку с корневого устройства (которое, по-видимому, статично в зависимости от того, как BIOS видит диски) и не с устройства, с которого выбрано загрузка*.

Существует ли способ заставить GRUB установить корневое устройство как диск, с которого был загружен EFI? Или есть другой масштабируемый / неблокированный способ загрузить желаемый squashFS?

*Это также немного странно, потому что когда live OS ‘записывается’ на диск, в EFI нет опции загрузки с диска, но он все равно загрузочный 🤔

Ответ или решение

Как настроить GRUB для установки корневого устройства как устройства EFI

В современном многофункциональном окружении компьютерных систем, использование нескольких операционных систем на разных дисках может стать сложной задачей, особенно когда дело касается загрузки live-образов. Ваша проблема с Debian Live OS заключается в том, что GRUB загружает squashFS с первого диска, игнорируя выбранный для загрузки. Мы обсудим решения этой проблемы и способы настройки GRUB таким образом, чтобы он автоматически устанавливал корневое устройство как устройство, к которому был осуществлён EFI-загрузка.

Понимание проблемы

Когда вы загружаете live-образ с определённого диска, возможно, вы ожидаете, что система будет искать необходимые файлы (включая filesystem.squashfs) именно на этом диске. Однако, GRUB может не учитыватьативное определение этого устройства и вместо этого полагается на статически установленное корневое устройство, что приводит к неудаче загрузки live-образа.

Настройка GRUB

  1. Обновление конфигурации GRUB:
    Убедитесь, что ваша конфигурация GRUB обновлена. Используйте команду:

    sudo update-grub

    Это обеспечит обнаружение всех доступных операционных систем и корректное создание необходимых конфигурационных записей.

  2. Применение правильных параметров загрузки:
    Чтобы GRUB загружал live-образ с корректного диска, необходимо установить правильные параметры загрузки. В файле конфигурации GRUB (/etc/default/grub), добавьте следующий параметр:

    GRUB_CMDLINE_LINUX="boot=live root=live:LABEL=<label_вашего_диска>"

    Замените <label_вашего_диска> на метку вашего live-образа. Это укажет системой на правильное место для поиска файлов.

  3. Использование EFI-загрузчика:
    Если система использует UEFI, вы можете добавить вход в GRUB, который указывает на конкретный EFI-диск. Откройте файл /boot/grub/grub.cfg и добавьте следующие строки в секцию меню:

    menuentry "Debian Live" {
       set root=(hdX,gptY)
       linux /live/vmlinuz boot=live
       initrd /live/initrd.img
    }

    Замените hdX,gptY на соответствующие номер и раздел вашего диска.

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

    set rootdevice=`blkid -o value -s UUID $(efibootmgr | grep 'BootOrder' | awk '{print $2}' | xargs -I {} lsblk -n -o NAME /dev/disk/by-uuid/{})`

    Этот код позволит GRUB автоматически определять корневое устройство, с которого осуществляется загрузка.

Дополнительные рекомендации

  • Эффективное использование инструментов: Рассмотрите возможность использования grub-customizer для более простого редактирования и настройки путей загрузки вашего GRUB.
  • Проверка путей загрузки: Убедитесь, что все пути к файлам vmlinuz и initrd.img указаны корректно, так как их неправильное указание станет причиной ошибок загрузки.
  • Создание резервной копии: Перед внесением любых изменений в конфигурацию GRUB обязательно создайте резервную копию текущих настроек, чтобы иметь возможность восстанавливать систему в случае возникновения непредвиденных ошибок.

Заключение

Настройка GRUB для правильной работы с несколькими Debian Live OS на разных дисках требует внимательного подхода к конфигурации и параметрам загрузки. Следуя приведённым рекомендациям, вы сможете создать универсальное решение, которое будет автоматически определять корневое устройство во время загрузки. Надеемся, что это руководство поможет вам эффективно справиться с проблемой и улучшить вашу систему многозагрузки.

Оцените материал
Добавить комментарий

Капча загружается...