Home » Tecnología » Imágenes de disco en MacOS X: asr

Imágenes de disco en MacOS X: asr

Publicado en: Tecnología 2

Hola afición!

Hace un par de años os comentaba que la mejor y más fiable forma de hacer una imagen de disco en MacOS X y luego recuperarla era con el comando ‘asr‘ del sistema 10. Y nunca seguí contándoos cómo se hacía.

Ha llegado el momento. Este método es 100% fiable, rápido y seguro. Si no el mejor, apenas hay interfaz gráfica, si el que te da mayor control sobre lo que haces, sobre la máquina.

A grandes rasgos, se trata de hacer una imagen del disco duro con la ‘Utilidad de Discos’ que incorpora OS X y montarla con ‘asr‘ un comando UNIX que Apple incorpora con su distribución de BSD. En todo momento nos
ayudaremos de un tercer sistema operativo en una partición diferente o en un disco externo.


Comencemos por lo primero. Preparemos un poco el material que necesitamos.

– Sistema operativo adicional (en partición o en disco externo)
– Utilidad de Disco
– Terminal
– Scripts de shell (nos ayudarán a rematar bien el trabajo, de Alain Andrieux)

Todo nos lo proporciona el propio sistema operativo.
Tenemos que tener a mano un sistema OS X en un disco externo o en otra partición diferente sobre la que vamos a hacer la imagen. Para que la imagen no tenga errores y los archivos no estén abiertos a la hora de copiarlo debemos parar ese sistema, de ahí la necesidad de tener un sistema operativo aparte.

Arrancamos con la otra partición o el disco externo, según donde tengamos este sistema instalado.

Abrimos la aplicación ‘Utilidad de Discos’ ( /Applications/Utilities/Disk\ Utility.app/ ). En el menú lateral seleccionamos el disco duro del que queremos hacer una imagen. Con el disco seleccionado, hacemos click sobre ‘Nueva Imagen’ del menú superior, esto nos muestra una ventana para guardar la imagen del disco duro. Le damos un nombre, sin escribir la extensión, por ejemplo PowerBookG415 que sería para el disco duro de mi portátil.
Elegimos un destino dentro del disco duro desde donde hemos arrancado, o donde tengamos sitio, podría ser el mismo disco duro del que vamos a hacer una imagen, no hay problema, pero mejor lo hacemos sobre otra partición, vale?
En ‘Formato de la imagen’ seleccionamos ‘Comprimido’ para que incluso nos pueda caber en un DVD y guardarlo como backup.
En ‘Encriptación’ elegimos ‘ninguna’.
Y guardamos.

Este es el proceso más largo. Puede tardar media hora para un sistema únicamente con aplicaciones básicas y el propio sistema, o más tiempo dependiendo del tamaño de nuestro disco duro 😉

Una vez que tenemos la imagen hecha podemos guardarla para siempre.

Esta imagen que hemos creado sirve para cualquier máquina con las mismas especificaciones técnicas. No es válida para otro hardware. Esto quiere decir que si hago la imagen a un PowerBook G4 1.5 no le puedo instalar esa imagen de sistema a un iBook G4, ni a un MacBook, ni tampoco a PowerBook G4 800.

Ahora vamos con el procedimiento de montar de nuevo la imagen. El más corto y gratificante. En 5 minutos lo tendremos listo, con todos los ajustes en el momento en que hicimos la imagen a nuestro sistema.

Lo primero de todo es montar la imagen (.dmg) del disco duro que vamos a restaurar. Le hacemos doble click y se montará sobre el escritorio.

asr, Apple Software Restore
Usaremos el el comando de UNIX que Apple nos proporciona y que ya comenté ligeramente en estos dos temas:

asr – Apple Software Restore
asr – Apple Software Restore (man)
asr se ejecuta de la interfaz de comandos (CLI, command line interface) y en el OS X tenemos la más agradable y cómoda consola de comandos, el Terminal, que nos permite copiar y pegar, arrastrar objetos sobre la ventana de comandos… es genial.

Abrimos la aplicación ‘Terminal’ ( /Applications/Utilities/Terminal.app/ ) y escrbimos el siguiente comando y sus opciones, que explico poco a poco más abajo.

Nota: shell significa interfaz de comandos, esto en OS X suele ser una línea con el nombre de nuestra máquina, nuestro nombre de usuario, y el símbolo del dólar, desde donde empezamos a escribir, en mi máquina es: ‘pb15:~ nico$‘. Cuando escribais el comando… shell no se escribe 😉

shell> sudo asr -source /ruta/imagen/disco/origen -target /ruta/disco/duro/destino -nocheck -erase

sudo ejecutamos ‘asr’ como super usuario, el sistema nos pedirá la contraseña de administrador de la máquina. Normalmente es el primer usuario que tenemos configurado en nuestro equipo o cualquier otro con permisos de adminsitrador.

asr el comando que ejecutamos. Si escribes ‘man asr’ en Terminal obtendrás el manual con todas las opciones explicadas en inglés.

-source /ruta/imagen/disco/origen es la ruta a la imagen que hemos montado sobre el escritorio, que es el origen y la que vamos a copiar a destino. La mejor forma, y más cómoda, para no equivocarnos de ruta es escribir en el Terminal ‘ -source ‘ (le damos un espacio después) y arrastramos la imagen montada sobre la ventana de Terminal, automáticamente se escribirá la ruta del disco en la ventana de Terminal.

-target /ruta/disco/duro/destino es la ruta de destino, donde vamos a restaurar la imagen. La ruta del disco duro de destino la averiguamos de la misma forma que la de origen, arrastramos sobre Terminal el disco duro. Así de simple.

-nocheck Esta opción hace que no se chequee la integridad de datos del destino, suele fallar y no es ningún problema, mejor si le decimos que no lo chequee.

-erase Con esta opción borramos el disco de destino, para dejarlo a cero y meter el contenido de la imagen. Si no queremos borrar el destino no escribimos esta opción.

Tras cinco minutos con Firewire 400 en un disco externo, y menos con FW800 o con una partición del disco interno tendremos lista la restauración de nuestro sistema.

Si reiniciamos el sistema con el nuevo disco instalado ya estará todo hecho y listo como el primer día. Ajustes de red, de usuarios, de aplicaciones…

Pero podemos hacer algo más. Si os fijais, al principio os decía que usaríamos un script de shell de Alain Andrieux, un experto en UNIX de Apple Europa. En un curso memorable de hace dos años sobre Administración Avanzada bajo Terminal de Mac OS X Server, Alain nos enseñó este y mil trucos más. En su honor, en su experiencia y para todos vosotros, el script de shell que hará de este proceso todo un goce.

klean.sh Volume cleaner script
Cada máquina tiene características propias, MAC Address, procesador, memoria, ip, hostname, cachés… Este script de shell nos permite borrar en la imagen recién restaurada estos valores, y algunos más, según las opciones que le demos al script.

Podemos limpiar el volumen de arranque actual, el de la imagen e incluso borrar la cuenta de usuario del volumen que elijamos.

Nos descargamos el script klean.sh desde aqui.
Este script es válido 100% para OS X 10.3.x y anteriores. Puede que para OS X 10.4.x no sirva tal cual, pues la ruta de ficheros de la máquina pueden haber variado.

Para ver todas las opciones, ejecutamos en Terminal:

shell> klean.sh -h

y nos devolverá por pantalla la ayuda:


klean.sh v0.8 -- (c) 2004, Alain Andrieux
Usage:
sudo klean.sh [-h] | -L -v [-u ] [-p] [-r] [-d] [-w] [-m] where:
-h: print this help then exit
-L : cleaning level - should be:
1: clean up current boot volume. Harmless.
2: clean up volume before imaging. Remove machine specific files.
3: same as 2 plus delete user passed with -u parameter.
-v : volume to be cleaned up
-u : user folder to be cleaned-up or user account to be deleted.
-p: repair volume permissions (if volume = /)
-r: repair volume structures (if volume different from /)
-d: run the periodic daily script (if volume = /)
-w: run the periodic weekly script (if volume = /)
-m: run the periodic monthly script (if volume = /)

Como veis, el script hace más cosas. Si usamos la opcón L3 y borramos todos los usuarios de la máquina, cuando reiniciemos el Mac arrancará con el setup de arranque de Bienvenida con el que arranca cuando lo sacamos de la caja por primera vez.
De este modo podemos personalizar nuestro Mac, con usuario e IP nuevos, pero con todo el software instalado y configurado.

El modo de empleo de klean.sh depende de lo que queramos hacer, podéis probarlo vosotros mismos.

Borrar ficheros específicos de una máquina al instalarla en otra:

shell> sudo klean.sh -L2-v /ruta/volumen/

donde /ruta/volumen/ podemos conseguirla arrastrando el disco duro desde nuestro escritorio a la ventana de Terminal

Borrar los ficheros específicos de la máquina y el usuario que hemos creado en la primera instalación del OS X, podemos ejecutar:

shell> sudo klean.sh -L3 -v /ruta/volumen/ -u nombre_usuario

Le podemos pasar varios usuarios para dejar el volumen sin usuarios y arrancar con el setup de Bienenida.

Espero vuestros comentarios y dudas

Salud y pierdan el miedo al Terminal!

2 Comentarios

  1. nico
    | Responder

    En el blog de David Poves podéis leer más datos sobre imágenes de disco:
    Creación de buenas imágenes de sistema

    SaludoX

  2. Mapi
    | Responder

    Impresionante e imprescindible ‘howto’. Anotado!!

    Gracias y un saludo

Responder a Mapi Cancelar la respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *