reparar tabela de partição

reparar tabela de partição

Acabei de substituir minha tabela de partições do disco rígido do meu sistema. fiz um cfdiskno dispositivo errado ( /dev/sdaem vez de /dev/sdd), excluí todas as partições, fiz um novo primário abrangendo todo o dispositivo, configurei seu tipo para 07(NTFS) e cliquei write.

Então aqui estou eu com meu sistema funcionando. Até eu reiniciar, espero/acho que nada mudará - ou seja: todos os meus dados estão acessíveis (atualmente estou fazendo um ddbackup de todo o dispositivo e pretendo fazer um .tar.gzbackup dos dados mais importantes posteriormente). Eu também fiz backup de /proc/partitions, /proc/diskstats(embora eu ache que isso é mais sobre taxa de transferência e coisas assim ...) e /sys/block/sda/sda?/{start,size}.

Mais algumas coisas que eu sei:

  • 4 partições primárias
  • 1ª partição: ~100Mb, ext3, /boot
  • 2ª partição: ~100Mb, "Partição de inicialização Win7", NTFS(?)
  • 3ª partição: ~20...30GB, Win7, NTFS
  • 4ª partição: ~20...30GB, dispositivo criptografado luks
  • O lu-dedispositivo criptografado é um LVM-PV
  • As partições /, /home& swap- são todas LVs no (VG no) PV mencionado acima

Então, minhas perguntas:

  • Qual é a maneira mais simples de gravar a tabela de partição do kernel no disco?
  • Qual é a maneira mais simples de pegar os dados mencionados acima (e talvez outros que não conheço ...) e gerar a tabela de partições?
  • Há algum problema para resolver em relação ao luks e/ou lvm?
  • Há algum dado que eu deva fazer backup antes de reiniciar (significando coisas do kernel [ /sys/..., /proc/...] e assim por diante, o que poderia me ajudar a regenerar a tabela de partições)?

Responder1

Não é muito complicado. Esperançosamente.

Primeiro de tudo, observe o tamanho e a ordem de todas as suas partições em /dev/sda:

challenger:/home/michael # grep . /sys/block/sda/sda*/{start,size}
/sys/block/sda/sda1/start:63
/sys/block/sda/sda2/start:228690000
/sys/block/sda/sda3/start:257040
/sys/block/sda/sda1/size:256977
/sys/block/sda/sda2/size:83885760
/sys/block/sda/sda3/size:228432960

Execute fdisk em /dev/sda e altere as unidades para setores:

Command (m for help): u
Changing display/entry units to sectors

Então comece a fazer partições. Use os números apropriados startpara sizecada partição.
Evite um erro off-by-one - subtraia um sizeantes de digitá-lo no fdisk.

Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4)
p
Partition number (1-4): 1
First sector (63-312581807, default 63): 
Using default value 63
Last sector, +sectors or +size{K,M,G} (63-312581807, default 312581807): +256976

Command (m for help): p

Disk /dev/sda: 160.0 GB, 160041885696 bytes
255 heads, 63 sectors/track, 19457 cylinders, total 312581808 sectors
Units = sectors of 1 * 512 = 512 bytes
Disk identifier: 0x02b002af

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1              63      257039      128488+  83  Linux

Não se esqueça de definir seus IDs de partição e alternar o sinalizador de inicialização na partição correta

Agora reinstale seu MBR e você estará pronto para começar.


Naturalmente você pode fazer tudo isso usando seu editor de partições favorito... o parted também funciona bem.

Se você perdeu as informações sobre o início/fim das partições - o parted tem opções de 'resgate' para procurar partições perdidas no disco. Mas você não deveria precisar disso.

Responder2

Se a tabela de partição estiver danificada, sugiro usar um disco de inicialização do RIP (o resgate é possível no Linux) para executar o testdisk. Caramba, você pode executar o testdisk em seu sistema em execução para que ele verifique e recupere partições, mas eu não tentaria isso porque não sei o que isso faria com um sistema em execução com arquivos abertos.

Se você quiser tentar fazer um backup dos dados essenciais (ainda não o tem?) agora seria um bom momento para fazê-lo...

informação relacionada