Вопрос или проблема
У меня есть компьютер с двумя операционными системами: Windows 7 и Ubuntu. Я обновился с 12.04 до 12.10, а затем до 13.04, и с тех пор не могу загрузиться, потому что компьютер переходит в режим grub rescue с ошибкой “Файл не найден”.
Я попробовал следующие шаги:
set prefix=(hd0,msdos5)/usr/lib/grub/i386-pc
set root=(hd0,msdos5)
insmod linux
Я получаю ошибку:
символ не найден: 'grub_realidt'.
Если я выполню insmod normal, я получаю ошибку
символ не найден: 'grub_disk_dev_list'
У меня есть два раздела, содержащие файловую систему linux: (hd0,msdos5) и (hd0,msdos6). Они были точками монтирования для / и /boot соответственно.
Я искал эту ошибку и нашел несколько “решенных” тем. Но все они используют Live USB для доступа к командной строке grub. У меня нет доступа к такому, и я надеялся решить проблему без флешки.
Пожалуйста, помогите…
Заранее спасибо.
Согласно подготовке к устранению неполадок, это должно быть возможно исправить с помощью командной строки. Но команды, которые я нашел, немного отличаются от тех, которые вы указали в вопросе. Так что…
-
Выполните
ls (hd0,msdos5)/ ls (hd0,msdos6)/
-
Если вы видите
grub
, тогда выполнитеset prefix="(hd0,msdos5)/grub"
, где 5 нужно заменить на правильный номер. -
Если вы видите
boot
, тогда выполнитеset prefix="(hd0,msdos5)/boot/grub" set root="(hd0,msdos5)"
где 5 нужно заменить на правильный номер.
-
После изменения префикса вам нужно выполнить
insmod normal normal
и перезагрузиться.
Ответ или решение
Ошибка "symbol not found: grub_realidt" в GRUB обычно указывает на проблему с установкой GRUB или на повреждение файловой системы. Давайте попробуем решить вашу проблему с помощью команд GRUB Rescue. Поскольку у вас нет доступа к Live USB, мы будем использовать только встроенные команды.
Шаги для устранения проблемы:
-
Проверьте доступные разделы:
Выполните следующие команды, чтобы увидеть, какие файлы имеются в ваших разделах:ls (hd0,msdos5)/ ls (hd0,msdos6)/
Это поможет вам определить, содержат ли ваши разделы нужные файлы.
-
Установите правильный префикс:
Если вы видите каталогgrub
, выполните:set prefix=(hd0,msdos5)/grub set root=(hd0,msdos5)
Если в разделе, где установлена ваша система (например, в
(hd0,msdos5)
), есть каталогboot
, выполните:set prefix=(hd0,msdos5)/boot/grub set root=(hd0,msdos5)
-
Загрузите GRUB:
После того как вы установили префикс, выполните:insmod normal normal
Это должно загрузить стандартный интерфейс GRUB и, если всё пройдет успешно, вы сможете выбрать вашу систему для загрузки.
-
Перезагрузите систему:
После успешной загрузки через меню GRUB, выполните командуreboot
, чтобы перезагрузить систему.
Если возникли ошибки при выполнении команд:
Если вы продолжаете получать ошибки, такие как "symbol not found", это может указывать на более серьезные проблемы с установкой GRUB или повреждение файловой системы. В таком случае вам нужно будет:
- Попробовать переустановить GRUB из жёсткого диска, если получится.
- Рассмотреть возможность получения доступа к Live USB или другому загрузочному носителю для выполнения более глубоких операций восстановления.
Примечание:
Поскольку у вас нет Live USB, настоятельно рекомендую его получить. Это значительно упростит процедуру восстановления и устранения ошибок. Вы можете создать Live USB на другом компьютере или воспользоваться другим загрузочным носителем для доступа к инструментам исправления GRUB.
Надеюсь, эти шаги помогут вам найти и решить проблему с загрузкой. Если у вас возникнут дополнительные вопросы, пожалуйста, не стесняйтесь задавать их.