среда, 28 октября 2009 г.

Восстановление grub2 после установки Windows

Целый вечер сегодня потратил на поиски руководства по восстановлению второго граба, и вот нашел в буржуйском блоге. Сделал перевод, может кому то и поможет.


«Сегодня я уничтожил grub2 при установке Windows на мой ноутбук, с которого я пишу в блоге. (Я бросил курить, так что я должен играть в некоторые игры:) Не спешите). Сложно восстановить его, поскольку существует не так много (я не не нашел ни одного) руководств в интернете о восстановлении Grub2.

Здесь находится пошаговое руководство для его восстановления:


Вам потребуется Live CD, если вы собираетесь восстанавливать Ubuntu. Загрузите Ubuntu, какую хотите, Jaunty или Karmic. Запустите систему с Live CD (я предполагаю что вы будете использовать Ubuntu Live CD). Нажмите Alt + F2 и введите комманду gnome-terminal. Далее:

$sudo fdisk -l


Эта команда покажет вашу таблицу разделов. Здесь приведена моя таблица для лучшего понимания:


/dev/sda1 29 8369 66999082+ 83 Linux
/dev/sda2 * 8370 13995 45190845 7 HPFS/NTFS
/dev/sda3 13996 14593 4803435 5 Extended
/dev/sda5 13996 14593 4803403+ 82 Linux swap / Solaris


Теперь я примонтирую Linux-раздел (здесь sda1), у меня нет отдельного /boot-раздела, как вы можете сами видеть(ЕСЛИ У ВАС ЕСТЬ не забудьте примонтировать его!)


$sudo mount /dev/sda1 /mnt
$sudo mount --bind /dev /mnt/dev
$sudo mount --bind /proc /mnt/proc


Следующая команда необязательна(она копирует resolv.conf):


$sudo cp /etc/resolv.conf /mnt/etc/resolv.conf


Теперь перейдем в окружающую среду chroot:


sudo chroot /mnt


После перехода вам не придется использовать sudo, т.к.теперь вы будете запускать команды от имени суперпользователя.


Вы можете при желании отредактировать файл /etc/default/grub в соответствии с вашей системой(опции задержки и т.д.)


#nano -w /etc/default/grub


Поиграйтесь с этими настройками если захотите.(Но не забудьте отдать команду grub-update если захотите сохранить их;) )


Теперь установка/восстановление grub2 через команду


#grub-install /dev/sda


Вы могли получить сообщение об ошибке, как это было у меня. Если получили, то используйте команду:


#grub-install --recheck /dev/sda


Теперь вы можете выйти из chroota, отмонтировать разделы и перезагрузить ваш компьютер:



#exit
$sudo umount /mnt/dev
$sudo umount /mnt/proc
$sudo umount /mnt
$sudo reboot

»


Перевод с http://www.ubuntu-inside.me/2009/06/howto-recover-grub2-after-windows.html

23 комментария:

pav комментирует...

Очень понятно и просто... именно это я и искал спасибо!

Unknown комментирует...

Спасибо большое

locke314 комментирует...

Стойкое впечатление, что перевод делал робот. Это во-первых.
А во-вторых, если вы загружаетесь с live-CD (будь то убунту, федора, суся или мандрива, не к ночи будь помянута), то все эти страшные и многочисленные команды не нужны. Кроме последней.
Ну и не отличается она ничем от таковой же для GRUB 0.x Только редактировать теперь надо /etc/default/grub, а не /boot/grub/menu.lst
Вывод -- такая инструкция если и нужна, то состоять должна из пяти строк, а не пятидесяти.

AleksMo комментирует...

Все красиво написано, но все равно АЙ НИД ХЕЛП!
Описание: на системе 3 жестких. На одном из них стоит и винда и убунту 9.10. Когда все диски подсоединены, то системный определяется как sdc. Для упрощения переустановки grub2 отсоединил остальные 2 винта, оставил системный. и вот..

ubuntu@ubuntu:~$ sudo fdisk -l

Disk /dev/sda: 40.0 GB, 40018599936 bytes
255 heads, 63 sectors/track, 4865 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0xca755f35

Device Boot Start End Blocks Id System
/dev/sda1 * 1 2550 20482843+ 7 HPFS/NTFS
/dev/sda2 2551 4865 18595237+ f W95 Ext'd (LBA)
/dev/sda5 2551 2616 530113+ 82 Linux swap / Solaris
/dev/sda6 2617 3615 8024436 83 Linux
/dev/sda7 3616 4806 9566676 83 Linux
/dev/sda8 4807 4865 473886 82 Linux swap / Solaris
ubuntu@ubuntu:~$ sudo mount /dev/sda7 /mnt
ubuntu@ubuntu:~$ sudo mount --bind /dev /mnt/dev
ubuntu@ubuntu:~$ sudo mount --bind /proc /mnt/proc
ubuntu@ubuntu:~$ sudo cp /etc/resolv.conf /mnt/etc/resolv.conf
ubuntu@ubuntu:~$ sudo chroot /mnt
root@ubuntu:/# grub-install /dev/sda
/dev/sdc7: Not found or not a block device.
root@ubuntu:/# grub-install --recheck /dev/sda
Probing devices to guess BIOS drives. This may take a long time.
/dev/sdc7: Not found or not a block device.

Горю! Укажите на неисправность, пожалуйста!

AleksMo комментирует...

Подкючил опять все диски, на этот раз установка прошла, теперь error 22 при запуске. Буду копаться:)

krupnim planom комментирует...

Такая же проблема, после установки Win XP на отдельный раздел диска, на соседнем - висит Ubuntu 9.10 На сколько я понял, Ubuntu не выпскает уже Live CD (на 9.10 я не нашел, а на сайте пишут мол, что обычный установочный CD - полностью заменяет LiveCD). Вставляю диск с 9.10 alpha 2 - при загрузке в меню вариантов НЕ НАШЕЛ обычной загрузки без установки на винт. Из реальных Live CD нашел только Ubuntu 8.04, загрузился, определил, что Linux у меня на sda1, дошел до команды

sudo mount /dev/sda1 /mnt

а мен в ответ пишет

mount: неизвестный тип файловой системы 'ext4'

типа Ubuntu 8.04 не понимает мой винт с ext4 - вешалка. Качаю образ CD - 9.10 (не Альфа) c сайта, если там при загрузке не будет "загрузки без установки на винт" - разочаруюсь. Ubuntu - красивый и простой, но пока дело не доходит до слов типа отредактировать файл /etc/default/grub - я там ничего не понимаю что куда.

krupnim planom комментирует...

Загрузился с официального обычного Ubuntu 9.10 CD - все сделал как написано. В результате отвалился Windows. При загрузке, загрузчик дает 3 сек для "нажать ESC" Нажимаю - дает выбрать варианты из версий ядра убунту и CHECKLOADER. Выбираю CHECKLOADER - загрузчик пишет что не может ошибку 11 (вроде примонтировать не может диск, на котором Windows. Что делать?

AleksMo комментирует...

Забыл отписаться чем все кончилось. Выснилось, что у меня два раздела из трех были отформатированы как первичные. На работу винды это не влияло, а с грабом мне нервы попортило сильно. Отсюда и путаница типа sda/sdc. Формат несистемного раздела в логический и все по статье прокатило сразу. Рекомендую Владимиру лишний раз проверить.
Кстати, на образе 9.10, который я качал с оффтпшника LiveCD присутствует. С него я и писал выше.

karavan комментирует...
Этот комментарий был удален автором.
karavan комментирует...
Этот комментарий был удален автором.
Евгений С. Семенчук комментирует...

Привет. восстанавливал grub2 по твоему посту, хочу сказать спасибо, оч помогло. только перестала винда грузитсо :) помогло обновление grub-update тоесть на сомом деле update-grub2. Уще раз спасибо за пост

kAZ2242 комментирует...

попробовал вставить livecd от 9.04, теперь видит тока новый 9.04((. взял livecd 9.10, делал то же самое, что и с 9.04, 9.10 не появляется, помогите)

Артём комментирует...

Как то слишком свободно написана статья, как будто для своего "черновика" писал. Но всё равно спасибо, помогло. (Хотелось бы увидеть более менее лучшую статью)

Unknown комментирует...

Огромное спасибо. Все получилось.

basilcat комментирует...

У меня таже ситуация. После ubuntu поставил Win 7. Загружается Win7. Выполнил рекомендации с http://lifecity.com.ua/blog/view/608 . Всё сработало аж до последней команды: #sudo update-grub2 . Но вместо:
...
Found initrd image: /boot/initrd.img-2.6.30-8-generic
Adding Windows
Found memtest86+ image: /boot/memtest86+.bin
done

Пишет:
...
Found initrd image: /boot/initrd.img-2.6.30-8-generic
/etc/grub.d/11_Windows: 2: Syntax error: "&" unexpected

Я так понял, ошибка в файле, я его тупо скопировал:

#! /bin/sh -e
echo "Adding Windows" >&2
cat << EOF
menuentry "Windows 7? {
set root=(hd0,1)
chainloader +1
}
EOF

Подскажите где в нём ошибка, где лишний & !!!!????

Если не тяжко напишите на basil_cat@ukr.net

Спасибо.

basilcat комментирует...

Таки вот так правильнее:

#! /bin/sh -e
echo “Adding Windows” >&2
cat << EOF
menuentry “Windows 7″ {
set root=(hd0,1)
chainloader +1
}
EOF

basilcat комментирует...

Источники:
http://lifecity.com.ua/blog/view/608
а файлик /etc/grub.d/11_Windows правильнее в:
http://erickoo.wordpress.com/2009/06/14/how-to-add-vista-partition-to-grub-2-ubuntu-9-10-karmic-koala/

AleksMo комментирует...

basilcat вот тебе не спится-то...

Анонимный комментирует...

Спасибо. Сегодня попробую;)

BobuIn комментирует...

Боже, храни автора этого блога....
я всё востановил...
слава Исусу и Автору блога...)))
я в линуксе - значит я живу.. даже жена сказала , что винда стала чужой и непонятной..
СПАСИБО!!!!!

Mac комментирует...

У меня на моменте:
sudo chroot /mnt

выдает вот это:

chroot: cannot run command `/bin/bash': Ошибка формата выполняемого файла

Пишут, что битность системы не подходит. И как быть? Стояла Ubuntu 10.10 64-битная. А диск официальный, конечно, 32-х.

steffnomidi комментирует...

тоже, что у Mac.Нашел решение на английском, но там 2 спеца меж собой разбирались на форуме. Они что-то недоговаривают ))

Andreas комментирует...

После выполнения по инструкции перестала грузиться винда семерка, т.е. этот вариант подходит только тем, кому не нужно две системы на компе. Кому нужно две - ищите другие варианты, этот не подходит