1

У меня была двойная загрузка windows и Ubuntu. Когда я переустанавливал windows, он больше не попадал в меню grub.

Его показ:

error: no such partition.
grub rescue>

Я хочу исправить это, не используя live cd или usb-флешку, поэтому просто используя команды grub rescue.

обновление:

Нашел эту полезную ссылку http://techgage.com/news/repairing_a_broken_grub_2_boot-loader_on_ubuntu/ С инструкциями (и пояснениями), что делать:

grub> ls
(hd0) (hd0,5) (hd0,1) (fd0)
grub> set prefix=(hd0,1)/boot/grub
grub> set root=(hd0,1)
grub> set
?=0
color_highlight=
color_normal=
pager=
prefix=(gd0,1)/boot/grub
root=hd0,1
grub> ls /boot
grub/ System.map-2.6.32-21-generic abi-2.6.32-21-generic config-2.6.32-21-generic memtest86*.bin vmcoreinfo-2.6.32-21-generic vmlinuz-2.6.32-21-generic System.map-2.6.32-22-generic initrd.img-2.6.32-21-generic config-2.6.32-22-generic abi-2.6.32-22-generic vmcoreinfo-2.6.32-22-generic initrd.img-2.6.32-22-generic vmlinuz-2.6.32-22-generic
grub> insmod /boot/grub/linux.mod
grub> linux /vmlinuz root=/dev/sda1 defaults
grub> initrd /initrd.img
grub> boot_

Но все пошло так:

error: no such partition.
grub rescue> help
Unknown command 'help'
grub rescue> ls /boot
error: no such partition.
grub rescue> ls
(hd0) (hd0,msdos3) (hd0,msdos2) (hd0,msdos1)
grub rescue> set prefix=(hd0,msdos1)/boot/grub
grub rescue> set root=(hd0,msdos1)
grub rescue> set
prefix=(hd0,msdos1)/boot/grub
root=hd0,msdos1
grub rescue> ls /boot
error: unknown filesystem.
grub rescue> boot
Unknown command 'boot'

: так что вы можете видеть, что ls/boot показала ошибку: неизвестная файловая система.

1 ответ1

2

Как и в комментариях, получается, что этот блог идеален! http://techgage.com/news/repairing_a_broken_grub_2_boot-loader_on_ubuntu/ Проблема, с которой я столкнулся, заключается в том, что я смотрел на приказ, который давал ls ... который:

(hd0) (hd0,msdos3) (hd0,msdos2) (hd0,msdos1)

который я ошибочно считал сопоставленным с порядком:

[empty space from deleted recovery partition, windows 7, swap, Ubuntu]

Эта надоедливая команда grub rescue ls должна была сказать:

(hd0) (hd0,msdos1) (hd0,msdos2) (hd0,msdos3)

... Мораль этой истории - пробуй каждый раздел, пока он не заработает = p

error: no such partition.
grub rescue> ls /boot
error: no such partition.
grub rescue> ls
(hd0) (hd0,msdos3) (hd0,msdos2) (hd0,msdos1)

# This is a comment. The following is choosing the non linux partition by mistake... error unknown filesystem should alert you to the mischoice. Keep choosing until you get the right one!

grub rescue> set prefix=(hd0,msdos1)/boot/grub
grub rescue> set root=(hd0,msdos1)
grub rescue> set
prefix=(hd0,msdos1)/boot/grub
root=hd0,msdos1
grub rescue> ls /boot
error: unknown filesystem.

# Here I choose the correct partition - an ubuntu one. Note that the ls /boot doesn't give an error!

grub rescue> set prefix=(hd0,msdos3)/boot/grub
grub rescue> set root=(hd0,msdos3)
grub rescue> set
prefix=(hd0,msdos3)/boot/grub
root=hd0,msdos3
grub rescue> ls /boot
blah blah blah loads of stuff, I'm not going to type it all out... its similar to the junk about generic and abi from the blog thing.
grub rescue> insmod /boot/grub/linux.mod
grub rescue> linux /vmlinuz root=/dev/sda3 defaults
grub rescue> initrd /initrd.img
grub rescue> boot

#Booted! Its TERMINAL time! Open your linux terminal and plonk this in. Credit to http://techgage.com/news/repairing_a_broken_grub_2_boot-loader_on_ubuntu/

sudo update-grub
sudo grub-install /dev/sda

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