Una opción que nos puede salvar la vida en un determinado momento sería la de clonar el disco en el que trabajemos, antes de ponernos a hacer 'animaladas'; mediante este truco podemos hacerlo de forma sencilla:
Para ello utilizaremos el comando 'cat', lo que hará cat en este caso es copiar bit a bit todo lo que encuentre en el disco y compilarlo en una imagen:
# cat /dev/ad0 > /mnt/baskup/imagen
En Linux sería:
# cat /dev/hda > /mnt/backup/imagen
Si quisiéramos sólo hacer la imagen de una partición, pues lo propio:
# cat /dev/ad0s1a > /mnt/backup/imagen
Luego, para restaurarlo podemis arrancar con un Live CD, montar las unidades y restaurar (esto incluye la tabla de particiones y el mbr) de la siguiente manera:
# cat imagen > /dev/ad0
Algo más que recomendable después de hacer la imagen sería el comprimir esta imagen por ejemplo con bzip2:
# bzip2 -9 /mnt/backup/imagen.bz2
Aunque también nos podemos ahorrar el paso haciendo esto:
# cat /dev/ad0 | bzip2 > /mnt/backup/imagen.bz2
Nota:
Las unidades cambiarán, evidentemente, Ej.: /dev/ad0 - /dev/ad1 - /dev/hda - /dev/hdb (Gracias Sharek, por la inspiración)
La clonación con el cat, es algo que vengo haciendo hace tiempo con excelentes resultados, pero hace poco se me ha presentado una situación a la que de momento, por mi inexperiencia, no soy capaz de dar solución. Cuando clonas una partición es sencillo montarla después desde la imagen que has creado, ¿pero y cuando clonas el dispositivo completo? ¿como puedes montar sus particiones desde el archivo imagen? ¿Alguien con una ayudita guardada en el bolsillo?
Para montar particiones dentro de una imagen de disco deberás calcular el offset de la partición, para eso hay una fórmula muy interesante:
( tamaño sector * sectores por pista ) +1 = offset en bytes de partición
Se suma 1, pq el primer sector del disco está reservado para el MBR y como el conteo se hace por pistas, se pieden los primeros...32256 byte (nada despreciables 32Kb
Puedes obtener el tamaño de sectores y los sectores por pista con un fdisk -l o un cfdisk, y luego echar mano de la calculadora (bc)
Luego usando la opción -o del mount "-o loopback,offset=XXXX" para decirle a mount que ignore los primeros X bytes
así podrás montar cualquier partición de una imagen de disco 🙂
Aqui tienes un ejemplo patatero de como montar la primera partición
http://wiki.archlinux.org/index.php/Qemu#Mounting_the_hard_disk_image
1???
Cuando haces un "fisk -l imagen_fichero" ya te indica el principio de la particion, y el offset será el principio de la partición por tal como indicas 32256 (que resulta de 63 sectors/track por 512 que es el tamaño del sector), pero sin sumarle un 1!!! ya que el principio de la partición contempla el espacio usado por el mbr. Un ejemplo:
[root@Ragnarok machines]# fdisk -l niflheim
Disk niflheim: 0 MB, 0 bytes
255 heads, 63 sectors/track, 0 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
niflheim1 * 1 956 7679038 83 Linux
niflheim2 957 1044 706860 82 Linux swap / Solaris
[root@Ragnarok machines]# mount -o loop,offset=$((1*32256)) niflheim /home/nose
Otra opción a mi gusto más clara y sencilla es usar "fisk -l -u", (el -u muestra la información en cilindros en lugar de sectores) y quedaría de la siguiente forma:
[root@Ragnarok machines]# fdisk -l -u niflheim
Disk niflheim: 0 MB, 0 bytes
255 heads, 63 sectors/track, 0 cylinders, total 0 sectors
Units = sectors of 1 * 512 = 512 bytes
Device Boot Start End Blocks Id System
niflheim1 * 63 15358139 7679038 83 Linux
niflheim2 15358140 16771859 706860 82 Linux swap / Solaris
[root@Ragnarok machines]# mount -o loop,offset=$((63*512)) niflheim /home/nose
Y paso de mirarme un enlace!!! El mundo está lleno de enlaces que la gente te dice que sigas para acabar llegando a ninguna parte o a un sitio todavía peor del que provienes. Por no comentar la perdida de la información, que tiende a convertirse en un enlace en si misma, sin aportar valor alguno y haciendo olvidar lo que verdaderamente buscabas...
No había pensado en que fdisk ya lo tenía en cuenta, lo hice de cabeza
fDisk tiene en cuenta muuuuuuuuuuuuuuuuchas cosas.....
(no he podido evitarlo)
😀
yo también lo pensé! >XDDDDDDDDDD pero luego dije "bahhh no hagas el tonto" hahahhahah
ains.... si no fuera por estos momentos ... :''')