Постоянное исправление абсолютного местоположения папки GRUB

Постоянное исправление абсолютного местоположения папки GRUB

Недавно я столкнулся с довольно распространенной проблемой, когда установщик 16.04 неправильно настраивает расположение папки GRUB. В таких случаях система загружается в спасательную оболочку со следующими сообщениями:

error: file '/grub/i386-pc/normal.mod' not found.
Entering rescue mode...
grub rescue>

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

grub rescue> set prefix=(hd1,msdos2)/boot/grub
grub rescue> insmod normal
grub rescue> normal

Это успешно возобновляет процесс загрузки. Однако при следующей загрузке системы GRUB снова возвращается к спасательной консоли, и его нужно снова проинструктировать о местоположении его модулей. Я переустановил GRUB, но это не решило проблему.

Как можно постоянно получать инструкции GRUB о правильном расположении его модулей?

Обновлять: Я последовал запредложение WinEunuuchs2Unixи попробовалРемонт багажникаинструмент. Сначала я проверил местоположение GRUB, и оно, по-видимому, верное: /boot/grubна sdg2.

Затем я провел диагностику рекомендуемого ремонта, которая выдалаэтот вывод. Здесь снова указано правильное расположение GRUB:

sdg2: __________________________________________________________________________

    File system:       ext4
    Boot sector type:  -
    Boot sector info: 
    Operating System:  Ubuntu 16.04.3 LTS
    Boot files:        /boot/grub/grub.cfg /etc/fstab 
                       /boot/grub/i386-pc/core.img

Однако в самом конце отчета есть ошибка, указывающая на проблему с device.map:

grub-probe: error: cannot find a GRUB drive for /dev/sdi1.  Check your device.map.
Unhide GRUB boot menu in sdg2/boot/grub/grub.cfg

An error occurred during the repair.

Есть ли какие-нибудь предложения по этому поводу?

решение1

Ключом к пониманию того, что было не так, была необходимость указать GRUB путь к hd1.BIOS по умолчанию загружается вhd0, и на этой рабочей станции были остатки MBR, которая пыталась загрузить GRUB, установленный на этом диске (отсюда и ссылка на /grubвместо /boot/grub).

Решением этой проблемы было изменение порядка загрузки внутренних дисков в BIOS. С hd1первым местом процесс загрузки завершается успешно без вмешательства человека. В некоторых BIOS может быть невозможно изменить порядок загрузки внутренних дисков; в таких случаях диски должны быть переподключены к плате.

Связанный контент