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
Мне удалось довести его до состояния, когда при включении компа появляется консоль груба.
Здесь надо по подробнее. Что было сделано? На будущее не советую так в слепую что-либо делать - опасно.
А вообще, что говорит с livecd команда fdisk -l для начала. Если показывает осмысленные линуксовые разделы, что на них, если попытаться примотнтировать(man mount)?
Если что-то показывает, но не монтирует, в каком состоянии сами диски(man smartctl)?
Пока что я так понял, вы точно не знаете, какой рейд, какие диски и что там вообще происходит. С таким начальным набором информации я бы ничего не делал, ибо чревато потерей данных. Сперва нужно точно выяснить, что там происходит.
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
Исходя из вышеуказанного результата выполнения фдиска и был сделан вывод, что рэйд таки первый и сделан разом на четырех винтах. Я уже писал, что получается примонтировать 2-й раздел на любом из винтов (sudo mount -t ext3 /dev/sd*2 /mnt).
Ну если "меню груба" - это строка вида "grub >", то да. К нему пришел после попытки переписать загрузчик посредством "rescue mode" на убунтовском установочном СД. Там для установки указывал /dev/md1.
В упор не вижу этих 2-х файлов на примонтированном sda2.
в fstab
Ну если "меню груба" - это строка вида "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
В упор не вижу этих 2-х файлов на примонтированном sda2.
Ох. Там убунта? У вас Grub2. Там всё немного сложнее. Нужно изучить как минимум вот эту ссылку - http://ru.wikibooks.org/wiki/Grub_2.
Изучил. Пробую сделать восстановление по первому способу на sda. Вот что выдает:
при том что в консоль до этого вводилось:
В /etc/default нету grub'a. В /etc/grub.d есть только 20_memtest86+
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+
В /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: 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 пробовали?
http://pastebin.com/WqRsnH00 В следующий раз кидайте такую простыню на pastebin
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 не стоит трогать указание на монтирование раздела(ов) двух оставшихся винтов в рейде - они возможно не пострадали
зы: это просто выход из положения - если знаний мало ... не более того - правильнее заново собрать винты в рейд
зызы: в будущем более подробно описывайте какие разделы на каких винтах собраны в рейд = вы дали очень мало информации, а телепаты обычно бывают в отпуске :)