![reparar tabla de particiones](https://rvso.com/image/515024/reparar%20tabla%20de%20particiones.png)
Acabo de sobrescribir la tabla de particiones del disco duro de mi sistema. Hice un cfdisk
en el dispositivo equivocado ( /dev/sda
en lugar de /dev/sdd
), eliminé todas las particiones, hice una nueva primaria que abarca todo el dispositivo, configuré su tipo en 07
(NTFS) y presioné write
.
Así que aquí estoy con mi sistema funcionando. Hasta que reinicie, espero/supongo que nada cambiará, es decir: todos mis datos son accesibles (actualmente estoy haciendo una dd
copia de seguridad de todo el dispositivo y planeo hacer una .tar.gz
copia de seguridad de los datos más importantes más adelante). También hice una copia de seguridad /proc/partitions
( /proc/diskstats
aunque supongo que se trata más de rendimiento y cosas como esta...) y /sys/block/sda/sda?/{start,size}
.
Algunas cosas más que sé:
- 4 particiones primarias
- 1.ª partición: ~100 Mb, ext3, /boot
- Segunda partición: ~100 Mb, "Partición de arranque Win7", ntfs(?)
- Tercera partición: ~20...30GB, Win7, ntfs
- 4.ª partición: ~20...30 GB, dispositivo cifrado con luks
- los luks-DelawareEl dispositivo cifrado es un LVM-PV.
- Las particiones
/
,/home
&swap
son todas LV en el (VG en) el PV indicado anteriormente.
Entonces mis preguntas:
- ¿Cuál es la forma más sencilla de escribir la tabla de particiones del kernel en el disco?
- ¿Cuál es la forma más sencilla de tomar los datos mencionados anteriormente (y quizás otros que no conozco...) y generar la tabla de particiones?
- ¿Hay algún problema que solucionar con respecto a luks y/o lvm?
- ¿Hay algún dato que deba respaldar antes de reiniciar (es decir, cosas del kernel [ /sys/..., /proc/...] y demás, que podrían ayudarme a regenerar la tabla de particiones)?
Respuesta1
No demasiado complicado. Con un poco de suerte.
En primer lugar, observe el tamaño y el orden de todas sus particiones en /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
Ejecute fdisk en /dev/sda y cambie las unidades a sectores:
Command (m for help): u
Changing display/entry units to sectors
Luego comienza a hacer particiones. Utilice los números adecuados start
y size
para cada partición.
Evite un error uno por uno: reste uno size
antes de escribirlo en 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
No olvide configurar los ID de su partición y alternar el indicador de inicio en la partición derecha
Ahora reinstale su MBR y debería estar listo para comenzar.
Naturalmente, puedes hacer todo esto usando tu editor de particiones favorito... parted también funciona bien.
Si ha perdido la información sobre el inicio/final de las particiones, parted tiene opciones de "rescate" para buscar particiones perdidas en el disco. Pero no deberías necesitarlos.
Respuesta2
Si la tabla de particiones está dañada, sugeriría usar un disco de arranque de RIP (el rescate es posible en Linux) para ejecutar testdisk. Diablos, es posible que puedas ejecutar testdisk desde tu sistema en ejecución para escanear y recuperar particiones, pero no lo intentaría porque no sé qué le haría a un sistema en ejecución con archivos abiertos.
Si quieres probar una copia de seguridad de datos esenciales (¿aún no la tienes?), ahora sería un buen momento para hacerlo...