MONTAJE
DE UN SERVIDOR PXE PARA CLONEZILLA.
Introducción
Como administradores de una red de ordenadores donde tenemos varios tipos de PC y varios S.O. Necesitamos tener un sistema donde podamos con el realizar copias de seguridad y restaurar otros equipos. Para ello lo vamos a realizar mediante la red que tenemos montado.
1.-
Necesitar un ordenador que nos haga de servidor donde nos va a dar
servicio para guardar las imágenes de los SO , este ordenador puede
ser un servidor o puede ser uno que tengamos para realizar copias de
seguridad, como va a almacenar varios imágenes seria conveniente
tener bastante capacidad (disco duro de gran tamaño).
2.-
DHCP para poder dar direcciones ip, este podemos utilizar el servidor
nfs o tener otro nuestro, Ojo con este ultimo porque tendríamos que
aislar dicha red por donde enviar imganes para que no haya conflictos
de dhcp o ip
3.-
Servicio de PXE (DHCP + FTP )
Podemos descargarnos también el documento en pdf Clonezilla y pxe
Podemos descargarnos también el documento en pdf Clonezilla y pxe
Instalación
Directorios que necesitamos
Necesitamos un ordenador
no vamos a utilizar los servidores que tenemos (NFS y LDAP), este
pude ser cualquiera que tenga una distribución basa en debían y que
tenga una IP fija.
Vamos
a utilizar la carpetas siguientes.
En la raiz, la carpeta /tftpboot.
Dentro, las carpetas:
/tftpboot/pxelinux.cfg →
configuración del arranque pxe
/tftpboot/clonezilla
---> imagen de clonezilla para montar en RAM (solo se usará
si el equipo tiene 512Mb o mas, es mas lenta en carga, ya que la
imagen completa se envia por red, pero luego funciona mejor)
/tftpboot/clonezillanfs
---> imagen de clonezilla para montar en por NFS (para
equipos con poca RAM o por si queremos cargar mas rápido) yo es el
que utilizo por que me va mejor que el otro, y asi no tengo que
compilar nada cada vez que modifico algo del SO que le envío a los
equipos.
Dar permisos de lectura y ejecución a
todas las carpetas para todos (755).
chmod -R 755 /tftpboot
(Sin esto no arrancara bien el
servidor tftpd)
Programas que tenemos que instalar
Servidor FTP
Necesitamos un servidor
de FTP pero tiene que ser para el arranque por red por lo que tiene
que ser anónimo y posible para el arranque por red el que
utilizaremos sera el tftpd-hpa
apt-get -f install tftpd-hpa
El fichero de configuración esta en
/etc/default/tftpd-hpa
#Defaults for
tftpd-hpa
RUN_DAEMON="yes"
OPTIONS="-l
-s /tftpboot"
Reiniciamos el servicio para tenerlo
operativo.
/etc/init.d/tftpd-hpa
restart
Servidor NFS
Para almacenar las
imagens la podemos hacer de muchas formar, si esta en Local (no es
nuestro caso), por NFS, SSH, Samba, …. yo voy a utilizar el NFS por
ser de los más sencillos y por utilizarlo para enviar la imagen a
los PC. Para esto necesitamos tener el servicio activo y un
directorio compartido
Instalamos el servicio de nfs-common,
nfs-kernel-server sino los tenemos.
apt-get -f install nfs-common,
nfs-kernel-server
La configuración la hacemos mediante
el fichero de /etc/exports
/tftpboot/clonezillanfs
*(ro,sync) → para el sistema de clonezilla
/home/partimag *(rw,sync,no_subtree_check)
→ donde están las imagenes
Reiniciar servicio
/etc/init.d/nfs-kernel-server
# ps aux | grep tftpd root 9446 0.0 0.0 2200 308 ? Ss 15:33 0:00 /usr/sbin/in.tftpd -v -l -s /tftpboot
Como vemos, el demonio in.tftpd esta corriendo con las opciones que especificamos en el archivo:
Y para confirmar que el demonio tfptd abrio el
puerto para conexiones, es decir, esta en modo listening, usamos
netstat así:
# netstat -plun | grep tftp udp 0 0 0.0.0.0:69 0.0.0.0:* 3646/in.tftpd udp6 0 0 :::69 :::* 3646/in.tftpd
Con esto ya tenemos el servicio funcionado ahora necesitamos el SO
que le vamos a enviar a los PC, este lo vamos a coger del clonezilla,
para esto necesitamos el CD, ISO o ZIP que nos descargaremos de la
direccion de http://clonezilla.org/
SO que enviamos a los PC:
Necesitamos copiar del clonezilla
En /tftpboot:
pxelinux.0
chain.c32
menu.c32
vesamenu.c32
Estos ficheros están se pueden obtener desde /usr/lib/syslinux. Si no están, instalar el paquete syslinux-common
Label Restauracion IBM Ciclo
# MENU DEFAULT
# MENU HIDE
MENU LABEL Restauracion IBM Ciclo
# # MENU PASSWD
kernel clonezillanfs/live/vmlinuz
#El append en una sola linea
#Empieza
append initrd=clonezillanfs/live/initrd.img boot=live union=aufs noswap config vga=788 nolocales edd=on nomodeset ocs_live_keymap="/usr/share/keymaps/i386/qwerty/es.kmap.gz"
netboot=nfs nfsroot=172.23.52.7:/tftpboot/clonezillanfs ocs_lang="es_ES.UTF-8" noprompt ocs_prerun="dhclient -v eth0" ocs_prerun1="sleep 2"
ocs_prerun3="mount -t nfs 172.23.52.7:/home/partimag /home/partimag"
ocs_prerun4="sleep 2" ocs_live_run="ocs-sr -g auto -e1 auto -e2 -c -r -j2 -p true restoredisk 2011-10-19-ibm-win-ciclo sda" ip=frommedia nosplash
#termina
TEXT HELP
Restaura el ordenador IBM con la Imagen preparada para el Ciclo
ENDTEXT
Cuando queremos ejecutar un comando, se lo indicamos a clonezilla mediante el parámetro ocs_live_run, este es el parámetro que le debemos dar para la Salvar o Restaurar las imágenes, pero antes de este comando tenemos que preparar algunas cosas, como coger ip, montar el directorio donde están las imágenes. Para esto utilizaremos los comandos ocs_prerun que es el comando que se ejecuta antes de la script de ocs_live_run, como en cada ocs_prerun solo podemos ejecutar un comando si necesitamos ejecutar varias veces a cada uno le tenemos que dar un numero que es el orden de ejecución por ejemplo el ocs_prerun1, ocs_prerun2, y así todo los que necesitemos, entre un comando y otro hay veces que debemos esperar algún tiempo por lo tenemos que poner un ocs_prerunX=”sleep 2” que espere 2 segundos antes de ejecutar el siguiente comando.
Estos ficheros están se pueden obtener desde /usr/lib/syslinux. Si no están, instalar el paquete syslinux-common
En /tftpboot/pxelinux.cfg (directorio)
Crear un fichero
llamado “default” con el siguiente contenido (hay que cambiar en
el fichero la IP para que coincida con la de tu equipo servidor de
PXE, la mia es la 172.23.52.7, sustitutuyela por la tuya): Este
fichero lo podemos copiar del clonezilla esta en el directorio
syslinux y el archivo
syslinux.cfg
#
Created by generate-pxe-menu! Do NOT edit unless you know what you
are doing!
# Keep those comment "MENU DEFAULT" and "MENU HIDE"! Do NOT remove them. # Note!!! If "serial" directive exists, it must be the first directive default vesamenu.c32 timeout 70 prompt 0 noescape 1 MENU width 80 #MENU height 20 #filas en el menu MENU ROWS 8 MENU TABMSGROW 8 #la distancia de arriba MENU VSHIFT 6 MENU MARGIN 5 MENU HELPMSGROW 14 MENU TIMEOUT_MSGROW 24 MENU TIMEOUTROW 24 MENU TABMSGROW 24 MENU CMDLINEROW 24 #MENU HSHIFT 40 MENU BACKGROUND luischamizo.png # Set the color for unselected menu item and timout message MENU COLOR UNSEL 8;30;41 #c0000090 #00000000 MENU COLOR TIMEOUT_MSG 8;30;41 #c0000090 #00000000 # MENU COLOR TIMEOUT_MSG 8;30;41 #c0000090 #00000000 MENU COLOR TIMEOUT 8;30;41 #c0000090 #00000000 MENU COLOR HELP 8;30;41 #c0000090 #00000000 # MENU MASTER PASSWD say ********************************************** say Bienvenidos al sistema de Arranque say IES Arroyo Harnina say http://maguylinex.blogspot.com say ********************************************** # Allow client to edit boot parameters ALLOWOPTIONS 0 # simple menu title MENU TITLE Sistema de Clonacion del IES Arroyo Harnina por Clonezilla label Clonezilla # MENU DEFAULT # MENU HIDE MENU LABEL Clonezilla # # MENU PASSWD kernel clonezilla/vmlinuz append initrd=clonezilla/initrd.img boot=live union=aufs noswap noprompt vga=788 ocs_live_keymap="/usr/share/keymaps/i386/qwerty/es.kmap.gz" ocs_lang="es_ES.UTF-8" fetch=tftp://172.23.52.7/clonezilla/filesystem.squashfs keeppxe TEXT HELP Arranque Clonezilla, para ordenadores con mucha memoria ram ENDTEXT label Clonezilla NFS MENU DEFAULT # MENU HIDE MENU LABEL Clonezilla NFS # # MENU PASSWD kernel clonezillanfs/live/vmlinuz #El append en una linea empieza aqui append initrd=clonezillanfs/live/initrd.img boot=live union=aufs noswap vga=788 config ocs_live_keymap="/usr/share/keymaps/i386/qwerty/es.kmap.gz" netboot=nfs nfsroot=172.23.52.7:/tftpboot/clonezillanfs ocs_lang="es_ES.UTF-8" #Termina aqui TEXT HELP Arranque Clonezilla por NFS para equipos con poca memoria RAM (Recomendado) ENDTEXT label Restauracion IBM Ciclo # MENU DEFAULT # MENU HIDE MENU LABEL Restauracion IBM Ciclo # # MENU PASSWD kernel clonezillanfs/live/vmlinuz #El append en una sola linea #Empieza append initrd=clonezillanfs/live/initrd.img boot=live union=aufs noswap config vga=788 nolocales edd=on nomodeset ocs_live_keymap="/usr/share/keymaps/i386/qwerty/es.kmap.gz" netboot=nfs nfsroot=172.23.52.7:/tftpboot/clonezillanfs ocs_lang="es_ES.UTF-8" noprompt ocs_prerun="dhclient -v eth0" ocs_prerun1="sleep 2" ocs_prerun3="mount -t nfs 172.23.52.7:/home/partimag /home/partimag" ocs_prerun4="sleep 2" ocs_live_run="ocs-sr -g auto -e1 auto -e2 -c -r -j2 -p true restoredisk 2011-10-19-ibm-win-ciclo sda" ip=frommedia nosplash #termina TEXT HELP Restaura el ordenador IBM con la Imagen preparada para el Ciclo ENDTEXT label local kernel chain.c32 append hd0 TEXT HELP Arranque desde el disco local ENDTEXT # Note! *.bin is specially purpose for syslinux, # Do NOT use memtest86.bin, use memtest86 instead of memtest86.bin label memtest # MENU DEFAULT # MENU HIDE MENU LABEL Memory test using Memtest86+ # MENU PASSWD kernel clonexilla/memtest86 TEXT HELP Run memory test using Memtest86+ 4.00 ENDTEXT # ref: http://syslinux.zytor.com/memdisk.php label fdos # MENU DEFAULT # MENU HIDE MENU LABEL FreeDOS # MENU PASSWD kernel clonezilla/memdisk append initrd=clonezilla/fdos1440_drbl.img TEXT HELP Ejecuta el FreeDos ENDTEXT MENU END |
En /tftpboot/clonezilla
→ Sacados del CD de Clonezilla (cambiar el nombre a
initrd1.img y vmlinuz1 si es necesario).
initrd.img
vmlinuz
filesystem.squashfs
parameters.txt
En
/tftpboot/clonezillanfs → Copiado TODO
el contenido del CD de Clonezilla (carpetas isolinux, live, y
cualquier otra que hubiese) nos fijamos que en el fichero
isolinux.cfg hemos añadido
la carpeta de clonezillanfs delante
del kernal y del
initrd
De esta forma si queremos actualizar el contenido del clonezilla solo tendremos que copiar de nuevo toda las carpetas en nuestro directorio de clonezillanfs, siempre y cuando en el pxeconfig.cfg/defuaults tengamos puesto bien el enlaze como comento arriba.
De esta forma si queremos actualizar el contenido del clonezilla solo tendremos que copiar de nuevo toda las carpetas en nuestro directorio de clonezillanfs, siempre y cuando en el pxeconfig.cfg/defuaults tengamos puesto bien el enlaze como comento arriba.
Ahora nos queda hacer
que esto este integrado en nuestra red y que cuando un equipo se
encienda por red y pida una ip también le enviemos la imagen que
tenemos preparada con el Clonezilla, esto se hace enlazando en la
configuración del dhcp (se hace desde phpldapadmin en el ldap) con
el clonezilla que tenemos en este equipo.
Hay dos alternativas:( en la red
del Centro o una que nosotros montamos con unservidor de dhcp)
- Montar un servidor dhcp diferente en otro equipo, solo para arranques por PXE.Ventaja: no tocamos la configuración del servidor del centroInconveniente: si coexisten dos servidores dhcp a la vez en la misma red habrá problemas, solo uno puede estar arrancado a la vez, lo cual es problemático.
- Modificar la configuración del dhcp del centro para que mande los datos necesarios para arrancar por PXE.Ventaja: solo hay un servidor dhcp en el centro, que sirve tanto IP como parametros para arrancar por PXE.Inconveniente: hay que tocar la configuración del servidor DHCP en el arbol ldap.
Yo he elegido la segunda
opción. El cambio en ldap es mínimo y no interfiere con el
funcionamiento normal del centro. Hay que abrir phpldapadmin (haz una
copia de seguridad de ldap antes por si acaso) y navegar hasta el
nodo: DHCPConfig->Internal->group1 y añadir este
atributo:
dhcpStatements
next-server 172.23.52.7
filename "pxelinux.0"
DHCPConfig->Internal->group1
es la rama de donde cuelgan los equipos que quiero arrancar por PXE.
Si tus equipos están en otra rama, tendrás definir el atributo en
dicha rama.
next-server tenrá la IP del equipo donde hemos montado todo (en mi caso, el tercer servidor del centro)
next-server tenrá la IP del equipo donde hemos montado todo (en mi caso, el tercer servidor del centro)
Y ya está. Los equipos
del group1 que arranquen por pxe mostrarán un menú en pantalla con
3 opciones: cargar desde disco duro, clonezilla y clonezilla-nfs,
seleccionas la que quieras y arrancas el clonezilla. Te olvidas de CD
y de pendrives para siempre.
Otra cosa: los equipos
del group1 que no arranquen por pxe no notarán nada. Piden una IP y
el servidor se la dará sin problemas, ignorando el dhcpStatements
que hemos añadido.
Queda el phpldapadmin de la siguiente
forma:
Ejemplo de como clonar desde el menú de arranque
Para clonar desde el menú de arranque sin que
nosotros tengamos que tocar nada en el ordenador que queremos clonar
lo que tendremos que hacer es añadir una nueva entrada en el menú
de arranque seria en el fichero /tftpboot/pxeconfig.cfg/defualt
la entrada seria parecida a esta.
Si queremos
clonar equipos que están con WindowsXP y son del ciclo, yo los he
llamado IBM Ciclo, porque son equipos de la marca IBM y son para el
Ciclo formativo y tiene instalado el Windows XP.
Label Restauracion IBM Ciclo
# MENU DEFAULT
# MENU HIDE
MENU LABEL Restauracion IBM Ciclo
# # MENU PASSWD
kernel clonezillanfs/live/vmlinuz
#El append en una sola linea
#Empieza
append initrd=clonezillanfs/live/initrd.img boot=live union=aufs noswap config vga=788 nolocales edd=on nomodeset ocs_live_keymap="/usr/share/keymaps/i386/qwerty/es.kmap.gz"
netboot=nfs nfsroot=172.23.52.7:/tftpboot/clonezillanfs ocs_lang="es_ES.UTF-8" noprompt ocs_prerun="dhclient -v eth0" ocs_prerun1="sleep 2"
ocs_prerun3="mount -t nfs 172.23.52.7:/home/partimag /home/partimag"
ocs_prerun4="sleep 2" ocs_live_run="ocs-sr -g auto -e1 auto -e2 -c -r -j2 -p true restoredisk 2011-10-19-ibm-win-ciclo sda" ip=frommedia nosplash
#termina
TEXT HELP
Restaura el ordenador IBM con la Imagen preparada para el Ciclo
ENDTEXT
Cuando queremos ejecutar un comando, se lo indicamos a clonezilla mediante el parámetro ocs_live_run, este es el parámetro que le debemos dar para la Salvar o Restaurar las imágenes, pero antes de este comando tenemos que preparar algunas cosas, como coger ip, montar el directorio donde están las imágenes. Para esto utilizaremos los comandos ocs_prerun que es el comando que se ejecuta antes de la script de ocs_live_run, como en cada ocs_prerun solo podemos ejecutar un comando si necesitamos ejecutar varias veces a cada uno le tenemos que dar un numero que es el orden de ejecución por ejemplo el ocs_prerun1, ocs_prerun2, y así todo los que necesitemos, entre un comando y otro hay veces que debemos esperar algún tiempo por lo tenemos que poner un ocs_prerunX=”sleep 2” que espere 2 segundos antes de ejecutar el siguiente comando.
Veamos
un ejemplo, de como coger dirección IP
y de como montar un directorio que esta compartido por nfs
donde tenemos las imágenes, esto también podría ser por sshnfs,
ssh , samba o como lo
tengamos en montado, yo lo tengo montado ahora mismo por nfs,
por lo que antes de clonar lo que voy a hacer es coger ip y montar el
sistema de imágenes.
ocs_prerun="dhclient
-v eth0" → Cojo ip si
no esta en eth0 ponemos la interfaz
ocs_prerun1="sleep
2"
→ Espero 2
segundos para que termine bien el comando
ocs_prerun2="mount
-t nfs 172.X.X.X:/home/partimag /home/partimag"
→ monto el directorio de la imagenes
ocs_prerun3="sleep
2” → espero 2 segundos
antes de empezar con la Salvaguarda o Restauración.
Los
parámetros que vamos a utilizar ahora para el ocs_live_run,
vamos a utilizar el script que tiene el clonezilla para utilizar
atravez de linea de comando que es el ocs-sr
y los parametros son los siguientes en
un ejemplo:
ocs_live_run="ocs-sr
-g auto -e1 auto -e2 -c -r -j2 -p true restoredisk
2011-10-19-ibm-win-ciclo sda"
- -g auto: Reinstala grub en el MBR del disco cliente.
- -e1 auto: Automáticamente ajusta la geometría del sistema de ficheros de una partición con sistema de arranque NTFS, si existe.
- -e2: Esta opción es para un cargador no-grub, por ejemplo, para el boot loader de windows. No tiene efecto si el cargador de arranque del disco de destino es grub.
- -c: Sirve para que el cliente pida confirmación al usuario antes de clonar. Si no queremos que pida confirmación y clone directamente, omitimos esta opción.
- -r: Intenta redimensionar el sistema de ficheros para adaptarlo a la partición.
- -j2: Clona los datos ocultos entre el MBR y la primera partición.
- -p true: Espera a que el usuario realice alguna acción una vez ha terminado el proceso de clonación.
- Restoredisk [savedisk,restoreparts,saveparts]: Queremos restaurar o salvar disco o partición
- NombreImagen: indica el nombre de la imagen
- sda: indica a que disco duro.
- -g Automático (predeterminado)reinstalar GRUB en el sector de arranque del disco de destino(si apropiado).
- -e1 Automático (predeterminado)Ajustar la geometría del sistema de archivos.
- -e2 (por defecto) sfdisk utiliza CHS del disco duro.
- -j2 (por defecto) Clonar datos ocultos entre el MBR y la primera partición.
- -r (por defecto) Cambiar el tamaño del Sistema de archivos de la meta para ajustarse al tamaño de la partición.
- -q1copia sector por sector.
- -nogui Sólo en modo texto.
- -m No clonar el gestor de arranque.
- -rescue Continua leyendo después de los errores de lectura.
- -irhr No borrar los registro de hardware de Linux udev después de la restauración.
- -ius No actualizar los archivos relacionados con syslinuxdespués de la restauración.
- -icds No comprobar el tamaño del disco de destino.
- -fsck-src-part Chequea y repara el sistema de archivos fuente antes de la clonación.
- -o fuerza de carga de los valores CHS en el disco
- -batch Ejecuta la imagen en modo batch. Esto es peligroso.
- -v Muestra información detallada en cuando la clonación
Vemos
una tabla con los parámetros avanzados
(extras)
- (nada) (por defecto) El MBR se restaura a partir de la imagen.
- -k: La tabla de partición no se restaura (el MBR de disco de destino existente se mantiene).
- -k1: La tabla de particiones se recupera de la imagen. La partición (s) tamaño (s)será
ajustarse proporcionalmente si el disco de destino es más grande que la original. Solamente utilice esta opción con el MBR, no con GPT. - -k2: Utiliza la línea de comandos para permitir introducir cualquier comando con el fin deestablecer el la tabla de particiones.
- -c (default) Espera confirmación antes de clonar la imagen, si no se pone no pregunta.
- -a No fuerza el DMA en el disco
- -rm-win-swap-hib Excluye de MS-Windows el fichero de swap y de hibernación.
- -ntfs-ok Salta el chequeo del ntfs
- -gm Genera el MD5 de la imagen
- -gs Genera elSHA1 de la imagen
Sobre el método de clonación
- -q2 (default) partclone > partimage > dd
- -q1 dd Solamente
- -q ntfsclone > partimage > dd
- (none) partimage > dd
- -j0 fuerza al uso de dd
Cuando termina la clonacion
- -p reboot: reinicia el equipo
- -p poweroff : apaga el equipo
- -p true (default)(espera a que el usuario lo indique)
No hay comentarios:
Publicar un comentario