Excluí acidentalmente as partições do meu disco de inicialização. O sistema ainda está em execução. Como posso me recuperar?

Excluí acidentalmente as partições do meu disco de inicialização. O sistema ainda está em execução. Como posso me recuperar?

Acabei de limpar acidentalmente todas as partições do disco errado.

/dev/sdaé o disco de inicialização e /dev/sdbé um novo disco que estou tentando configurar como espelho RAID.

Eu acidentalmente engordei e acabei excluindo a tabela de partições em /dev/sda, em vez de /dev/sdb.

O sistema ainda está funcionando, então está sendo executado em uma tabela de partição em cache em algum lugar.

Posso recuperar a tabela de partições, ou pelo menos visualizá-la, para poder recriar as partições exatamente onde estavam?

fdisk /dev/sda -lnão produz partições.

Sim, me sinto inteligente

Responder1

O kernel mantém a tabela de partições em cache permanentemente (a menos que seja explicitamente solicitado a recarregar, e isso não pode ser feito se algumas das partições estiverem em uso). Portanto, você estará seguro até reiniciar (ou dizer ao kernel para operar com dados que não refletem o verdadeiro conteúdo do disco; por exemplo, se você já ativou o mdraid, ele pode já ter gravado seus metadados no disco).

Se você tem umatualizadobackup do seu setor de inicialização (os primeiros 512 bytes), você pode restaurá-lo ( cat boot-sector-backup >/dev/sda- verifique se o tamanho do arquivo que você está restaurando é exatamente 512 bytes). A instalação do seu bootloader pode ter criado um backup do setor de inicialização, mas se ele tiver sido atualizado ou você tiver reparticionado desde então, ele não estará atualizado. Não restaure um backup que possa estar obsoleto.

As informações do kernel sobre as partições podem ser acessadas através do /sys/class/block/sda/sda*. No diretório de cada partição ( sda1, sda2, etc.):

  • startcontém o deslocamento do início da partição, em setores de 512 bytes.
  • sizecontém o tamanho da partição, em setores de 512 bytes (exceto para a partição estendida).

Se você tiver partições com número 5 ou superior, elas são partições lógicas (consulteQual é a diferença entre partição "estendida" e partição "lógica"), contido dentro de uma partição estendida. Existe uma única partição estendida (ou nenhuma) e é uma das partições 1–4. O arquivo sizenão contém o tamanho da partição estendida, então primeiro você precisa determinar isso; deve ser grande o suficiente para caber todas as partições lógicas e não deve abranger nenhuma partição primária (as outras partições são numeradas de 1 a 4).

Correr fdisk /dev/sda. Use upara mudar a unidade para setores. Crie as partições ( n) com o deslocamento e tamanho corretos (como diz o prompt, coloque +antes do número de setores no que diz respeito ao tamanho), começando pela partição estendida.

Use ppara verificar se a tabela de partição está correta. Se algumas dessas partições não forem partições de dados do Linux, use tpara definir seu tipo ( 82para Linux swap, cpara uma partição Windows FAT32, 7para uma partição Windows NTFS). Se você tiver uma partição DOS/Windows inicializável, defina seu sinalizador inicializável ( a).

Verifique novamente se a saída está correta e pressione wpara enviar a nova tabela para o disco.

Salve o conteúdo de /sys/class/block/sda/ in a tar archive on a USB stick. Then reboot from a removable media. **After rebooting, if the partition table you created is not correct, you risk massive data corruption**. So from the removable media, runfsck -n (don't forget the-n ) to check the consistency of the filesystems on each partition (don't usemount`, que só funcionaria se o deslocamento estivesse correto e poderia danificar o disco (mesmo no modo somente leitura, porque gravaria o diário) se o deslocamento estivesse correto, mas não o tamanho ).

Se o fsck não encontrar nenhum sistema de arquivos, você errou no deslocamento de uma partição. Se relatar erros, é provável que você tenha errado o tamanho da partição.Contanto que você não tenha gravado no disco, você ainda pode corrigir a tabela de partições. Quando você não tiver nenhuma partição do disco montada, pressionar wfará fdiskcom que o kernel releia a tabela de partições. Depois de acertar as partições, você poderá reinicializar o sistema normal e continuar normalmente.

Responder2

partedeve ajudá-lo, mesmo se você tiver reiniciado.

informação relacionada