Quando discutimos a recuperação de dados RAID, presumimos que já conhecíamos os parâmetros RAID. No entanto, em alguns casos, não sabemos os parâmetros RAID a serem reconstruídos. Como você encontra os parâmetros necessários? Os fornecedores de RAID podem ajudá-lo com seus valores padrão, mas às vezes os parâmetros foram personalizados e agora são desconhecidos. O R-Studio pode ajudar neste caso? Sim, podemos usar a detecção automática de parâmetros RAID ou o editor de texto/hexadecimal integrado para analisar dados em componentes RAID com o objetivo de encontrar seus parâmetros. Neste artigo mostraremos como fazer isso, usando um simples NTFS RAID 5 como exemplo. O artigo Detecção Automática de Parâmetros RAID explica como encontrar parâmetros de RAID automaticamente.
Tal tarefa requer pelo menos um conhecimento básico de estruturas de dados RAID e sistemas de arquivos. Se necessário, você pode encontrar algumas informações úteis nesses sites.
RAIDs: http://en.wikipedia.org/wiki/RAID
Noções básicas de NTFS: http://en.wikipedia.org/wiki/NTFS
NTFS detalhado: http://technet.microsoft.com/en-us/library/cc758691.aspx
Então, vamos tentar encontrar os parâmetros necessários para um simples RAID 5 desconhecido.
Seus parâmetros conhecidos são:
1. Número de discos: Três
2. Sistema de arquivos: NTFS (criado pelo Windows XP/2003 e posteriormente usando um Master Boot Record padrão (bloco inicial MBR)
3. Tipo: Volume Básico
Seus parâmetros desconhecidos que devem ser encontrados são:
1. Ordem dos discos
2. Bloco tamanho 3
3. Ordem de bloco
4. Offset do disco
Os discos RAID são representados como arquivos de imagem criados no R-Studio:
Disk1.arc
Disk2.arc
Disk3.arc
Clique na imagem para ampliar
Arquivos de imagem de componentes RAID
Observe que, embora o R-Studio tenha encontrado um objeto Disk1 em Disk2.arc, isso não indica necessariamente que este é o primeiro disco no RAID.
Encontrando o Registro Mestre de Inicialização
Primeiro, precisamos encontrar o MBR para determinar um RAID offset.
1. Um após o outro, abra todos os arquivos de imagem da árvore no editor de texto/hexadecimal.
2. Não ative a gravação para evitar corrupção acidental de dados nos objetos que estão sendo editados!
3. Anote a assinatura do disco do Windows para cada objeto para reconhecer posteriormente qual janela do editor pertence a qual objeto.
4. Procure o bloco inicial MBR. Na caixa de diálogo Search, insira 33 C0 8E D0 BC (este é um bloco inicial MBR padrão, mas em alguns casos pode ser diferente) no campo HEX ; em seguida, selecione Da posição inicial e insira 0 em Pesquisar no deslocamento.
5. Clique em OK para iniciar a pesquisa.
Dados na caixa de diálogo Search para iniciar a pesquisa pelo Master Boot Record (MBR)
Resultados da pesquisa:
Clique na imagem para ampliar
Disk1.arc aberto no editor de texto/hexadecimal
Clique na imagem para ampliar
Disk2.arc aberto no editor de texto/hexadecimal. Padrão MBR encontrado.
Clique na imagem para ampliar
Disk3.arc aberto no editor de texto/hexadecimal. Padrão MBR encontrado.
O resultado é que o editor de texto/hexadecimal encontra esse padrão no endereço 00 em Disk2.arc e Disk3.arc; Disk1.arc mostra apenas zeros. Isso significa que o offset é 0 e Disk1.arc não pode ser o primeiro disco no RAID.
Enquanto isso, o Editor reconheceu corretamente esses padrões em Disk2 e Disk3 como código mestre do carregador de bootstrap. No nosso caso, dois discos têm os mesmos dados MBR em um mesmo local.
Agora, como segundo passo, precisamos encontrar o setor de inicialização NTFS.
Dê uma olhada no campo Setores anteriores à partição no painel Template
Clique na imagem para ampliar
Painel template para Disk2 e Disk3
Para o nosso caso, o setor anterior à partição é 16,065.
Se esse valor for maior que 63, devemos dividi-lo por N -1, onde N é o número de discos (no nosso caso, N = 3), o que nos dá 8,032. Esta é uma posição aproximada para começar a procurar o setor de inicialização NTFS. Iniciaremos a pesquisa a partir desta posição para evitar encontrar setores de inicialização NTFS falsos que possam permanecer de partições NTFS anteriores.
Vá para esse setor no Editor e procure o padrão do setor de inicialização NTFS.
Clique na imagem para ampliar
O campo de pesquisa de setores no editor de texto/hexadecimal.
Na caixa de diálogo Search, digite EB 52 90 4E 54 46 53 20 20 20 20 (o setor de inicialização NTFS sempre começa a partir desses bytes) no campo HEX, selecione Da posição atual e digite 0 em Pesquisar no offset.
Clique na imagem para ampliar
Dados na caixa de diálogo Search para iniciar a pesquisa do setor de inicialização NTFS.
O Editor encontra esse padrão no setor 8064 em Disk2 e Disk3.
Agora selecione o padrão Setor de inicialização NTFS no painel Template.
Clique na imagem para ampliar
Disk2.arc aberto no editor de texto/hexadecimal. Padrão do setor de inicialização NTFS encontrado. O mesmo padrão é encontrado em Disk3.arc.
Parâmetros necessários que encontramos.
Bytes por setor: 512
Setores por cluster: 8
Número de cluster lógico para o arquivo $MFT: 786432
Parâmetros encontrados anteriormente:
RAID offset: 0
Em seguida, precisamos encontrar a MFT (tabela de arquivos mestre) no disco:
1. Tentaremos encontrar um offset MFT aproximado do início do RAID:
Offset MFT do início da partição em setores = Número lógico do cluster para o arquivo $MFT * Setores por cluster+deslocamento RAID = 786.432*8+0 = 6,291,456
Se o offset do RAID não for 0, precisamos adicionar o deslocamento ao resultado da equação acima.
Início MFT no primeiro disco = offset MFT do início da partição em setores/(N-1) = 6,291,456/2 = 3,145,728
2. Começaremos a procurar o início exato da MFT em uma posição alguns milhares de setores abaixo desse valor. Digamos, setor 3,140,000.
Na caixa de diálogo Search, digite "ARQUIVO" no campo ANSI, selecione Da posição atual e digite 0 em Pesquisar no offset.
Clique na imagem para ampliar
Esse padrão é encontrado no setor 10,241,463 no Disk2 e no setor 3,153,792 no Disk3.
Clique na imagem para ampliar
Primeiro setor de registro de arquivo em Disk3. Início de um bloco de dados.
O que é importante: A assinatura FILE termina com 0, o que significa que o número do registro do arquivo não é substituído por uma correção. Se terminasse com * (FILE*), não poderíamos prosseguir em nossa pesquisa e precisaríamos usar outra técnica.
O padrão $.M.F.T. (HEX 24 00 4D 00 46 00 54) mostra que este é um início MFT correto.
Como o setor 3,153,792 está mais próximo de nosso valor esperado do setor 3,145,728 do que do setor 10,241,463, podemos assumir que o Disk3 é o primeiro disco no RAID.
Para prosseguir, precisamos ter em mente que um registro de arquivo em MFT ocupa dois setores e que os dados são gravados em um RAID 5 sucessivamente, um bloco de dados em um disco, depois o próximo bloco de dados no próximo disco e um bloco de paridade para o terceiro disco. Podemos representar um exemplo de tal esquema na tabela a seguir...
Primeiro disco RAID | Segundo disco RAID | Terceiro disco RAID |
PD | 1 | 2 |
3 | PD | 4 |
5 | 6 | PD |
Disk1 | Disk2 | Disk3 |
Sec: 3,153,792 Rec: 40 00 Sec: 3,153,918 Rec: 7F 00 Sec: 3,153,919 Fim da faixa. |
Sec: 3,153,792 Sem registros Sec: 3,153,918 Sem registros Sec: 3,153,919: Fim da faixa. |
Sec: 3,153,792 Rec: 00 00 Sec: 3,153,918 Rec: 3F 00 Sec: 3,153,919 Fim da faixa. |
Sec: 3,153,920 Rec: Sem registros Sec: 3,154,046 Rec: Sem registros Sec: 3,154,047 Fim da faixa. |
Sec: 3,153,920 Rec: C0 00 Sec: Sec: 3,154,046 Rec: FF 00 Sec: 3,154,047 Fim da faixa. |
Sec: 3,153,920 Rec: 80 00 Sec: 3,154,046 Rec: BF 00 Sec: 3,154,047 Fim da faixa. |
Sec: 3,154,048 Rec: 00 01 Sec: 3,154,174 Rec: 3F 01 Sec: 3,154,175 Fim da faixa. |
Sec: 3,154,048 Rec: 40 01 Sec: Sec: 3,154,174 Rec: 7F 01 Sec: 3,154,175 Fim da faixa. |
Sec: 3,154,048 Rec: Sem registros Sec: 3,154,174 Rec: Sem registros Sec: 3,154,175 Fim da faixa. |
Primeiro disco RAID | Segundo disco RAID | Terceiro disco RAID |
1 | 2 | PD |
3 | PD | 4 |
PD | 5 | 6 |