CentOS Superblock corrupção?

2

Estou no CentOS 5.2 e estou tendo problemas para inicializar meus dois servidores de banco de dados. Nosso departamento de TI realizou uma atualização de SAN no fim de semana e agora eu não consigo inicializar - eles dizem que a atualização correu bem, mas obviamente algo aconteceu. O erro que recebo é um tempo de inicialização;

fsck.ext3: No such file or directory while trying to open /dev/VolGroup01/db

Eu tenho um consultor externo que está olhando para ele e dizendo que é um problema de Superblock que não pode ser corrigido, mas pensei que eles eram recuperáveis (de acordo com isso, pelo menos; link )

Alguém tem alguma sugestão ou ponteiros? Além disso, para referência futura, o que devo manter backups além dos meus dados?

Totalmente desesperado e disposto a pagar pela recuperação neste momento.

    
por sgtbeano 22.01.2012 / 14:30

3 respostas

3

E está tudo de volta e fixo. Acontece que alguém montou os LUNs em uma máquina com Windows por engano, depois os removeu e os colocou nas VMs do CentOS sem pensar que isso causaria um problema. Cada partição foi rotulada como "MICROSOFT RESERVED PARTITION" - usou a configuração do LVM em cache para recuperá-la.

    
por 23.01.2012 / 14:51
3

Estou disposto a apostar que você sabe que a SAN alterou o início do disco físico em alguns bytes. Eu já vi isso antes. É uma puta para tirar seus arquivos de um disco que fez isso, mas é possível.

Se você executar 'fdisk -l', receberá mensagens sobre os cilindros iniciais no dispositivo que não estão se casando? Geralmente está entre parênteses em torno de cada declaração de partição.

Você consegue encontrar os grupos LVM, mas não o disco em si? O dispositivo LVM é composto de vários discos SAN e apenas um é afetado?

O script a seguir vai tentar procurar o deslocamento correto em / dev / sdb onde sua partição lvm é iniciada. Não há garantias de que encontrará alguma coisa. Em caso afirmativo, você pode estar em uma boa posição para recuperar seus dados.

#!/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!"

Você pode devolver o resultado obtido?

    
por 22.01.2012 / 18:55
1

Inicialize no modo de usuário único e comente a montagem de linha do sistema de arquivos em / etc / fstab. Isso deve permitir que você inicialize e dê uma olhada no motivo pelo qual esse sistema de arquivos não será montado.

    
por 22.01.2012 / 14:52