Recuperando arquivos de um sistema de arquivos LVM2 potencialmente quebrado

0

TLDR

Como posso recuperar arquivos de um disco rígido contendo partições LVM2 depois de extrair o disco de um servidor inativo?

Em resumo

Meu appliance de servidor de email sem cabeçote parou de responder a tentativas de conexão de rede (IMAP, SSH, Ping, ...) e tentativas de recuperação usando uma imagem de instalação / resgate em uma unidade flash USB não conseguiram chegar a lugar nenhum.

O appliance é um dispositivo plug & play proprietário baseado em uma porta PowerPC do Debian com administração baseada na web.

Eu tenho backups, mas eles estão incompletos (novo e-mail, etc, desde backup). Preciso recuperar dados desse disco.

Eu removi o disco rígido e o conectei através de um adaptador SATA-USB a um Ubuntu 16.04 recém-instalado em um PC de mesa.

Descobri que o appliance usou o LVM, mas não consegui montar a partição do LVM no meu PC de recuperação. Erros de hardware foram relatados.

Como recuperar dados?

Detalhes completos

Eu tenho um aplicativo de servidor de email Linux sem cabeça que parou de funcionar. Ele estava rodando um Debian customizado no PowerPC (MPC8313E). Depois de tentar ressuscitá-lo, removi o disco rígido e usei um adaptador SATA para USB para conectar o disco rígido a um computador desktop Ubuntu 16.04 x86_64.

O Ubuntu reclamou do LVM2, então eu usei sudo apt-get install lvm2 e tentei descobrir um pouco sobre o LVM2, depois do que tentei o seguinte

$ sudo lvdisplay
  --- Logical volume ---
  LV Path                /dev/bubba/storage
  LV Name                storage
  VG Name                bubba
  LV UUID                TlYu8Y-JahI-lnNT-Y8Tk-w8TE-CEn7-WD8Ytc
  LV Write Access        read/write
  LV Creation host, time ,  
  LV Status              available
  # open                 1
  LV Size                921.08 GiB
  Current LE             235797
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto    
  - currently set to     256     
  Block device           253:0

$ sudo pvs
  /dev/bubba/storage: read failed after 0 of 4096 at 0: Input/output error
  /dev/bubba/storage: read failed after 0 of 4096 at 989004234752: Input/output error
  /dev/bubba/storage: read failed after 0 of 4096 at 989004292096: Input/output error
  /dev/bubba/storage: read failed after 0 of 4096 at 4096: Input/output error

Aqui está o particionamento de disco

Eutenteimaisalgumasmanipulações:

$sudovgscanReadingallphysicalvolumes.Thismaytakeawhile...Foundvolumegroup"bubba" using metadata type lvm2
$ sudo lvchange -an bubba/storage
$ sudo vgchange -an bubba
  0 logical volume(s) in volume group "bubba" now active
$ sudo vgscan
  Reading all physical volumes.  This may take a while...
  Found volume group "bubba" using metadata type lvm2
$ sudo vgchange -ay bubba
  1 logical volume(s) in volume group "bubba" now active
$ sudo lvscan
  ACTIVE            '/dev/bubba/storage' [921.08 GiB] inherit
$ sudo lvchange -ay bubba/storage
$ sudo lvdisplay
  --- Logical volume ---
  LV Path                /dev/bubba/storage
  LV Name                storage
  VG Name                bubba
  LV UUID                TlYu8Y-JahI-lnNT-Y8Tk-w8TE-CEn7-WD8Ytc
  LV Write Access        read/write
  LV Creation host, time ,
  LV Status              available
  # open                 0
  LV Size                921.08 GiB
  Current LE             235797
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:0

$ sudo vgdisplay bubba
  --- Volume group ---
  VG Name               bubba
  System ID
  Format                lvm2
  Metadata Areas        1
  Metadata Sequence No  2
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                1
  Open LV               0
  Max PV                0
  Cur PV                1
  Act PV                1
  VG Size               921.08 GiB
  PE Size               4.00 MiB
  Total PE              235797
  Alloc PE / Size       235797 / 921.08 GiB
  Free  PE / Size       0 / 0
  VG UUID               1AHmxk-we3d-86Ji-UxJ1-jO35-ViDm-swxwRT

$ sudo lvmdiskscan
  /dev/ram0          [      64.00 MiB]
  /dev/bubba/storage [     921.08 GiB]
  /dev/ram1          [      64.00 MiB]
  /dev/sda1          [     294.09 GiB]
  /dev/ram2          [      64.00 MiB]
  /dev/ram3          [      64.00 MiB]
  /dev/ram4          [      64.00 MiB]
  /dev/ram5          [      64.00 MiB]
  /dev/sda5          [       4.00 GiB]
  /dev/ram6          [      64.00 MiB]
  /dev/ram7          [      64.00 MiB]
  /dev/ram8          [      64.00 MiB]
  /dev/ram9          [      64.00 MiB]
  /dev/ram10         [      64.00 MiB]
  /dev/ram11         [      64.00 MiB]
  /dev/ram12         [      64.00 MiB]
  /dev/ram13         [      64.00 MiB]
  /dev/ram14         [      64.00 MiB]
  /dev/ram15         [      64.00 MiB]
  /dev/sdf1          [       9.32 GiB]
  /dev/sdf2          [     921.09 GiB] LVM physical volume
  /dev/sdf3          [       1.10 GiB]
  1 disk
  20 partitions
  0 LVM physical volume whole disks
  1 LVM physical volume

Terminando com

$ sudo mount /dev/bubba/storage /mnt/usb
mount: wrong fs type, bad option, bad superblock on /dev/mapper/bubba-storage,
       missing codepage or helper program, or other error

       In some cases useful info is found in syslog - try
       dmesg | tail or so.
$ dmesg | tail -n 15
[ 1108.474708] sd 5:0:0:0: [sdf] tag#0 FAILED Result: hostbyte=DID_ERROR driverbyte=DRIVER_SENSE
[ 1108.474717] sd 5:0:0:0: [sdf] tag#0 Sense Key : Hardware Error [current]
[ 1108.474722] sd 5:0:0:0: [sdf] tag#0 Add. Sense: No additional sense information
[ 1108.474729] sd 5:0:0:0: [sdf] tag#0 CDB: Read(10) 28 00 01 2a 55 41 00 00 38 00
[ 1108.474734] blk_update_request: I/O error, dev sdf, sector 19551553
[ 1250.060801] sd 5:0:0:0: [sdf] tag#0 FAILED Result: hostbyte=DID_ERROR driverbyte=DRIVER_SENSE
[ 1250.060810] sd 5:0:0:0: [sdf] tag#0 Sense Key : Hardware Error [current]
[ 1250.060815] sd 5:0:0:0: [sdf] tag#0 Add. Sense: No additional sense information
[ 1250.060822] sd 5:0:0:0: [sdf] tag#0 CDB: Read(10) 28 00 01 2a 55 41 00 00 38 00
[ 1250.060827] blk_update_request: I/O error, dev sdf, sector 19551553
[ 1365.599683] sd 5:0:0:0: [sdf] tag#0 FAILED Result: hostbyte=DID_ERROR driverbyte=DRIVER_SENSE
[ 1365.599692] sd 5:0:0:0: [sdf] tag#0 Sense Key : Hardware Error [current]
[ 1365.599696] sd 5:0:0:0: [sdf] tag#0 Add. Sense: No additional sense information
[ 1365.599703] sd 5:0:0:0: [sdf] tag#0 CDB: Read(10) 28 00 01 2a 55 41 00 00 38 00
[ 1365.599709] blk_update_request: I/O error, dev sdf, sector 19551553
Estou certo em concluir que é improvável que consiga montar ou recuperar qualquer coisa deste disco - ou há outras coisas que eu poderia tentar?

    
por RedGrittyBrick 28.06.2017 / 00:25

1 resposta

0

Recuperação

Consegui extrair arquivos da partição LVM sem montá-los instalando a ferramenta de recuperação testdisk

Algo como

sudo apt install testdisk

então

sudo testdisk /dev/bubba/storage

Aceitei os valores padrão sugeridos pelo testdisk (tipos de partição, etc.).

Isso apresenta uma interface de usuário textual (TUI) que permite navegar até o diretório que contém meus dados e copiar seu conteúdo para uma unidade na área de trabalho. PC.

Ele relatou erros em uma pequena porcentagem (por exemplo, 50 de 50000) de arquivos. Os arquivos recuperados são legíveis por arquivos mbox - embora existam arquivos com conteúdo duplicado idêntico. Possivelmente devido à maneira como o dovecot gerencia o espaço em disco ou talvez os artefatos da maneira como o testdisk recupera dados, eles não se parecem com o tipo de reticulação que eu já vi com a corrupção do sistema de arquivos.

Eu considero isso um sucesso, agora posso investigar como mesclar os arquivos que recuperei com o que consegui restaurar de um backup e eliminar duplicatas. Eu deveria ser capaz de produzir um conjunto de arquivos que eu possa usar com um backend de e-mail ou aplicativo frontend.

Eu não tenho nenhuma conexão com o testdisk além de um novo usuário da ferramenta.

Resumo

  • remover disco do sistema morto
  • conecte o disco ao Ubuntu PC recém-instalado
  • instale o LVM e tente montar o sistema de arquivos
  • instale o testdisk e use-o para copiar pastas para o Ubuntu PC
por RedGrittyBrick 29.06.2017 / 10:39