В принципе, после того как я переустановил grub-legacy (grub1), то ожидается, что menu.lst на /boot/boot/grub/menu.lst вместо /boot/grub/menu.lst

Таким образом, когда я перезагружаю систему, она останавливается в командной консоли grub, и мне нужно вручную запустить configfile /grub/menu.lst для загрузки файла конфигурации.

Я временно ввел символическую ссылку /boot/boot/grub/menu.lst в /boot/grub/menu.lst , но я хочу знать, почему переустановка grub заставила его искать menu.lst в /boot/boot вместо /boot

Я могу вспомнить, что у меня есть отдельные разделы для /boot и / , хотя я не уверен, что это имеет значение.

Команды, которые я использовал для переустановки grub:

bash> grub
grub> root (hd1,0)
grub> setup (hd1)

где:

  • hd1,0 - это мой /boot
  • hd1,1 мой /

Перед переустановкой grub-legacy меня был установлен grub2 .

1 ответ1

2

Как вы и подозревали, причина в отдельном "загрузочном" разделе. Правильное место для menu.lst (например, где grub-legacy ожидает его найти) находится в папке /boot/grub в разделе "boot" : (hd1,0)/boot/grub. Когда вы монтируете свой "загрузочный" раздел в /boot папку RootFS, это будет выглядеть так : /boot/boot/grub/menu.lst.

Вместо того, чтобы связать /boot/boot/grub/menu.lst (правильное место) с /boot/grub/menu.lst (неправильное место), переместите всю папку /boot/grub в /boot/boot/grub. Таким образом, папка /boot/grub вашего "загрузочного" раздела будет в нужном месте. После этого вы можете использовать symlink /boot/boot/grub в /boot/grub для удобства.

Вкратце: grub-legacy ожидает найти папку /boot/grub с menu.lst в вашем "загрузочном" разделе. Который, в свою очередь, монтируется в папку /boot вашего раздела RootFS .

Надеюсь, мне удалось объяснить это достаточно четко.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .