Восстановление GRUB2 на программном RAID 0 с использованием LiveCD после того, как Windows 7 стерла его

Я установил Ubuntu 10.10 в своей системе. Тем не менее, мне нужно установить Windows 7 обратно, и я ожидаю, что это изменит GRUB, и это было сделано.

Прямо сейчас мой раздел на программном RAID 0 выглядит следующим образом:

alt text

nvidia_acajefec1 - это Ubuntu 10.10, а nvidia_acajefec3 - это Windows 7 . [+1112]

Я следовал некоторым руководствам и всегда застрял в GRUB, не в состоянии обнаружить обычный контент RAID.

Я попытался запустить:

sudo grub

> root (hd0,0)

GRUB жалуется, что не может найти мой жесткий диск. Поэтому я попытался:

find (hd0,0)

И жалуется, что ничего не смог найти.

Итак, я попытался:

find /boot/grub/stage1

Там сказано «файл не найден».

Вот текст из консоли:

ubuntu@ubuntu:~$ grub
Probing devices to guess BIOS drives. This may take a long time.

       [ Minimal BASH-like line editing is supported.   For
         the   first   word,  TAB  lists  possible  command
         completions.  Anywhere else TAB lists the possible
         completions of a device/filename. ]
grub> root (hd0,0)
root (hd0,0)

Error 21: Selected disk does not exist
grub> find /boot/grub/stage1
find /boot/grub/stage1

Error 15: File not found

** К счастью, один человек предположил, что я пытался сделать это для GRUB Legacy, а не GRUB2. Поэтому я пошел на предложенный веб-сайт ( http://grub.enbug.org/Grub2LiveCdInstallGuide ) и попытался осмотреться и попытаться:

ubuntu@ubuntu:~$ sudo fdisk -l

Unable to seek on /dev/sda

Это всего лишь шаг 2 инструкции в http://grub.enbug.org/Grub2LiveCdInstallGuide , и я не могу продолжить, потому что она не может искать /dev/sda.

Однако,

ubuntu@ubuntu:~$ sudo dmraid -r
/dev/sdb: nvidia, "nvidia_acajefec", stripe, ok, 488397166 sectors, data@ 0
/dev/sda: nvidia, "nvidia_acajefec", stripe, ok, 488397166 sectors, data@ 0

Так что теперь? У вас есть идея, как заставить fdisk видеть мой RAID-массив на live cd (Ubuntu 10.10)? Честно говоря, я потерян, очень растерялся, пытаясь восстановить GRUB2 на этой программной системе RAID 0.

4
задан 3 January 2011 в 19:31

2 ответа

Если вы загружаетесь с компакт-диска восстановления, ваши корневые устройства - это не /, но представление ISO в ОЗУ. В этом случае мы должны сначала смонтировать корневой раздел real .

Проверьте, активен ли программный RAID:

$ cat / proc / partitions

Вы должны ожидать, что sda, sdb, [ 112], затем dm-1, dm-2 и т. Д., Представляющих записи таблицы разделов.

Если вы не видите записи dm-*, вам необходимо активировать программный RAID вручную:

$ sudo dmraid-activ

Проверить /proc/partitions еще раз и убедитесь, что grub знает об этом:

$ sudo grub-mkdevicemap -m -

Вывод может отличаться, но должен выглядеть (где * ata-WDC_WD5001AALS-00L3B2_WD-WCASY5902194 * зависит от конфигурации вашего оборудования):

(hd0) / dev / disk / by-id / ata-WDC_WD5001AALS-00L3B2_WD-WCASY5901111 (11)
1111 hd1) / dev / disk / by-id / ata-WDC_WD5001AALS-00L3B2_WD-WCASY5867648
(hd2) / dev / mapper / nvidia_acajefec

ваш реальный ] корневой раздел должен быть /dev/mapper/nvidia_acajefec1 прямо сейчас. Мы смонтируем этот раздел для будущих тестов сейчас:

$ sudo mount / dev / mapper / nvidia_acajefec1 / mnt
$ sudo mount --bind / dev / mnt / dev
$ sudo mount --bind / proc / mnt / proc
$ sudo mount --bind / sys / mnt / sys

Проверить, может ли grub чтобы сопоставить устройства с вашими разделами:

$ sudo grub-mkdevicemap -m - | sudo grub-probe --device-map = / proc / self / fd / 0 --target = device / mnt

Вы должны увидеть что-то вроде /dev/mapper/nvidia_acajefec1.

Определите имя вашего раздела как устройство GRUB:

$ sudo grub-mkdevicemap -m - | sudo grub-probe --device-map = / proc / self / fd / 0 --target = drive / mnt

Вывод должен быть что-то вроде (hd2,msdos1).

1149 Пока все хорошо. Чтобы установить / обновить GRUB, мы готовы переключиться на корневой раздел real и обновить загрузочный блок:

$ sudo chroot / mnt / bin / bash
$ sudo update-grub
Генерация grub.cfg ...
Найденное фоновое изображение: /usr/share/images/desktop-base/desktop-grub.png
Найденное изображение linux: /boot/vmlinuz-2.6.32-5-686-bigmem
Найденный образ initrd: /boot/initrd.img-2.6.32-5-686-bigmemdm-0
Найденный Linux в / dev / mapper / nvidia_acajefec1
Найденный Windows в / dev / mapper / nvidia_acajefec3
сделано
$ sudo grub-install / dev / mapper / nvidia_acajefec
Установка завершена. Об ошибках не сообщается.
$ exit

Вы готовы перезагрузить систему.

0
ответ дан 3 January 2011 в 19:31

Устройство, которое необходимо установить, - /dev/nvidia_acajefec1, а устройство, на которое необходимо установить, - /dev/nvidia_acajefec. Итак, примерно следуя указаниям на http://grub.enbug.org/Grub2LiveCdInstallGuide , вы запустите:

sudo mount /dev/nvidia_acajefec1 /mnt
sudo mount --bind /dev /mnt/dev
sudo mount --bind /proc /mnt/proc
sudo mount --bind /sys /mnt/sys
sudo chroot /mnt
grub-mkconfig -o /boot/grub/grub.cfg
grub-install /dev/nvidia_acajefec # Note that there is *not* a '1' at the end
0
ответ дан 3 January 2011 в 19:31

Другие вопросы по тегам:

Похожие вопросы: