matriz RAID1 perdida após atualização do Ubuntu 11.10 para 13.04

1

Eu tinha um Ubuntu 11.10 funcional com / em um SSD (/ dev / sdc) e / home em um array RAID1 de software que residia em duas partições em / dev / sda e / dev / sdb (unidades idênticas), respectivamente. Isso foi configurado como SW RAID. O HW RAID da placa-mãe está desativado.
Hoje, atualizei de 11,10 para 13,04 usando um CD ao vivo. Eu escolhi a opção de atualizar o 11.10 existente e reter os dados do usuário. No começo, eu não conseguia inicializar após a atualização. Eu suspeitava que a instalação não tinha conseguido atualizar o grub corretamente no sdc, então eu primeiro tentei consertá-lo inicializando a partir do live CD e instalando e usando boot-repair . Isso não foi possível concluir por algum motivo não claro, então eu em vez disso reinstalado grub em sdc manualmente como descrito aqui: link . Depois disso, o Ubuntu 13.04 inicializou com um prompt de login baseado em texto que não aceitaria o nome de usuário e a senha que eu especifiquei durante a instalação.
Eu então instalei o 13.04 do live CD novamente, desta vez escolhendo o "upgrade" da instalação 13.04 agora existente para o 13.04 (novamente, a opção de manter os arquivos do usuário, etc.). Depois disso, o 13.04 pode inicializar com êxito em um login gráfico e permite que eu faça o login sem erros.
Agora, o único problema restante é que minha matriz RAID1 parece perdida :-( Em sda, costumava haver (nesta ordem):

  1. uma partição de membro RAID de 699 GB
  2. aprox. 200 GB de espaço não alocado
  3. uma partição de 109 GB (ext3 ou ext4 - não me lembro) que contém um backup de uma instalação anterior do Ubuntu.

Em sdb, costumava haver:

  1. uma partição de membro RAID de 699 GB
  2. uma partição de cerca de 100 GB (ext3 ou ext4 - não me lembro) que contém um backup da minha instalação mais recente do Ubuntu.
  3. uma partição de cerca de 150 GB (ext3 ou ext4 - não lembro) que contém alguns arquivos.
  4. uma partição de cerca de 50 GB (ext3 ou ext4 - não me lembro) que contém alguns arquivos.

Examinando os discos agora, várias das partições sumiram - basicamente tudo no sdb. fdisk -lu agora diz (desculpe pelo dinamarquês - espero que você possa adivinhar o que isso significa comparando com fdisk output em seu idioma preferido):

Disk /dev/sda: 1000.2 GB, 1000204886016 bytes
255 hoveder, 63 sektorer/spor, 121601 cylindre, i alt 1953525168 sektorer
Enheder = sektorer af 1 * 512 = 512 byte
Sektorstørrelse (logisk/fysisk): 512 byte / 512 byte
I/O-størrelse (minimum/optimal): 512 byte / 512 byte
Diskidentifikation: 0x000d9c82

    Enhed Opstart   Start         Slut     Blokke   Id  System
/dev/sda1              63  1364496839   682248388+   0  Tom
/dev/sda2   *  1740050432  1953519615   106734592   83  Linux

Disk /dev/sdb: 1000.2 GB, 1000204886016 bytes
255 hoveder, 63 sektorer/spor, 121601 cylindre, i alt 1953525168 sektorer
Enheder = sektorer af 1 * 512 = 512 byte
Sektorstørrelse (logisk/fysisk): 512 byte / 512 byte
I/O-størrelse (minimum/optimal): 512 byte / 512 byte
Diskidentifikation: 0x000bf717

    Enhed Opstart   Start         Slut     Blokke   Id  System
/dev/sdb1      1577969664  1869625343   145827840   83  Linux
/dev/sdb2      1869628635  1953520064    41945715   83  Linux
/dev/sdb3      1364494336  1577963519   106734592   83  Linux
/dev/sdb4              63  1364480774   682240356    0  Tom

Partitionstabellens indgange er ikke i diskrækkefølge

Disk /dev/sdc: 120.0 GB, 120034123776 bytes
255 hoveder, 63 sektorer/spor, 14593 cylindre, i alt 234441648 sektorer
Enheder = sektorer af 1 * 512 = 512 byte
Sektorstørrelse (logisk/fysisk): 512 byte / 512 byte
I/O-størrelse (minimum/optimal): 512 byte / 512 byte
Diskidentifikation: 0x0008fd03

    Enhed Opstart   Start         Slut     Blokke   Id  System
/dev/sdc1   *        2048   209295359   104646656   83  Linux
/dev/sdc2       209297406   234440703    12571649    5  Udvidet
/dev/sdc5       209297408   234440703    12571648   82  Linux swap / Solaris

Disk /dev/mapper/ddf1_RAID: 2000.1 GB, 2000131457024 bytes
255 hoveder, 63 sektorer/spor, 243168 cylindre, i alt 3906506752 sektorer
Enheder = sektorer af 1 * 512 = 512 byte
Sektorstørrelse (logisk/fysisk): 512 byte / 512 byte
I/O-størrelse (minimum/optimal): 32768 byte / 65536 byte
Diskidentifikation: 0x000d9c82

                 Enhed Opstart   Start         Slut     Blokke   Id  System
/dev/mapper/ddf1_RAID1              63  1364496839   682248388+   0  Tom
Partition 1 starter ikke på en fysisk sektorgrænse.
/dev/mapper/ddf1_RAID2   *  1740050432  1953519615   106734592   83  Linux

Disk /dev/mapper/ddf1_RAID1: 698.6 GB, 698622349824 bytes
255 hoveder, 63 sektorer/spor, 84935 cylindre, i alt 1364496777 sektorer
Enheder = sektorer af 1 * 512 = 512 byte
Sektorstørrelse (logisk/fysisk): 512 byte / 512 byte
I/O-størrelse (minimum/optimal): 32768 byte / 65536 byte
Justeringsforskydning: 512 byte
Diskidentifikation: 0xbd223da2

Disk /dev/mapper/ddf1_RAID1 indeholder ikke en gyldig partitionstabel

Disk /dev/mapper/ddf1_RAID2: 109.3 GB, 109296222208 bytes
255 hoveder, 63 sektorer/spor, 13287 cylindre, i alt 213469184 sektorer
Enheder = sektorer af 1 * 512 = 512 byte
Sektorstørrelse (logisk/fysisk): 512 byte / 512 byte
I/O-størrelse (minimum/optimal): 32768 byte / 65536 byte
Diskidentifikation: 0x00000000

Disk /dev/mapper/ddf1_RAID2 indeholder ikke en gyldig partitionstabel

Rodando blkid diz:

/dev/sda: UUID="M-,^[eRM-^FM-^@%:M-,^[eRM-D^[eRM-\^[eRM-^?M-^?M-^?M-^?" TYPE="ddf_raid_member" 
/dev/sdb: UUID="M-,^[eRM-^FM-^@%:M-,^[eRM-D^[eRM-\^[eRM-^?M-^?M-^?M-^?" TYPE="ddf_raid_member" 
/dev/sdc1: UUID="32579810-0388-416d-bb49-7031ac2c2975" TYPE="ext4" 
/dev/sdc5: UUID="b7507355-effd-4dbc-9b4e-0546bca036f4" TYPE="swap" 

Eu tentei mdadm --examine /dev/sda e mdadm --examine /dev/sdb , o que revelou que a primeira parte de sda e todo sdb pareciam conter partições de membros RAID0:

/dev/sda:
          Magic : Intel Raid ISM Cfg Sig.
        Version : 1.0.00
    Orig Family : 43d3cf98
         Family : 43d3cf98
     Generation : 00000003
     Attributes : All supported
           UUID : 6792b89b:e5162c11:b694727d:de71f59c
       Checksum : 7a5f4777 correct
    MPB Sectors : 1
          Disks : 2
   RAID Devices : 1

  Disk00 Serial : WD-WMATV3627263
          State : active
             Id : 00000000
    Usable Size : 1953519880 (931.51 GiB 1000.20 GB)

[Volume0]:
           UUID : 4af84c7c:76a536eb:e16d27fb:1a3a90c3
     RAID Level : 0
        Members : 2
          Slots : [UU]
    Failed disk : none
      This Slot : 0
     Array Size : 3907039232 (1863.02 GiB 2000.40 GB)
   Per Dev Size : 1953519880 (931.51 GiB 1000.20 GB)
  Sector Offset : 0
    Num Stripes : 30523744
     Chunk Size : 32 KiB
       Reserved : 0
  Migrate State : idle
      Map State : normal
    Dirty State : clean

  Disk01 Serial : WD-WMATV3628555
          State : active
             Id : 00010000
    Usable Size : 1953519880 (931.51 GiB 1000.20 GB)

/dev/sdb:
          Magic : Intel Raid ISM Cfg Sig.
        Version : 1.0.00
    Orig Family : 43d3cf98
         Family : 43d3cf98
     Generation : 00000003
     Attributes : All supported
           UUID : 6792b89b:e5162c11:b694727d:de71f59c
       Checksum : 7a5f4777 correct
    MPB Sectors : 1
          Disks : 2
   RAID Devices : 1

  Disk01 Serial : WD-WMATV3628555
          State : active
             Id : 00010000
    Usable Size : 1953519880 (931.51 GiB 1000.20 GB)

[Volume0]:
           UUID : 4af84c7c:76a536eb:e16d27fb:1a3a90c3
     RAID Level : 0
        Members : 2
          Slots : [UU]
    Failed disk : none
      This Slot : 1
     Array Size : 3907039232 (1863.02 GiB 2000.40 GB)
   Per Dev Size : 1953519880 (931.51 GiB 1000.20 GB)
  Sector Offset : 0
    Num Stripes : 30523744
     Chunk Size : 32 KiB
       Reserved : 0
  Migrate State : idle
      Map State : normal
    Dirty State : clean

  Disk00 Serial : WD-WMATV3627263
          State : active
             Id : 00000000
    Usable Size : 1953519880 (931.51 GiB 1000.20 GB)

Em seguida, executei mdadm --assemble --scan e agora tenho um array RAID0. Contém:

  1. As três partes mencionadas sob sda acima. Infelizmente, nem a partição de 699GB aqui (que espero ainda contenha uma das cópias do meu array RAID1 original) ou a partição de 109GB pode ser montada.
  2. 1 TB de espaço não alocado que suponho que corresponda a sdb?

Alguém pode:

  1. Ajude-me a descobrir o que deu errado?
    • Por exemplo, por que os membros do RAID1 se tornaram membros do RAID0?
    • Para onde foram as partições no sdb?
    • Por que o tipo de partição nas partições em sda foi perdido?
  2. Diga-me como consertar isso?
    • Eu posso viver sem as partições menores, mas eu realmente gostaria de ter meu diretório home na partição RAID1 de volta.
por Thomas Arildsen 21.06.2013 / 14:31

1 resposta

2

Assim como eu estava prestes a desistir, parece que encontrei uma solução agora.

  1. Corri parted /dev/sda print para identificar a área de disco (aparentemente vazia) em que a partição estava localizada.
  2. Em seguida, executei parted /dev/sda rescue 0 699GB , que encontrou uma partição no deslocamento de 1083kB.
  3. parted perguntou se eu queria adicioná-lo à tabela de partições, à qual respondi sim .
  4. parted agora pode ver a partição.
  5. Em seguida, executei parted /dev/sda unit B print para obter o deslocamento da partição em bytes, que depois de algumas tentativas e erros descobri que mount precisa.
  6. Agora posso montar a partição: mount -o loop,ro,offset=1082880 -t ext4 /dev/sda /mnt .

Agora provavelmente vou copiar os dados do membro RAID1 recuperado, assim como os dados das partições menores, para outro disco rígido; limpe /dev/sda e /dev/sdb completamente; crie novas partições neles; monte as novas partições em um array RAID1; e, finalmente, copiar de volta os dados do backup.

Em relação ao que deu errado: os administradores que me ajudaram a investigar isso disseram que sua melhor aposta era que o procedimento de upgrade do Ubuntu de alguma forma detectou erroneamente os metadados do antigo (não-existente) HW RAID em vez do atual SW Configuração de RAID. Ele pode então ter montado o array como RAID0, abrangendo os discos inteiros / dev / sda e / dev / sdb e, assim, sobrescrevendo metadados sobre o array SW RAID1 real que mede as duas partições ~ 700GB.

    
por Thomas Arildsen 02.07.2013 / 13:41