Green 10.02.2011 21:13

Есть проблема!Grub на рэйде

Приветствую всезнающий Алл!
Возникла у меня неожиданно такая проблема:
В конторе, в которой я работаю, есть сервачек на котором крутится сайт самой конторы.Раньше им занимался другой человек, но недавно он уволился и обслуживание повесили на меня. И до сего дня я его рассматривал как черный ящик, к которому лучше не лезть, пока работает, бо наполняет его контентом ещё один товарищ. В один прекрасный момент сайт перестал открываться и я, вспомнив поговорку "семь бед один ресет" ткнул кнопку. При включении сервак выдал мне grub error 15 и нагло отказался загружаться. Погуглив, загрузился с лайвСД и начал ковыряться. Выяснилось, что там скорее всего сделан программный 1-й рэйд на 4 винтах. Пытался подмонтировать рэйд раздел md1, ругается что нет такого, при этом получается примонтировать отдельно любой из жестких (sudo mount -t ext3 /dev/sd*2 /mnt) и поковыряться в нем. Сейчас стоит задача запустить сайт в кратчайшие сроки. Насколько я понимаю, как минимум слетел загрузчик на рейдовом разделе. Мне удалось довести его до состояния, когда при включении компа появляется консоль груба. Что делать дальше представляю плохо.
А теперь собственно несколько вопросов:
1. Насколько реально безболезненно восстановить загрузчик и если это возможно как это сделать?
2. Если ответ на 1-й вопрос отрицательный, то возможно ли выдернув три винта и оставив один, запустить систему, пусть и с потерей надежности и производительности? Развалится ли при этом рейд и насколько реально восстановить его в дальнейшем?
3. Есть ли еще какие-то варианты решения этой проблемы, кроме самого худшего - переустановки системы?

ЗЫЖ При ответе прошу учесть, что с Линуксом я на Вы и подкреплять советы кодом.
ЗЗЫЖ Заранее извиняюсь за многабукаф.
ЗЗЗЫЖ Я уже совсем обгуглился. Не выходит каменный цветок...

UPD1 Забыл указать, ось Ubuntu server 9.10


Тэги: grub
+ 3 -
Похожие Поделиться

oldbay 11.02.2011 01:49 #
Ресет и переустоновки - немного "не наш" метод

1-й зеркальный рейд на 4-х винтах .... тоесть 2 винта на одну какую то группу каталогов и 2 других на другую?

я не телепат - но попробую предположить, что там на отдельные винты вынесен сам сайт ?

продолжая телепатические извращения предположу: что у вас развалился рейд из тех винтов что отвечали за саму ось (не за сайт), причем сдох именно тот винт на котором в mbr висел загрузчик?

так?

если появилась "консоль груба" - я так подозреваю вы так меню груба назвали - то дело почти в шляпе

пока что ,на мой взгляд, вам нужно:
загрузится с ливцд
переписать в /boot/grub.conf или /boot/menu.lst (зависит от дистра) в строке :

kernel /vmlinuz ....... root=/dev/md1

последнюю часть с root=/dev/md1 на /dev/sd.. соответствующий вашему выжившему из рейда винту
переписать соответствующим образом /etc/fstab (сейчас строка монтирования / -указывает на root=/dev/md1 , перепишете ее тоже на живой винт)
в fstab не стоит трогать указание на монтирование раздела(ов) двух оставшихся винтов в рейде - они возможно не пострадали

зы: это просто выход из положения - если знаний мало ... не более того - правильнее заново собрать винты в рейд
зызы: в будущем более подробно описывайте какие разделы на каких винтах собраны в рейд = вы дали очень мало информации, а телепаты обычно бывают в отпуске :)
cppmm 11.02.2011 02:28 #
Мне удалось довести его до состояния, когда при включении компа появляется консоль груба.

Здесь надо по подробнее. Что было сделано? На будущее не советую так в слепую что-либо делать - опасно.

А вообще, что говорит с livecd команда fdisk -l для начала. Если показывает осмысленные линуксовые разделы, что на них, если попытаться примотнтировать(man mount)?
Если что-то показывает, но не монтирует, в каком состоянии сами диски(man smartctl)?
Пока что я так понял, вы точно не знаете, какой рейд, какие диски и что там вообще происходит. С таким начальным набором информации я бы ничего не делал, ибо чревато потерей данных. Сперва нужно точно выяснить, что там происходит.
Green 11.02.2011 07:11 #
sudo fdisk -l

Disk /dev/sda: 250.1 GB, 250059350016 bytes
255 heads, 63 sectors/track, 30401 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0009ab90

Device Boot Start End Blocks Id System
/dev/sda1 1 3040 24418768+ fd Linux raid autodetect
/dev/sda2 3041 30401 219777232+ fd Linux raid autodetect

Disk /dev/sdc: 250.1 GB, 250059350016 bytes
255 heads, 63 sectors/track, 30401 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0000421e

Device Boot Start End Blocks Id System
/dev/sdc1 1 3040 24418768+ fd Linux raid autodetect
/dev/sdc2 3041 30401 219777232+ fd Linux raid autodetect

Disk /dev/sdd: 250.1 GB, 250059350016 bytes
255 heads, 63 sectors/track, 30401 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000475c9

Device Boot Start End Blocks Id System
/dev/sdd1 1 3040 24418768+ fd Linux raid autodetect
/dev/sdd2 3041 30401 219777232+ fd Linux raid autodetect

Disk /dev/sdb: 250.1 GB, 250059350016 bytes
255 heads, 63 sectors/track, 30401 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000275ab

Device Boot Start End Blocks Id System
/dev/sdb1 1 3040 24418768+ fd Linux raid autodetect
/dev/sdb2 3041 30401 219777232+ fd Linux raid autodetect
Green 11.02.2011 07:44 #
Исходя из вышеуказанного результата выполнения фдиска и был сделан вывод, что рэйд таки первый и сделан разом на четырех винтах. Я уже писал, что получается примонтировать 2-й раздел на любом из винтов (sudo mount -t ext3 /dev/sd*2 /mnt).
Ну если "меню груба" - это строка вида "grub >", то да. К нему пришел после попытки переписать загрузчик посредством "rescue mode" на убунтовском установочном СД. Там для установки указывал /dev/md1.
переписать в /boot/grub.conf или /boot/menu.lst

В упор не вижу этих 2-х файлов на примонтированном sda2.

в fstab
# /etc/fstab: static file system information.
#
# Use 'vol_id --uuid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
# <file system> <mount point> <type> <options> <dump> <pass>
proc /proc proc defaults 0 0
# / was on /dev/md1 during installation
UUID=918cc6bb-57f5-428d-9782-e023a4053aa5 / ext3 relatime,errors=remount-ro 0 1
# swap was on /dev/md0 during installation
UUID=d02893b4-704e-4929-afd6-06c9174817af none swap sw 0 0
/dev/scd0 /media/cdrom0 udf,iso9660 user,noauto,exec,utf8 0 0
/dev/fd0 /media/floppy0 auto rw,user,noauto,exec,utf8 0 0
uscr 11.02.2011 08:38 #
В упор не вижу этих 2-х файлов на примонтированном sda2.

Ох. Там убунта? У вас Grub2. Там всё немного сложнее. Нужно изучить как минимум вот эту ссылку - http://ru.wikibooks.org/wiki/Grub_2.
Green 11.02.2011 10:14 #
Изучил. Пробую сделать восстановление по первому способу на sda. Вот что выдает:
root@mint:/# sudo grub-install /dev/sda
sudo: unable to resolve host mint
/dev/md1: Not found or not a block device.

при том что в консоль до этого вводилось:
mint@mint ~ $ sudo mount -t ext3 /dev/sda2 /mnt
mint@mint ~ $ sudo mount --bind /dev /mnt/dev
mint@mint ~ $ sudo mount --bind /proc /mnt/proc
mint@mint ~ $ sudo chroot /mnt /bin/bash


В /etc/default нету grub'a. В /etc/grub.d есть только 20_memtest86+
cppmm 11.02.2011 11:10 #
В /etc/default нету grub'a. В /etc/grub.d есть только 20_memtest86+

Очень странно.
На примонтированном разделе вообще имеется директория /boot ? Что в ней? Для второго граба файл настройки должен лежать в /boot/grub/grub.cfg Покажите, что в нём.

Судя по fstab, sda1 и не примонтируется - это swap-раздел.

root@mint:/# sudo grub-install /dev/sda
sudo: unable to resolve host mint
/dev/md1: Not found or not a block device.

На ошибку sudo здесь обращать внимания не надо.
А вот вторая ошибка вполне логична(на 100% скажу после того, как увижу grub.cfg). Дело в том, что корень у вас находится на /dev/md0. А вы примонтировали только один из дисков, а не рейд, потому система на видит ни одного md-раздела. Есть несколько способов решения этой проблемы. С livecd пробовать восстанавливать рейд или попытаться загрузиться только с одного диска без использования рейда и забекапить всё, что там есть, а потом уже занимать восстановлением.
Но. Меня смущает то, что дисков четыре. И то, что как минимум в /etc/grub.d/ присутствуют не все файлы. Т.е. есть вероятность, что у вас не raid 1, а raid 0+1(т.е. два raid 0, объединённых в raid 1). Тогда вариант с загрузкой с одного диска не прокатит.
Поищите там на примонтированном разделе файл /etc/mdadm/mdadm.conf. Что в нём?

Ну и так и остался невыясненным вопрос, из-за чего произошёл сбой. smartctl пробовали?
cppmm 11.02.2011 11:11 #
корень у вас находится на /dev/md1

//fixed
Green 11.02.2011 12:28 #
http://pastebin.com/WqRsnH00 В следующий раз кидайте такую простыню на pastebin