Вам потребуется Live CD, если вы собираетесь восстанавливать Ubuntu. Загрузите Ubuntu с диска, выбрав одноименный режим "Загрузка Ubuntu без установки на диск".
Запустите Терминал. Далее:
$sudo fdisk -l
Эта команда покажет вашу таблицу разделов. Здесь приведена моя таблица для лучшего понимания:
/dev/sda1 * 1 19457 156288321 7 HPFS/NTFS
/dev/sdb1 29 8369 66999082+ 83 Linux
/dev/sdb2 * 8370 13995 45190845 7 HPFS/NTFS
/dev/sdb3 13996 14593 4803435 5 Extended
Как видно из списка, на sda1 у меня находится Windows (Логический диск С), а на sdb1 - Linux.
Теперь я примонтирую Linux-раздел (здесь sdb1), у меня нет отдельного /boot-раздела, как вы можете сами видеть(ЕСЛИ У ВАС ЕСТЬ не забудьте примонтировать его!)
$sudo mount /dev/sdb1 /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
(Я сразу вводил эту команду, пропустив предыдущую)
Ещё можно применить команду
#update-grub2
для того чтобы grub-pc просканировал разделы на загрузочные записи и на сами загрузчики.
Теперь вы можете выйти из chroota, отмонтировать разделы и перезагрузить ваш компьютер:
#exit
$sudo umount /mnt/dev
$sudo umount /mnt/proc
$sudo umount /mnt
$sudo reboot
Но это ещё не всё. После перезагрузки вам откроется стандартное окошко GRUB со списком операционных систем, но в этом списке не будет Windows, по крайней мере так было в моём случае.
Если у вас получилось тоже самое, делаем следующее:
Загружаем Ubuntu и запускаем терминал.
В нём пишем:
# sudo nano /etc/grub.d/11_Windows
Эта команда создаст файл с именем 11_Windows в папке /etc/grub.d/ и вызовет текстовый редактор для редактирования этого файла.
Напишите в этом файле следующее (Если у вас Windows находится на sda1):
#! /bin/sh -e
echo “Adding Windows” >&2
cat << EOF
menuentry “Windows 7″ {
set root=(hd0,1)
chainloader +1
}
EOF
Теперь сохраните изменения.
Тут, кстати, есть интересный нюанс:
Ранние версии GRUB использовали несколько иную нумерацию разделов. Тоесть если у вас винда была установлена на первый раздел первого диска, надо было указывать root=(hd0,0). Начиная с GRUB 2, первый раздел обозначается как root=(hd0,1), тоесть теперь /dev/sda1 выглядит как root=(hd0,1)
Теперь выполняем команду
# sudo chmod a+x /etc/grub.d/11_Windows
Далее - обновляем ГРАБ:
# sudo update-grub
(или лучше -
#sudo update-grub2
)
Вы должны увидеть нечто похожее на это:
# sudo update-grub2
Generating grub.cfg …
Found linux image: /boot/vmlinuz-2.6.30-9-generic
Found initrd image: /boot/initrd.img-2.6.30-9-generic
Found linux image: /boot/vmlinuz-2.6.30-8-generic
Found initrd image: /boot/initrd.img-2.6.30-8-generic
Adding Windows
Found memtest86+ image: /boot/memtest86+.bin
done
Теперь закройте все лишние приложения (если вы умудрились их открыть) и введите в терминале
# sudo reboot
После перезагрузки вы должны увидеть в списке операционных систем ещё и Windows 7. Если не увидели, то либо вы что-то сделали не так, либо я накосячил при написании статьи.
Нагло (с)пёрто.
Другие способы восстановления GRUB2 смотреть тут.
Отправить комментарий