Eu conheço três maneiras de fazer o que você quer, considerando sua situação atual:
Método 1: Fácil, mas arriscado e lento
O primeiro método é usar o TestDisk, que pode escanear um disco para dados do sistema de arquivos e gerar novas entradas na tabela de partições para Combine o que encontrar. Essa abordagem é relativamente automatizada e, portanto, fácil; mas as ferramentas devem digitalizar muito do disco, o que pode demorar um pouco. Pior, o TestDisk pode ser lançado por dados dispersos de partições antigas que você excluiu, produzindo resultados ruins. Assim, há uma chance de que o TestDisk gere uma tabela de partições completamente errada; ou pode lhe dar várias opções sobre o que recuperar, e você pode não conseguir decidir o que está correto.
Embora o TestDisk possa recuperar pontos de início e de término da partição e provavelmente definirá o código do tipo de partição corretamente, ele não poderá restaurar o GUID original da partição. Isso pode ser importante para a inicialização, conforme observado na próxima seção.
Observe que o TestDisk (ou alguma ferramenta semelhante; não é o único nessa categoria) se tornará sua única opção quando você desligar ou reinicializar o computador.
Método 2: Mais difícil, mas mais seguro e rápido
Como seu kernel ainda está usando a tabela de partição antiga, os dados nas suas partições ainda podem ser recuperados da memória. A questão é como fazer isso, e a resposta é procurar na árvore de diretórios /sys/block/sda
. Esse diretório deve ter subdiretórios para cada partição ( sda1
, sda2
e assim por diante) e cada um desses diretórios possui um arquivo start
e um size
com o local inicial e o tamanho da partição, em setores . Por exemplo:
$ cat /sys/block/sda/sda2/start
1126440
$ cat /sys/block/sda/sda2/size
1536000
Isso indica que, no meu sistema, /dev/sda2
começa no setor 1126440 e tem 1536.000 setores em tamanho. Você pode extrair essas informações e, usando gdisk
, recriar a tabela de partição - ou, pelo menos, criar partições com os tamanhos corretos. Você precisará usar seu conhecimento do que está em cada partição para definir seus códigos de tipo. AFAIK, não há como recuperar os valores do GUID (o mesmo vale para a abordagem anterior). O valor GUID do ESP pode ser importante, já que é provável que seja usado pelo EFI como parte de seu processo de inicialização. Você deve conseguir extrair isso da sudo efibootmgr -v
output - ela será incorporada na string que faz parte da linha ubuntu
. Você pode usar gdisk
para alterar esse valor depois de recriar o ESP - use a opção c
no menu de especialistas.
Método 3: Melhor e mais fácil, mas você provavelmente não pode fazer isso
A melhor e mais fácil maneira de fazer o que você quer é restaurar a tabela de partições a partir de um backup. A ferramenta gdisk
oferece uma opção b
no menu principal para criar um backup desse tipo. Se você tivesse feito isso, você poderia restaurar o backup com a opção l
(letra minúscula "L") na recuperação & menu de transformação.
A restauração de um backup dessa maneira restaurará todos os dados da tabela de partição da maneira que estava quando o backup foi feito. Isso inclui valores de GUID, nomes de partições e, claro, tamanhos de partições. É concebível que você tenha feito tal backup, mas tenha esquecido. Se sim, use-o. Se não, no entanto, isso não lhe trará nenhum benefício, a não ser que você saiba agora sobre essa opção e possa estar motivado para fazer um backup para uso no futuro.