[Решение] Загрузчик Grub2 в Ubuntu 9.10 - восстанавливаем после переустановки Windows.

Изображение пользователя trubadur4ik.

Вам потребуется 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 смотреть тут.

Отправить комментарий

CAPTCHA на основе изображений
Введите цифры