Recriar Partição XFS com o Sistema de Arquivos Existente

2

Eu tenho um servidor CentOS com dois arrays RAID. O array do sistema operacional e um array de dados. Longa história curta, recentemente teve toneladas de problemas com o sistema operacional e teve que recarregar o CentOS (foi de 5,7 e foi para 6,5). Tudo está trabalhando com a parte do sistema operacional agora. No entanto, estou tendo um problema com meu array de dados.

A matriz aparece como / dev / sdb, mas eu costumava ter uma partição (/ dev / sdb1) onde todos os meus dados são armazenados. O servidor não vê mais o / dev / sdb1, então meu melhor palpite é que a tabela de partição está de alguma forma bagunçada. Quando eu imprimo parted, ele lista o tipo de partição como loop:

NON-WORKING SERVER:
Model: Adaptec DATA (scsi)
Disk /dev/sdb: 59.9TB
Sector size (logical/physical): 512B/512B
Partition Table: loop

Number  Start  End     Size    File system  Flags
 1      0.00B  59.9TB  59.9TB  xfs

Eu tenho outro servidor que é uma duplicata exata deste e aparece corretamente no parted e o / dev / sdb1 é visível:

WORKING SERVER:
Model: Adaptec STORAGE (scsi)
Disk /dev/sdb: 59.9TB
Sector size (logical/physical): 512B/512B
Partition Table: gpt

Number  Start   End     Size    File system  Name     Flags
 1      17.4kB  59.9TB  59.9TB  xfs          primary       

Existe alguma maneira de corrigir a partição para que eu não destrua meus dados? Eu preciso desesperadamente manter os dados, mas simplesmente não consigo descobrir se existe uma maneira de corrigir a partição e / ou por que ela está aparecendo como loop.

Obrigado por qualquer ajuda !!

INFORMAÇÕES ADICIONAIS:

fdisk -l / dev / sdb:

Disk /dev/sdb: 59914.8 GB, 59914783293440 bytes
255 heads, 63 sectors/track, 7284224 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: 0xf0b62000

blkid:

/dev/sda1: UUID="9de0d036-a86f-4557-8e09-a5ccd33c66be" TYPE="ext4" 
/dev/sda2: UUID="VYyo4L-lkdG-GivI-a6eM-pFfX-TOoV-E1LxcF" TYPE="LVM2_member" 
/dev/mapper/VolGroup-lv_root: UUID="18bbe93e-9b67-4343-8d71-71bd087ab145" TYPE="ext4" 
/dev/sdb: LABEL="Data" UUID="dfda2895-d1cd-4b3e-8453-e5c51c093260" TYPE="xfs" 
/dev/mapper/VolGroup-lv_swap: UUID="d71f193f-acd4-4aea-8d11-be2acd4575f3" TYPE="swap" 
/dev/mapper/VolGroup-lv_home: UUID="223b2be8-f9e9-4671-bc84-e5aa5f73b697" TYPE="ext4" 

parted / dev / sdb print da unidade (SERVIDOR NÃO TRABALHADOR):

Model: Adaptec DATA (scsi)
Disk /dev/sdb: 117021061120s
Sector size (logical/physical): 512B/512B
Partition Table: loop

Number  Start  End            Size           File system  Flags
 1      0s     117021061119s  117021061120s  xfs

parted / dev / sdb print da unidade (WORKING SERVER):

Model: Adaptec STORAGE (scsi)
Disk /dev/sdb: 117021061119s
Sector size (logical/physical): 512B/512B
Partition Table: gpt

Number  Start  End            Size           File system  Name     Flags
 1      34s    117021061086s  117021061053s  xfs          primary       
    
por Jason 26.10.2014 / 20:47

1 resposta

0

Desonesto.

O tipo de partição de loop na verdade significa que não há tabela de partições.

Uma tabela de partições basicamente diz ao sistema operacional onde procurar por um início de partição e onde deve parar ao criar um sistema de arquivos. Então, não há coisa mágica sobre a mesa e se você tiver a informação correta, se você simplesmente a escrever na posição correspondente, seu disco deve ser tão bom quanto ... ... er ... Novo ... Bem, você começa a foto ...;)

Aqui está o que eu faria:

  1. Crie um backup da tabela de partições atual do host do problema, embora esteja vazio, usando dd if=/dev/sdb of=/root/sdb-parttable.bin bs=512 count=1
  2. Então, eu usaria o fdisk para descobrir o setor inicial e o setor final no outro servidor, coloque-os abaixo
  3. Crie uma nova partição usando fdisk no servidor com problema (sem fazer mais nada!) usando os valores exatos do segundo servidor.
  4. Grave essa tabela de partição no disco
  5. Tente montar / dev / sdb1
  6. Se isso não funcionar, use dd if=/root/sdb-parttable.bin of=/dev/sdb bs=1 count=64 skip=446 seek=446 para restaurar a tabela de partições antiga.

Disclaimer: Esta é uma operação um pouco complicada. As informações nesta resposta foram dadas na esperança de que possa ser útil e sem qualquer garantia ... Se você tiver algum meio de fazer backup do disco em um nível de byte antes de seguir estas etapas: faça isso!

    
por 26.10.2014 / 22:00