Ubuntu‎ > ‎

Восстановление GRUB2 с LiveCD


СПОСОБ 1

Для начала нам нужно будет узнать, на каком диске и на каком разделе установлена Ubuntu. если вы не помните этого - воспользуйтесь командой
sudo fdisk -l

Для работы нам понадобится /-раздел (root). примонтируйте его командой
sudo mount /dev/sda5 /mnt
sudo mount /dev/sda3 /mnt/boot

Также монтируем папку /dev нашей live-системы как /dev нашего root-раздела:
sudo mount --bind /dev /mnt/dev

и папку /proc как /proc root-раздела:
sudo mount --bind /proc /mnt/proc

Теперь выполняем следующую команду:
sudo chroot /mnt /bin/bash

Теперь вы - root-пользователь в системе, корневым разделом которой считается /mnt, то есть корневой раздел вашей настоящей системы. и вот мы готовы обновить MBR-раздел жесткого диска, переустановив grub2. но для начала нам нужно определиться, с какого физического диска загружается наш компьютер. если у вас один жесткий диск, разбитый на разделы - он будет именоваться sda. если несколько - первый из них - sda, второй - sdb, и так далее. если вы не знаете, какой жесткий диск установлен в качестве загрузочного, посмотрите соответствующую опцию в BIOS. обычно жесткий диск указан по модели (например, так: ST9160310AS). чтобы узнать, какому диску в системе соответствует данная модель, выполните такую команду:
for d in /dev/sd[a-z] ; do echo "$d: $(sudo hdparm -I $d | grep -i 'model')" ; done

Кроме того, в Ubuntu 9.10 можно воспользоваться утилитой palimpsest ("система - администрирование - дисковая утилита").
определившись с загрузочным диском (в нашем примере - sda), ставим на него grub2:
grub-install /dev/sda

Если вы столкнетесь с какими-либо ошибками - попробуйте перезапустить команду с ключом --recheck:
grub-install --recheck /dev/sda

Обратите внимание: мы устанавливаем grub2 на физический диск (sda, sdb...), а не на раздел (sda3, sdb1...)!

Если все прошло успешно, выходим из chroot командой
exit

Отмонтируем наши диски и папки:
/dev нашей live-системы:
sudo umount /mnt/dev

/proc live-системы:
sudo umount /mnt/proc

boot-раздел, если таковой монтировался отдельно:
sudo umount /mnt/boot
и собственно, корневой раздел:
sudo umount /mnt

Все! Перезагружаемся, восстанавливаем порядок загрузки в BIOS (ставим жесткий диск на первое место) и смотрим результат.


СПОСОБ 2 (без chroot)

Нам опять же понадобится LiveCD Ubuntu 9.10 или другой системы с поддержкой grub2. В отличие от предыдущего способа, мы не будем запускать установщик через chroot, что позволит сократить количество требуемых действий. Итак, загружаемся с выбранного LiveCD, запускаем консоль. Вместо использования chroot мы воспользуемся ключом "--root-directory". Но для начала убедимся, что данная опция поддерживается нашей live-системой. Если вы работаете с Ubuntu 9.10 Desktop, можно не волноваться. В ином случае выполните

man grub-install

Если в описании опций присутствует вышеупомянутый ключ "--root-directory" - все в порядке. Теперь нам нужно примонтировать корневой раздел системы. Если вы не помните, на каком разделе стоит система, вам поможет
sudo fdisk -l

или же можно глянуть
sudo blkid

Разница лишь в форме вывода информации. Определившись с корневым разделом, монтируем его. Пусть в нашем примере это будет sda5:
sudo mount /dev/sda5 /mnt

Если у вас выделен отдельный boot-раздел, примонтируйте и его. Допустим это sda2
sudo mount /dev/sda2 /mnt/boot

Теперь переходим собственно к установке grub2. Ключ "--root-directory" позволяет указать, что использовать в качестве корневой директории. Нам нужен корневой раздел нашей системы, который примонтирован в /mnt. Поэтому выполняем:
sudo grub-install --root-directory=/mnt /dev/sda

Как и в предыдущем способе, grub2 устанавливается на физический диск, а не на раздел! В качестве диска нужно указать тот диск, который установлен загрузочным в bios. Если все пройдет успешно, установщик выведет сообщение об успешном завершении и список обнаруженных разделов, которые были добавлены в "device.map". Если все это есть - отмонтируем диски и перезагружаемся. Если будет выведен неполный список разделов - отредактируйте файл "device.map" в корневой папке установленной системы (в описанном примере - "/mnt/boot/grub/device.map") поправляем его, добавив остальные диски и скорректировав нумерацию. Файл должен иметь вид
(hd0) /dev/sda (hd1) /dev/sdb

При необходимости повторяем операции для всех жестких дисков. Сохраняем файл и повторно выполняем команду
grub-install
как описано выше. Теперь должен отобразиться правильный список дисков. Отмонтируем диски и перезагружаемся.

СПОСОБ 3 (совсем простой)

В случае, если нужно только восстановить MBR диска (например, после (пере)установки Windows), все можно сделать еще проще, вообще ничего не монтируя. Грузимся с LiveCD. Определяем нужный жесткий диск с помощью "sudo fdisk -l". Если он единственный - значит, sda. Вводим команду

sudo grub-install --root-directory=/tmp /dev/sda

изменив /dev/sda на нужный диск. Можно снова грузиться с этого диска.
Comments