1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
|
:B~ Conceptos básicos
1~the-basics Conceptos básicos
Este capítulo contiene una breve descripción del proceso de creación de las
imágenes en vivo y las instrucciones para el uso de los tres tipos de
imágenes más utilizadas. El tipo de imagen más versátil, #{iso-hybrid}#, se
puede utilizar en una máquina virtual, en medios ópticos u otros
dispositivos de almacenamiento USB. En ciertos casos especiales, como se
explica más adelante, las imágenes #{hdd}#, pueden ser las más adecuadas. El
capítulo incluye instrucciones detalladas para crear y utilizar una imagen
de tipo #{netboot}#, que es un poco más complicado debido a la configuración
necesaria en el servidor. Es un tema ligeramente avanzado para cualquier
persona que no esté familiarizada con el arranque en red, pero se incluye
aquí porque una vez que se realiza toda la configuración, es una forma muy
conveniente para probar y desplegar imágenes de arranque en red local sin la
molestia de tratar con los dispositivos de almacenamiento de la imagen.
La sección termina con una rápida introducción al {arranque desde
internet}#webbooting, que es, quizás, la manera más rápida de utilizar
diferentes imágenes para diferentes propósitos, cambiando de una a otra
según las necesidades, utilizando internet como medio.
A lo largo de todo el capítulo se hace a menudo referencia al nombre de las
imágenes producidas por defecto por live-build. Si se {descarga una imagen
ya creada}#downloading-prebuilt-images el nombre puede variar.
2~what-is-live ¿Qué es un sistema en vivo?
Por lo general, un sistema en vivo se refiere a un sistema operativo que
arranca en un equipo desde un medio extraíble, como un CD-ROM, dispositivo
USB, o desde una red, listo para usar sin ningún tipo de instalación en la
unidad de costumbre, con configuración automática en tiempo de ejecución
(Ver {Términos}#terms).
Con los sistemas en vivo, es un sistema operativo, creado para una de las
arquitecturas soportadas (actualmente amd64 y i386). Se compone de las
siguientes partes:
_* *{Imágen del kernel de Linux}*, normalmente llamada #{vmlinuz*}#
_* *{Imagen del Disco RAM inicial (initrd)}*: Un Disco RAM configurado para
el arranque de Linux, que incluya los módulos posiblemente necesarios para
montar la imagen del sistema y algunos scripts para ponerlo en marcha.
_* *{Imagen del sistema}*: La imagen del sistema de ficheros raíz. Por lo
general, se utiliza un sistema de ficheros comprimido SquashFS para reducir
al mínimo el tamaño de la imagen en vivo. Hay que tener en cuenta que es de
sólo lectura. Por lo tanto, durante el arranque del sistema en vivo se
utiliza un disco RAM y un mecanismo de «unión» que permite escribir ficheros
en el sistema en funcionamiento. Sin embargo, todas las modificaciones se
perderán al apagar el equipo a menos que se use de modo opcional la
persistencia (ver {Persistencia}#persistence).
_* *{Gestor de arranque}*: Una pequeña pieza de código diseñada para
arrancar desde el medio de almacenamiento escogido, posiblemente mostrando
un menú o un indicador de arranque para permitir la selección de
opciones/configuración. Carga el kernel de Linux y su initrd para funcionar
con un sistema de ficheros asociado. Se pueden usar soluciones diferentes,
dependiendo del medio de almacenamiento de destino y el formato del sistema
de ficheros que contenga los componentes mencionados anteriormente: isolinux
para arrancar desde un CD o DVD en formato ISO9660, syslinux para arrancar
desde el disco duro o unidad USB desde una partición VFAT, extlinux para
formatos ext2/3/4 y particiones btrfs, pxelinux para arranque de red PXE,
GRUB para particiones ext2/3/4 , etc.
Se puede utilizar live-build para crear la imagen del sistema a partir de
ciertas especificaciones, incluir un kernel de Linux, su initrd y un gestor
de arranque para ponerlos en funcionamiento, todo ello en un formato que
depende del medio de almacenamiento elegido (imagen ISO9660, imagen de
disco, etc.)
2~downloading-prebuilt-images Descarga de imágenes prefabricadas
Si bien el objetivo de este manual es el desarrollo y la construcción de
imágenes en vivo propias, puede que simplemente se desee probar una de
nuestras imágenes prefabricadas, ya sea como una iniciación a su uso o como
paso previo a la construcción de imágenes personalizadas. Estas imágenes
están construidas utilizando nuestro {repositorio git
live-images}#clone-configuration-via-git y las versiones estables oficiales
se publican en https://www.debian.org/CD/live/. Además, las versiones
antiguas y las futuras, así como las imágenes no oficiales que contienen
firmware y drivers no libres están disponibles en
http://live-systems.org/cdimage/release/.
2~using-iso-hybrid Uso del servicio de creación de imágenes web
Como un servicio a la comunidad, se ofrece una interfaz web de construcción
de imágenes en vivo en http://live-systems.org/build/. Este sitio se
mantiene en base al mejor esfuerzo. Es decir, aunque nos esforzamos por
mantenerlo al día y de que esté operativo en todo momento, así como de
emitir anuncios de interrupciones importantes en el servicio, no podemos
garantizar un 100% de disponibilidad o una creación de imágenes rápida, y el
servicio de vez en cuando puede tener problemas que tarden algún tiempo en
resolverse. Si se tiene problemas o preguntas acerca de este servicio,
ponerse {en contacto}#contact con nosotros, proporcionando el enlace a la
página dónde se recoge la información pertinente a la imagen.
3~ Uso y advertencias del servicio de creación de imágenes web
La interfaz web actualmente no puede prevenir el uso de combinaciones de
opciones no válidas, y en particular, cuando el cambio de una opción que
normalmente (es decir, utilizando live-build directamente) cambiaría los
valores predeterminados de otras opciones que figuran en el formulario web,
el constructor web no cambia estos valores predeterminados. En particular,
si se cambia #{--architectures}# del valor por defecto #{i386}# a #{amd64}#,
se debe cambiar la opción correspondiente #{--linux-flavours}# del valor por
defecto #{586}# a #{amd64}#. Ver la página de manual de #{lb_config}# para
para más detalles sobre la versión de live-build instalada en el constructor
web. El número de versión de live-build aparece en la parte inferior de la
página web del servicio de creación de imágenes.
El tiempo de creación de la imagen mostrado en la web es sólo una estimación
aproximada y puede no reflejar con exactitud la duración que la construcción
de la imagen realmente necesita. Tampoco se actualiza esta estimación una
vez mostrada. Hay que tener un poco de paciencia. No volver a recargar la
página, ya que esto puede volver a lanzar una nueva creación de otra imagen
con los mismos parámetros. {Ponerse en contacto}#contact con nosotros si no
se recibe la notificación de que la imagen está terminada una vez que se
esté seguro de que se ha esperado lo suficiente y verificado que la
notificación por correo electrónico no ha ido a parar a la bandeja de spam.
El servicio web está limitado en el tipo de imágenes que se pueden
construir. Esto lo hace simple y a la vez eficiente de usar y mantener. Si
se desea realizar personalizaciones que no se contemplan en la interfaz web,
en el resto de este manual se explica cómo crear imágenes propias con
live-build.
2~building-iso-hybrid Primeros pasos: creación de una imagen ISO híbrida
Independientemente del tipo de imagen, cada vez se tendrá que realizar los
mismos pasos básicos para construir una imagen. Como primer ejemplo, crear
un directorio de trabajo, cambiar a ese directorio y ejecutar la siguiente
secuencia de comandos live-build para crear una imagen ISO híbrida básica
que contiene sólo el sistema por defecto de Debian sin X.org. Es adecuada
para grabarla en un CD o DVD y también para copiarla en un dispositivo USB.
El nombre del directorio de trabajo es indiferente, pero si se da un vistazo
a los ejemplos utilizados en live-manual, es una buena idea utilizar un
nombre que ayude a identificar la imagen con la que está trabajando en cada
directorio, especialmente si se está trabajando o experimentando con
distintos tipos de imágenes. En este caso, vamos a construir un sistema
utilizando los valores por defecto, así que lo vamos a llamar, por ejemplo,
live-default.
code{
$ mkdir live-default && cd live-default
}code
Entonces, ejecutar el comando #{lb config}#. Esto creará una jerarquía
«config/» en el directorio actual que será usada por otros comandos:
code{
$ lb config
}code
Al no pasar ningún parámetro a estos comandos, se utilizarán todas las
opciones por defecto. Ver {El comando lb config}#lb-config para más
detalles.
Ahora que existe un jerarquía «config/», se puede crear la imagen con el
comando #{lb build}#:
code{
# lb build
}code
Este proceso puede llevar un tiempo, dependiendo de la velocidad del
ordenador y de la conexión de red. Cuando haya terminado, debería haber un
fichero #{live-image-i386.hybrid.iso}# listo para ser usado en el directorio
actual.
*{Nota:}* Si se está construyendo en un sistema amd64 el nombre de la imagen resultante será #{live-image-amd64.hybrid.iso}#. Tener en cuenta esta convención a lo largo del manual.
2~using-iso-hybrid Usar una imagen ISO híbrida
Después de construir o descargar una imagen ISO híbrida, las cuales se
pueden obtener en https://www.debian.org/CD/live/, el siguiente paso
habitual es preparar el medio de almacenamiento, ya sea medios ópticos
CD-R(W) o DVD-R(W) o llaves USB.
3~burning-iso-image Grabar una imagen ISO en un medio físico.
Grabar una imagen ISO es fácil. Simplemente instalar /{xorriso}/ y usarlo
desde el intérprete de comandos para grabar la imagen. Por ejemplo:
code{
# apt-get install xorriso
$ xorriso -as cdrecord -v dev=/dev/sr0 blank=as_needed live-image-i386.hybrid.iso
}code
3~copying-iso-hybrid-to-usb Copiar una imagen ISO híbrida a un dispositivo
USB
Las imágenes ISO preparadas con #{xorriso}#, pueden sencillamente copiarse a
una llave USB con la orden #{cp}# o con un programa equivalente. Insertar
una llave USB con un tamaño suficiente para la imagen y determinar qué
dispositivo es, al cual nos referiremos de ahora en adelante como
#{${USBSTICK}}#. Este nombre de «dispositivo» se refiere a la llave entera
como por ejemplo #{/dev/sdb}# y ¡No a una partición como #{/dev/sdb1}#! Se
puede encontrar el nombre del dispositivo correcto mirando la salida de
#{dmesg}# después de conectar la llave, o mejor aún, ejecutando #{ls -l
/dev/disk/by-id}#.
Cuando se esté seguro de tener el nombre del dispositivo correcto, usar la
orden #{cp}# para copiar la imagen a la llave. *{¡Esto borrará de forma
definitiva cualquier contenido previo en la llave!}*
code{
$ cp live-image-i386.hybrid.iso ${USBSTICK}
$ sync
}code
*{Nota:}* El comando /{sync}/ se utiliza para asegurarse de que todos los datos, que el kernel almacena en la memoria mientras se copia la imagen, se escriben en la llave USB.
3~using-usb-extra-space Usar el espacio libre en el dispositivo USB
Después de copiar la #{live-image-i386.hybrid.iso}# en una llave USB, la
primera partición del dispositivo será utilizada por el sistema en vivo. Si
se desea utilizar el espacio libre, se puede utilizar un programa de
particionado como /{gparted}/ o /{parted}/ para crear una partición nueva en
la llave.
code{
# gparted ${USBSTICK}
}code
Después de crear la partición, dónde #{${PARTITION}}# es el nombre de la
partición, por ejemplo #{/dev/sdb2}# se tiene que crear un sistema de
ficheros en él. Una opción posible sería ext4.
code{
# mkfs.ext4 ${PARTITION}
}code
*{Nota:}* Si se desea usar el espacio extra con Windows, segun parece, ese sistema operativo no puede acceder normalmente a otra partición más que a la primera. Se han comentado algunas soluciones a este problema en nuestra {lista de correo}#contact pero según parece no hay una solución fácil.
*{Recordar: Cada vez que se instale una nueva live-image-i386.hybrid.iso en el dispositivo, todos los datos del dispositivo se perderán debido a que la tabla de particiones se sobrescribe con el contenido de la imagen, así pues, realizar primero una copia de seguridad de la partición para poder restaurarla trás actualizar la imagen en vivo.}*
3~booting-live-medium Arrancar el medio en vivo
La primera vez que se arranque desde el medio de almacenamiento en vivo, ya
sea CD, DVD, llave USB, o de arranque en red PXE, primero puede ser
necesario algún tipo de configuración en la BIOS de la máquina. Dado que las
BIOS varían mucho en sus características y combinaciones de teclas, no se
puede entrar en el tema en profundidad aquí. Algunas BIOS proporcionan una
tecla para abrir un menú de dispositivos de arranque que es la manera más
fácil de hacerlo si se encuentra disponible en el sistema. De lo contrario,
se tiene que entrar en el menú de configuración de la BIOS y cambiar el
orden de arranque y colocar el dispositivo de arranque del sistema en vivo
antes que el dispositivo de arranque habitual.
Una vez que se haya arrancado desde el medio de almacenamiento, se accede a
un menú de arranque. Si se pulsa la tecla «enter», el sistema arrancará
usando el modo por defecto #{Live}# y las opciones predeterminadas. Para
obtener más información acerca de las opciones de arranque, ver la opción
«help» del menú y también las páginas del manual de live-boot y live-config
que se encuentran en el sistema en vivo.
Suponiendo que se ha seleccionado #{Live}# y arrancado una imagen en vivo
por defecto con escritorio gráfico, después de que los mensajes de arranque
hayan pasado, se habrá iniciado automáticamente una sesión como usuario
#{user}# y se verá el escritorio preparado para ser usado. Si se ha
arrancado una imagen sólo de consola como por ejemplo una imagen
#{standard}# de {las imágenes prefabricadas}#downloading-prebuilt-images, se
habrá iniciado automáticamente una sesión como usuario #{user}# y se verá el
cursor del intérprete de comandos preparado para ser usado.
2~using-virtual-machine Usar una máquina virtual para pruebas
Ejecutar las imágenes en vivo en una máquina virtual (VM) puede ser un gran
ahorro de tiempo para su desarrollo. Esto no está exento de advertencias:
_* Para ejecutar una máquina virtual se requiere tener suficiente memoria
RAM para el sistema operativo huésped y el anfitrión y se recomienda una CPU
con soporte de hardware para la virtualización.
_* Existen algunas limitaciones inherentes a la ejecución en una máquina
virtual, por ejemplo, rendimiento de video pobre o limitada gama de hardware
emulado.
_* Cuando se desarrolla para un hardware específico, no hay sustituto mejor
que el propio hardware.
_* A veces hay errores causados únicamente por la ejecución en una máquina
virtual. En caso de duda, probar la imagen directamente en el hardware.
Siempre que se pueda trabajar dentro de estas limitaciones, mirar que
software VM hay disponible y elegir uno que sea adecuado según las
necesidades.
3~testing-iso-with-qemu Probar una imagen ISO con QEMU
La máquina virtual más versátil en Debian es QEMU. Si el procesador tiene
soporte de hardware para virtualización, utilizar el paquete
/{qemu-kvm}/. En la descripción del paquete /{qemu-kvm}/ se enumera
brevemente la lista de requisitos.
En primer lugar, instalar #{qemu-kvm}# si el procesador lo soporta. Si no es
así, instalar #{qemu}#, en cuyo caso el nombre del programa será #{qemu}# en
vez de #{kvm}# en los siguientes ejemplos. El paquete /{qemu-utils}/ también
es útil para la creación de imágenes virtuales de disco con #{qemu-img}#.
code{
# apt-get install qemu-kvm qemu-utils
}code
Arrancar una imagen ISO es sencillo:
code{
$ kvm -cdrom live-image-i386.hybrid.iso
}code
Consultar las páginas del manual para más detalles.
3~testing-iso-with-virtualbox Probar una imagen ISO con VirtualBox
Para probar una imagen ISO con /{virtualbox}/:
code{
# apt-get install virtualbox virtualbox-qt virtualbox-dkms
$ virtualbox
}code
Crear una nueva máquina virtual, cambiar la configuración de almacenamiento
para utilizar #{live-image-i386.hybrid.iso}# como dispositivo CD/DVD y
arrancar la máquina.
*{Nota:}* Para probar los sistemas en vivo con soporte X.org en /{virtualbox}/, se puede incluir el paquete del driver de VirtualBox X.org, /{virtualbox-guest-dkms}/ y /{virtualbox-guest-x11}/, en la configuración de live-build. De lo contrario, la resolución se limita a 800x600.
code{
$ echo "virtualbox-guest-dkms virtualbox-guest-x11" >> config/package-lists/my.list.chroot
}code
Para que el paquete dkms funcione, hace falta tener instalados también los
kernel-headers para la variante del kernel utilizado. En lugar de enumerar
manualmente el paquete /{linux-headers}/ correspondiente en la lista de
paquetes creados anteriormente, live-build puede seleccionarlo
automáticamente.
code{
$ lb config --linux-packages "linux-image linux-headers"
}code
2~using-hdd-image Construir y utilizar una imágen HDD
Crear una imagen HDD es similar a una de tipo ISO híbrida en todos los
aspectos, con la diferencia de que hay que especificar #{-b hdd}# y de que
el nombre de la imagen final es #{live-image-i386.img}# que no se puede
copiar en medios ópticos. Es adecuada para el arranque desde dispositivos
USB, discos duros USB y otros sistemas de almacenamiento
portable. Normalmente, se puede utilizar para este propósito una imagen ISO
híbrida, pero es posible que la BIOS no maneje adecuadamente las imágenes
híbridas, entonces es mejor utilizar una imagen hdd.
*{Nota:}* si se ha creado una imagen ISO híbrida con el ejemplo anterior, se tendrá que limpiar el directorio de trabajo con el comando #{lb clean}# (ver {El comando lb clean}#lb-clean):
code{
# lb clean --binary
}code
Ejecutar el comando #{lb config}# como antes pero esta vez especificando el
tipo de imagen HDD:
code{
$ lb config -b hdd
}code
Crear ahora la imagen con el comando #{lb build}#:
code{
# lb build
}code
Cuando termine el proceso de creación, debe haber un fichero llamado
#{live-image-i386.img}# en el directorio actual .
La imagen binaria generada contiene una partición VFAT y el gestor de
arranque syslinux, lista para ser copiada directamente en un dispositivo
USB. De nuevo, dado que utilizar una imagen HDD es igual a usar una imagen
ISO híbrida en un USB, seguir las instrucciones de {Usar una imagen ISO
híbrida}#using-iso-hybrid con la diferencia del nombre,
#{live-image-i386.img}# en lugar de #{live-image-i386.hybrid.iso}#.
Del mismo modo, para probar una imagen HDD con Qemu, instalar /{qemu}/ como
se describe más arriba en {Probar una imágen ISO con
QEMU}#testing-iso-with-qemu. A continuación, ejecutar #{kvm}# o #{qemu}#,
según qué versión necesita el sistema anfitrión y especificando
#{live-image-i386.img}# como primer disco duro.
code{
$ kvm -hda live-image-i386.img
}code
2~building-netboot-image Creación de una imagen de arranque en red
La siguiente secuencia de comandos creará una imagen de arranque en red
básica que contendrá el sistema por defecto de Debian sin X.org. Se puede
usar para el arranque en red.
*{Nota:}* si se ha seguido algúno de los ejemplos anteriores, se tendrá que limpiar el directorio de trabajo con el comando #{lb clean}#:
code{
# lb clean
}code
En este caso concreto, un #{lb clean --binary}# no sería suficiente para
eliminar las etapas necesarias. La razón de esto es que en las
configuraciones de arranque en red, se debe utilizar una configuración
initramfs diferente que live-build ejecuta automáticamente al crear imágenes
netboot. Ya que la creación del initramfs pertenece a la etapa chroot,
realizar el cambio a netboot en un directorio de construcción ya existente
significa reconstruir la etapa chroot también. Por lo tanto, se tiene que
ejecutar un #{lb clean}# (que también eliminará la etapa chroot).
Ejecutar el comando #{lb config}# de la siguiente manera para configurar la
imagen de arranque en red:
code{
$ lb config -b netboot --net-root-path "/srv/debian-live" --net-root-server "192.168.0.2"
}code
A diferencia de las imágenes ISO y HDD, el sistema de arranque en red en sí
mismo no envía la imagen del sistema de ficheros al cliente, por eso los
ficheros se deben enviar mediante NFS. Con lb config se puede seleccionar
diferentes sistemas de ficheros en red. Las opciones #{--net-root-path}# y
#{--net-root-server}# especifican la ubicación y el servidor,
respectivamente, del servidor NFS en el que se encuentra la imagen del
sistema de ficheros en el arranque. Se debe asegurar que estos se ajustan a
los valores adecuados para la red y el servidor deseados.
Crear ahora la imagen con el comando #{lb build}#:
code{
# lb build
}code
En un arranque en red, el cliente ejecuta una pequeña pieza de software que
generalmente se encuentra en la EPROM de la tarjeta Ethernet. Este programa
envía una solicitud de DHCP para obtener una dirección IP e información
sobre qué hacer a continuación. Por lo general, el siguiente paso es
conseguir un gestor de arranque de alto nivel a través del protocolo
TFTP. Este gestor podría ser PXELINUX, GRUB, o incluso arrancar directamente
un sistema operativo como Linux.
Por ejemplo, si se descomprime el archivo generado
#{live-image-i386.netboot.tar}# en el directorio #{/srv/debian-live}#, se
verá la imagen del sistema de ficheros en #{live/filesystem.squashfs}# y el
kernel, initrd y el gestor de arranque pxelinux en #{tftpboot/}#.
Ahora se debe configurar tres servicios en el servidor para el arranque en
red: el servidor DHCP, el servidor TFTP y el servidor NFS.
3~ Servidor DHCP
Hay que configurar el servidor DHCP de red para asegurar que proporciona una
dirección IP al cliente, y para anunciar la ubicación del gestor de arranque
PXE.
He aquí un ejemplo que puede servir de inspiración. Fue escrito para el
servidor ISC DHCP #{isc-dhcp-server}# en su fichero de configuración
#{/etc/dhcp/dhcpd.conf}#:
code{
# /etc/dhcp/dhcpd.conf - fichero de configuración para isc-dhcp-server
ddns-update-style none;
option domain-name "example.org";
option domain-name-servers ns1.example.org, ns2.example.org;
default-lease-time 600;
max-lease-time 7200;
log-facility local7;
subnet 192.168.0.0 netmask 255.255.255.0 {
range 192.168.0.1 192.168.0.254;
filename "pxelinux.0";
next-server 192.168.0.2;
option subnet-mask 255.255.255.0;
option broadcast-address 192.168.0.255;
option routers 192.168.0.1;
}
}code
3~ Servidor TFTP
Se encarga de suministrar el kernel y el Disco RAM inicial para el sistema.
Se debe instalar el paquete /{tftpd-hpa}/. Este servidor podrá suministrar
todos los ficheros contenidos de un directorio raíz, normalmente
#{/srv/tftp}#. Para permitirle que pueda servir los ficheros de
#{/srv/debian-live/tftpboot}#, se debe ejecutar el siguiente comando con
privilegios de superusuario:
code{
# dpkg-reconfigure -plow tftpd-hpa
}code
y escribir el directorio del nuevo servidor tftp cuando sea requerido.
3~ Servidor NFS
Una vez el equipo cliente ha descargado y arrancado el kernel de Linux junto
a su initrd, intentará montar el sistema de archivos de la imagen en vivo a
través de un servidor NFS.
Se debe instalar el paquete /{nfs-kernel-server}/.
Entonces, se debe hacer que la imagen del sistema de archivos esté
disponible a través de NFS añadiendo una línea como la siguiente para
#{/etc/exports}#:
code{
/srv/debian-live *(ro,async,no_root_squash,no_subtree_check)
}code
e informar al servidor NFS sobre esta nueva exportación con el siguiente
comando:
code{
# exportfs -rv
}code
La configuración de estos tres servicios puede ser un poco difícil. Será
necesario un poco de paciencia para conseguir que todos ellos funcionen
juntos. Para obtener más información, ver el wiki de syslinux en
http://www.syslinux.org/wiki/index.php/PXELINUX o la sección sobre TFTP Net
Booting del Manual del Instalador de Debian en
http://d-i.alioth.debian.org/manual/es.i386/ch04s05.html Esto puede ser
útil, ya que sus procesos son muy similares.
3~ Cómo probar el arranque en red
La creación de una imagen de arranque en red es sencilla con live-build,
pero probar las imágenes en máquinas físicas puede ser un proceso mucho más
lento.
Para hacer nuestra vida más fácil, se puede utilizar la virtualización.
3~ Qemu
_* Instalar /{qemu}/, /{bridge-utils}/, /{sudo}/.
Se debe editar el fichero #{/etc/qemu-ifup}#:
code{
#!/bin/sh
sudo -p "Password for $0:" /sbin/ifconfig $1 172.20.0.1
echo "Executing /etc/qemu-ifup"
echo "Bringing up $1 for bridged mode..."
sudo /sbin/ifconfig $1 0.0.0.0 promisc up
echo "Adding $1 to br0..."
sudo /usr/sbin/brctl addif br0 $1
sleep 2
}code
Obtener o crear un #{grub-floppy-netboot}#.
Lanzar #{qemu}# con "#{-net nic,vlan=0 -net tap,vlan=0,ifname=tun0}#"
2~webbooting Arrancar desde internet
Arrancar desde internet, o Webbooting, es una manera muy adecuada de
descargar y arrancar sistemas en vivo utilizando internet como medio, ya que
hay muy pocos requisitos para arrancar desde internet utilizando
webbooting. Por un lado, se necesita un medio en vivo con un gestor de
arranque, un disco ram inicial y un kernel. Por otro lado, un servidor web
para almacenar los ficheros squashfs que contienen el sistema de ficheros.
3~ Conseguir los ficheros para arrancar desde internet
Como de costumbre, se puede construir las imágenes uno mismo o utilizar
alguna de las imágenes prefabricadas, disponibles en la página web del
proyecto http://live-systems.org/. Utilizar las imágenes prefabricadas es
muy práctico para hacer pruebas hasta que se está seguro de cuales son las
necesidades reales. Si ya se ha construido una imagen, los ficheros
necesarios para el arranque desde internet se encuentran en el directorio
#{binary/live/}#. Los ficheros se llaman #{vmlinuz}#, #{initrd.img}# y
#{filesystem.squashfs}#.
También es posible extraer los ficheros de una imagen iso ya existente. Para
ello, hay que montar la imagen de la siguiente manera:
code{
# mount -o loop image.iso /mnt
}code
Los ficheros se encuentran en el directorio #{live/}#. En este caso
concreto, sería #{/mnt/live/}#. Este método tiene la desventaja de que es
necesario ser root para poder montar la imagen. Sin embargo, tiene la
ventaja de que es fácil hacerlo con un script y por lo tanto, fácil de
automatizar.
Pero, sin duda alguna, la forma más fácil de extraer los ficheros de una
imagen iso y subirlos al servidor web al mismo tiempo, es utilizando el
midnight commander o /{mc}/. Si se tiene el paquete /{genisoimage}/
instalado, este administrador de ficheros de dos paneles permite examinar el
contenido de un archivo iso en un panel y subir los ficheros a través de ftp
en el otro panel. A pesar de que este método requiere un trabajo manual, no
requiere privilegios de root.
3~ Arrancar imágenes webboot
Aunque algunos usuarios pueden preferir la virtualización para probar el
arranque desde internet, en este caso se utiliza hardware real para ilustrar
el caso de uso que se explica a continuación y que debe considerarse sólo
como un ejemplo.
Para arrancar una imagen webboot es suficiente copiar los elementos
mencionados anteriormente, es decir, #{vmlinuz}# y #{initrd.img}# en una
llave usb dentro de un directorio llamado #{live/}# e instalar syslinux como
gestor de arranque. Entonces, arrancar desde la llave usb y teclear
#{fetch=URL/RUTA/AL/FICHERO}# en las opciones de arranque. live-boot se
encargará de descargar el archivo squashfs y almacenarlo en la memoria
ram. De este modo, es posible utilizar el sistema de ficheros comprimido
descargado como si fuera un sistema en vivo normal. Por ejemplo:
code{
append boot=live components fetch=http://192.168.2.50/images/webboot/filesystem.squashfs
}code
*{Caso de uso:}* Se tiene dos archivos squashfs almacenados en un servidor web, uno que contiene un escritorio completo, como gnome, y uno standard. Si se necesita un entorno gráfico para una máquina, se puede insertar la llave usb y arrancar desde internet la imagen gnome. Si se necesita una de las herramientas incluidas en el segundo tipo de imagen, quizás para otra máquina, se puede arrancar desde internet la imagen standard.
|