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?