Я использую CentOS 5.2, и у меня проблема с загрузкой двух серверов баз данных. Наш ИТ-отдел провел обновление SAN на выходных, и теперь я не могу загрузиться - они говорят, что обновление прошло нормально, но, очевидно, что-то произошло. Ошибка, которую я получаю при загрузке, заключается в следующем:
fsck.ext3: No such file or directory while trying to open /dev/VolGroup01/db
У меня есть внешний консультант, который смотрит на это и говорит, что это проблема суперблока, которую нельзя исправить, но считает, что это можно исправить (по крайней мере, в соответствии с этим; http://www.cyberciti.biz/faq/recover-bad-superblock-from-corrupted-partition/)
У кого-нибудь есть предложения или указатели? Кроме того, для справки в будущем, какие резервные копии следует хранить помимо моих данных?
Совершенно отчаявшись и готов заплатить за выздоровление на данный момент.
И все обратно и зафиксировано. Оказывается, кто-то по ошибке смонтировал LUN на машине с Windows, затем удалил и поместил их на виртуальные машины CentOS, не думая, что это вызовет проблему. Каждый раздел был помечен как «ЗАПИСАННЫЙ РАЗДЕЛ MICROSOFT» - для его восстановления использовались кэшированные настройки LVM.
Я готов поспорить, что вы знаете, что SAN сместил начало физического диска на несколько байтов. Я видел это раньше. Сука - получить файлы с диска, который сделал это, но это возможно.
Если вы запустите 'fdisk -l', получите ли вы сообщения о том, что стартовые цилиндры на устройстве не соединяются? Обычно его заключают в скобки вокруг каждого объявления раздела.
Вам удается найти группы LVM, но не сам диск? Устройство LVM состоит из нескольких дисков SAN и затронуто только одно?
Следующий скрипт собирается пытаться для поиска правильного смещения в / dev / sdb, где начинается ваш раздел lvm. Никаких гарантий, что он что-нибудь найдет. Если это так, возможно, вы сможете восстановить свои данные.
#!/usr/bin/python
import sys
def BoyerMooreHorspool(pattern, text):
m = len(pattern)
n = len(text)
if m > n: return -1
skip = []
for k in range(256): skip.append(m)
for k in range(m - 1): skip[ord(pattern[k])] = m - k - 1
skip = tuple(skip)
k = m - 1
while k < n:
j = m - 1; i = k
while j >= 0 and text[i] == pattern[j]:
j -= 1; i -= 1
if j == -1: return i + 1
k += skip[ord(text[k])]
return -1
if __name__ == '__main__':
giveup = 1024*1024*1024*2
lba_offset = 0
text = ""
disk = open('/dev/sdb', 'r')
while disk.tell() < giveup:
#print "Checking: %f" % (lba_offset/(1024*1024))
text = disk.read(1048576)
s = BoyerMooreHorspool("\x00\x00\x00LVM2", text)
if s > -1:
print "Try offset: %d" % ((lba_offset+int(s))-533)
sys.exit(0)
else:
lba_offset += 1048576
print "Unable to find LVM position!"
Вы можете вернуть то, что получаете?
Загрузитесь в однопользовательском режиме и закомментируйте строку, монтирующую эту файловую систему, в / etc / fstab. Это должно позволить вам загрузиться и посмотреть, почему эта файловая система не монтируется.