Escrito originalmente por SickBoy
El problema es el siguiente: tengo que hacer un backup de un disco duro en varios cds de 700Mb. Puedo crear una imagen del disco duro y comprimirla y me termina ocupando unos 5 Gb lo cual no puedo meter en un Cd.
¿Hay alguna forma de partir el archivo en trozos?
y lo que sería mejor
¿Hay alguna forma de comprimirlo en varios volúmenes directamente para no necesitar tanto espacio en HD como si lo hiciera en dos partes?
Yo en tu caso usaría lo siguiente lo siguiente:
tar para empaquetar.
bzip2 para comprimir.
split para trocear.
Por ejemplo, si quisiese comprimir una partición que monto en el subdirecto /mnt/backup y obtener trocitos de 700 Mb haría así:
$ ( cd /mnt/backup ; tar cvf - . ) | ( cd /aquí_dejo_los_trocitos ; bzip2 | split -b734003200 - backup. )
Ese número de 734.003.200 son 700 Mb en bytes. Ten en cuenta los puntos y las rayas que he puesto: no son gratuitas. Haciendo esto deberías obtener:
backup.aa
backup.ab
backup.ac
etc...
Supongo que también valdría usar la opción "j" de tar que simplifica un poco la cosa:
$ tar jcvf - /mnt/backup | split -b734003200 - backup.
O quizás tú estás pensando en hacer la copia a bajo nivel con "dd". En ese caso es la misma idea: la salida de dd se la pasas con una tubería a bzip2 y la de bzip2 con otra a split. Vamos que con un par de estas acabamos tú y yo de fontaneros expertos...
Por cierto, haz una prueba de lo que te he dicho antes de probar con los cinco gigas... yo no la he hecho.
Añado un par de cosas que se me pasaron por alto:
La opción -b admite modificadores para indicar la unidad de medida. Así que queda más elegante "-b700m" en vez de "-b734003200".
No te he dicho cómo volver a unirlos:
(cat backup.* | bzip2 -d ) | ( cd /aquí_lo_descomprimo | tar xvfp -)