reparar tabela de partições

4

Acabei de substituir minha tabela de partições do disco rígido do meu sistema. Eu fiz um cfdisk no dispositivo errado ( /dev/sda em vez de /dev/sdd ), deletei todas as partições, fiz uma nova distribuição primária em todo o dispositivo, configurei seu tipo para 07 (NTFS) e pressione write .

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

Algumas outras coisas que eu conheço:

  • 4 partições primárias
  • 1ª partição: ~ 100Mb, ext3, / boot
  • 2a partição: ~ 100Mb, "Partição de inicialização do Win7", ntfs (?)
  • 3ª partição: ~ 20 ... 30 GB, Win7, NTFS
  • 4ª partição: ~ 20 ... 30GB, dispositivo encriptado luks
  • O dispositivo cryeds de crypted é um LVM-PV
  • O / , /home & swap -partitions são todos LVs no (VG no) acima PV observado

Então, minhas perguntas:

  • Qual é a maneira mais simples de escrever a tabela de partições de kernels no disco?
  • Qual é a maneira mais simples de obter os dados mencionados acima (e talvez outros de que eu não conheço ...) e gerar a tabela de partições?
  • Existe algum problema para cuidar de luks e / ou lvm?
  • Existe algum dado que eu deveria fazer backup antes de reinicializar (coisas importantes do kernel [/ sys / ..., / proc / ...] e assim por diante, o que poderia me ajudar a regenerar a tabela de partições)?
por m.sr 31.05.2010 / 19:01

2 respostas

4

Não é muito complicado. Esperançosamente.

Em primeiro lugar, 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 o fdisk em / dev / sda e altere as unidades para setores:

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

Em seguida, comece a criar partições. Use os números apropriados start e size para cada partição.
Evite um erro off-by-one - subtraia um de size antes 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 à direita

Agora reinstale seu MBR e você estará pronto para usar.

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

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

    
por 31.05.2010 / 19:54
1

Se a tabela de partições estiver danificada, sugiro usar um disco de inicialização do RIP (rescue is possible Linux) para executar o testdisk. Heck, você pode ser capaz de executar o testdisk do seu sistema em execução para que ele escaneie e recupere partições, mas eu não tentaria isso porque não sei o que ele faria com um sistema em execução com arquivos abertos.

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

    
por 31.05.2010 / 19:31