Ctrl-D prompt, incapaz de inicializar o sistema Linux, após o encolhimento do dispositivo de bloco sem o encolhimento do sistema de arquivos

1

Eu queria encolher o sistema de arquivos e infelizmente perdi um passo:

Sem redimensionar o sistema de arquivos antes, reduzi o volume lógico.

O resultado foi que o sistema não está inicializando mais e me dando uma mensagem de que o sistema de arquivos está corrompido.

[root@node2 ~]# mount -a
   mount: wrong fs type, bad option, bad superblock on /dev/mapper/vgprod-prod,
   missing codepage or helper program, or other error

   In some cases useful info is found in syslog - try
   dmesg | tail or so.

[root@node2 ~]# e2fsck -f /dev/mapper/vgprod-prod
   e2fsck 1.42.9 (28-Dec-2013)
   Error reading block 65536 (Invalid argument).  Ignore error<y>? yes
   Force rewrite<y>? yes
   Superblock has an invalid journal (inode 8).
   Clear<y>? yes
   *** ext3 journal has been deleted - filesystem is now ext2 only ***

   Superblock has_journal flag is clear, but a journal inode is present.
   Clear<y>? yes
   The filesystem size (according to the superblock) is 115712 blocks
   The physical size of the device is 64512 blocks
   Either the superblock or the partition table is likely to be corrupt!
   Abort<y>? yes
   Error writing block 65536 (Invalid argument).  Ignore error<y>? yes

   /dev/mapper/vgprod-prod: ***** FILE SYSTEM WAS MODIFIED *****

Por favor me avise como corrigir os problemas.

    
por Raj 04.12.2016 / 14:03

1 resposta

2

Antes de fazer qualquer alteração que possa causar muitos danos, faça uma cópia setor por setor do volume físico (como em: dd if=/dev/sdXY of=/path/to/safe/place.img ) em seu estado atual e armazene-o em algum lugar inalterado. Use pvdisplay para saber qual partição copiar. Se o pior acontecer (sistema de arquivos muito danificado para entender seu conteúdo), você ainda poderá usar o testdisk (se o sistema de arquivos residia em sua partição LVM em um bloco contíguo):

  1. executar testdisk /path/to/image.img
  2. selecione "Mídia não particionada": testdisk não sabe como escrever o LVM, mas ainda lerá as informações das partições que encontrar
  3. use "Analisar" para procurar sua partição; use "Deeper search" se o seu sistema de arquivos não for encontrado
  4. Use P para listar arquivos, então : / a para selecionar e c / C para copiar seu arquivos.

Supondo que sua partição LVM com falha não hospeda seus rootfs, faça um backup do diretório /etc/lvm também. Se a partição hospedou seus rootfs, talvez seus backups anteriores contenham esse diretório? Nós precisaremos disso. Se tudo mais falhar, talvez ainda seja possível encontrar o conteúdo dos arquivos de /etc/lvm/ usando um editor hexadecimal e pesquisar por string description = , supondo que eles não estejam fragmentados, mas isso é um processo muito longo.

Se você ainda estiver no shell initramfs e não tiver espaço HDD livre suficiente para a imagem, com sorte (usb-storage e outros módulos presentes no initramfs) você poderá montar um USB-HDD:

  1. conecte a unidade, aguarde alguns segundos até que ela gire
  2. as mensagens do kernel provavelmente serão exibidas para você, caso contrário, execute: dmesg | tail
  3. procure linhas que pareçam [ 8391.759613] sd 6:0:0:0: [sdX] 15826944 512-byte logical blocks: (8.10 GB/7.55 GiB) (compare o tamanho para certificar-se de que sdX é seu USB-HDD) e [ 8391.770279] sdX: sdX1 (com sdX1 ... sdXn sendo a lista de partições)
  4. executar:

    mkdir -p /mnt/usb-hdd # ensure existing mountpoint
    mount /dev/sdXN /mnt/usb-hdd # substitute X for the drive letter and N for the partition number from (3)
    
  5. escreva a imagem de backup e / ou copie o /etc/lvm backup restaurado de /mnt/usb-hdd

  6. não se esqueça de desmontar o thumbdrive depois de terminar: umount /mnt/usb-hdd

Feito isso, dê uma olhada no seu presente /etc/lvm/backup e /etc/lvm/archive obtido do rootfs ou dos seus backups. Pode haver metadados de backup criados antes de você executar lvresize , o que causou todo esse dano. Procure nos arquivos dentro desses diretórios por uma linha começando com description = . Tente grep description .../etc/lvm/*/* para listar descrições; Se você ainda estiver no shell initramfs, use less , more ou, se não, cat e Shift + PgUp / Shift + PgDn para visualizar arquivos de texto. Existe um arquivo com Created *before* executing 'lvresize -l <something> /dev/vgprod/prod' ? Execute vgcfgrestore -f /etc/lvm/archive/<suitable archive file> vgprod para restaurar os metadados para seus valores anteriores e tente montar /dev/vgprod/prod posteriormente.

Em tais sutuações você deve evitar fazer qualquer tipo de fsck antes de ter copiado seus arquivos com sucesso e verificado que eles são seguros ou fez uma imagem da sua partição que você tem certeza que é capaz de restaurar. fsck em um sistema de arquivos truncado provavelmente piorará as coisas.

    
por 04.12.2016 / 14:33