Я нахожусь в середине подобной проблемы (между прочим также на арке)
Grub не может найти этот файл и запустить, потому что он использует неправильный «префикс»
Вот что ты делаешь. Вы загружаетесь в режим grub rescue, затем просто выясняете, как заставить его загрузиться.
Сначала вы запустите set, в нем будут перечислены переменные, например, моя
cmdpath=(hd0)
prefix=(hd1,msdos3)/boot/grub
root=hd1,msdos3
Теперь префикс - это переменная, в которой grub ищет файл normal.mod. В моем случае hd1, msdos3 такой же, как / dev / sdb3 (аналогично, hd0, msdos1 будет / dev / sda1), что вы можете сделать, чтобы увидеть список допустимых разделов, типа ls
Теперь, в моем случае, снова, grub был установлен в / dev / sdb1, который был смонтирован как / boot в моем разделе arch, поэтому правильный префикс будет (hd1, msdos1) / grub
Поэтому для загрузки мне нужно сделать следующее:
set prefix=(hd1,msdos1)/grub
insmod normal
normal
В вашем случае вам придется либо вспомнить, либо угадать, на какой раздел вы установили grub. Вы можете угадать неправильно, это не принесет никакого вреда, команда insmod просто потерпит неудачу, и вы можете повторить попытку с другим разделом.
После этого grub загружается как обычно, и я могу выбрать из списка, что я хочу загрузить. Обычно, когда происходит такой беспорядок, переустановка grub на ваш mbr (с помощью grub-install ) должна исправить это навсегда, чтобы вам не приходилось делать это каждый раз при загрузке. Однако мне очень трудно понять, что делать, если исправить это не так просто (или я поделюсь с вами тем, что вы должны сделать).
Только если это не удается (например, если префикс правильный, но вы все еще не можете загрузиться), вы должны прибегнуть к использованию живых или спасательных компакт-дисков, чтобы обойти проблему (лучше всего этого избежать)
grub-install
. Вам не нужно повторять какие-либо шаги, просто используйте их в качестве руководства для получения привязки с liveCD.