Я использую Linux на нескольких системах и часть из них имеет более 1-2 дисков плюс часто подключаю внешние. При этом в связи с распространением UEFI в последние годы приходится переходить с любимого мною extlinux/syslinux на GRUB2 , и вот тут сразу выявилась серьёзная проблема. При загрузке с одного из дисков GRUB2 залезает на другой диск, где тоже стоит GRUB2 и загружает «чужой» файл конфигурации.
Проблема вызвана тем, что GRUB2 после загрузки core.img не ищет grub.cfg на диске, с которого загрузился, а начинает перебирать все диски в системе пока не найдёт файл конфигурации в соответствии с префиксом и грузит именно этот - первый попавшийся ему grub.cfg. На мой взгляд, логика исключительно нелепая и опасная. Не понимаю, почему это ещё не пофиксили. Неужели с такими проблемами сталкиваются лишь единицы?
Никакого принципиального решения в сети мне найти так и не удалось. Пришлось временно выбрать такой вариант: там, где ещё можно откатиться на MBR/BIOS/syslinux, а где невозможно - генерировать core.img через grub2-mkimage, указывая индивидуальный префикс для каждого диска (типа /hdd007/boot).
Так есть ли хоть какая-то возможность окончательно решить эту проблему или хотя бы посредством внедрённого в core.img файла конфигурации выяснить, с какого диска стартовал GRUB2 и установить root, например, как (тот-диск-с-которого-началась-загрузка,раздел-X)?
Почему вообще GRUB2 ведёт себя так странно? Почему он автоматически не ищет файл конфигурации начиная с диска, с которого и загрузился, как syslinux? Это было бы невероятно удобно!