Grub падает, чтобы спасти, если внешний диск не доступен

Я установил Ubuntu 12.04 для использования на старой машине с Windows. Он установлен на внешнем жестком диске USB. Я установил grub на MBR внутреннего жесткого диска, поэтому, если я подключу внешний жесткий диск и включу компьютер, я сначала получу загрузчик Windows, который предлагает Windows и Ubuntu. Если я выбираю Windows, я загружаюсь в Windows, и если я выбираю Ubuntu, я получаю меню загрузки Ubuntu / grub (которое также предлагает Windows) и может загружаться в Ubuntu. Все отлично.

Если я запускаю компьютер с отключенным внешним жестким диском, он сразу же падает на grub rescue shell

error: no such device: df9058b0....
grub rescue>

Он даже не отображает загрузчик Windows, он идет прямо к спасению grub. Я пошел в настройку BIOS и отключил загрузку с внешнего HD, и это не имело никакого значения.

Это касается меня, потому что это означает, что мне нужно подключить внешний диск Ubuntu - (с этим конкретным UUID) - даже если я хочу загрузиться в Windows.

Можно ли настроить grub таким образом, чтобы он перешел в режим спасения, только если я попытаюсь загрузиться с него через меню grub?

1 ответ

К сожалению, вы поместили grub (legacy) на неправильный диск (MBR), теперь ему нужны его файлы на внешнем диске, чтобы даже показать меню.

  1. Хотя вы можете запустить Ubuntu, введите grub на свой внешний диск (sdb?) И убедитесь, что вы можете успешно с него загрузиться, а также с загрузкой Windows.

ОК, загрузка не удалась. На внешнем диске используется раздел MSDOS? Если это GPT, вам нужно будет добавить небольшой (1-2M) раздел (без форматирования) с флагом grub-bios. Затем переустановите grub и попробуйте снова.
ОК, это MSDOS.


Логический раздел, флаг загрузки, не имеет значения для Ubuntu. Это жуткая подсказка, которую вы видите? Множество ответов, таких как Ошибка загрузки> такого устройства нет: grub rescue, но ваш случай проще - вы можете загрузить grub с sda и запустить Ubuntu на sdb. Оттуда вы сможете просто установить grub в sdb. Просто чтобы проверить, вы не работаете в режиме UEFI, не так ли? Возможно, более поздний выпуск, такой как 16.04, будет лучше, и вернитесь к lubuntu, если полная версия Ubuntu - это слишком много для вашей машины.


  1. Затем вам нужно будет восстановить старую загрузочную MBR Windows на ваш внутренний диск, чтобы она загружалась только Windows.
  2. В BIOS выберите сначала загрузку внешнего диска в загрузчике, а затем вставьте внутренний диск (или оба после CDROM, если хотите).

Загрузка должна предлагать grub, когда USB-диск присутствует, а когда нет, внутренний диск должен загружать Windows.

Другие вопросы по тегам