
Acabei de substituir minha tabela de partições do disco rígido do meu sistema. fiz um cfdisk
no dispositivo errado ( /dev/sda
em 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 dd
backup de todo o dispositivo e pretendo fazer um .tar.gz
backup 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 start
para size
cada partição.
Evite um erro off-by-one - subtraia um 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 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...