Las «clasificaciones del disco» ("disklabels") se crean para permitir una interfaz eficiente entre su disco y los controladores del disco que contiene el núcleo del sistema ("kernel"). Estas clasificaciones contienen cierta información sobre su disco, como la geometría del controlador e información sobre sus sistemas de archivo ("filesystems"). Esta información la utiliza el programa de arranque para cargar el controlador y para saber en qué parte del controlador se encuentran los sistemas de archivo. Las clasificaciones también se usan en conjunto con los sistemas de archivo para crear un entorno más eficiente. Puede leer documentación más a fondo sobre disklabel en la página de manual de disklabel(5).
Además, el uso de disklabel ayuda a superar las limitaciones de las arquitecturas al particionar el disco. Por ejemplo, en i386 sólo puede tener cuatro particiones primarias (particiones que puedan ver otros sistemas operativos como Windows NT o DOS). Con disklabel(8), usa una de esas particiones primarias para almacenar todas sus particiones de OpenBSD (swap, /, /usr, /var, ...), y todavía le quedan tres particiones libres para otros sistemas operativos.
Una de las partes principales de la instalación de OpenBSD es la creación inicial de «clasificaciones» ("labels"). Para los usuarios de plataformas i386, éste es el paso que viene justo después de usar fdisk(1). Durante la instalación, el programa que usa para crear clasificaciones separadas que contengan sus puntos de montaje separados es disklabel. Durante este proceso puede configurar sus puntos de montaje desde dentro de disklabel, pero esto no es del todo necesario si consideramos que más tarde le pedirá que confirme sus elecciones. De todos modos hace que su instalación sea un poco más suave.
Ya que esto ocurre durante la instalación, todavía no tendrá ninguna clasificación creada, y por lo tanto deben ser creadas. La primera clasificación que tendrá que crear es la clasificación 'a'. Esta clasificación DEBE ser en la que se monte el sistema de archivo /. Puede ver las particiones que se recomienda crear y sus respectivos tamaños recomendados en la sección 4.3 de las preguntas frecuentes. Para servidores se recomienda que, por lo menos, se creen estas particiones separadas. Para los usuarios de computadoras (ordenadores) de sobremesa, será suficiente con crear un sólo punto de montaje para /. Cuando cree por primera vez esta partición raíz (clasificación a), tenga en cuenta que necesitará dejar ALGO de espacio para la clasificación de swap. Ahora que ya hemos explicado lo más básico, pasemos a un ejemplo de la utilización de disklabel durante la instalación. En este primer ejemplo se asume que OpenBSD va a ser el único sistema operativo en la máquina, y que se llevará a cabo una instalación completa.
N. del T.: el texto que sigue a continuación está traducido para el propósito de este documento, pero durante la instalación el texto aparecerá en inglés
Si se comparte el disco con otros sistemas operativos, esos sistemas operativos deben tener una entrada de la partición en la BIOS que abarque completamente el espacio que ocupen. Asegúrese de que todos los sistemas de archivo de OpenBSD se encuentren dentro del tamaño especificado en la tabla de particiones de la BIOS 'A6' (por definición, el editor de disklabel tratará de forzar esto). Si no está seguro de cómo usar correctamente particiones múltiples (o sea, /, /usr, /tmp, /var, /usr/local, y otras separadas), divida el espacio de momento en una partición raíz y otra swap. # using MBR partition 3: type A6 off 63 (0x3f) size 4991553 (0x4c2a41) Treating sectors 63-16386300 as the OpenBSD portion of the disk. You can use the 'b' command to change this. Initial label editor (enter '?' for help at any prompt) > d a > a a offset: [63] <Intro> size: [16386237] 64M Rounding to nearest cylinder: 131040 FS type: [4.2BSD] <Intro> mount point: [none] / fragment size: [1024] <Intro> block size: [8192] <Intro> cpg: [16] <Intro> > a b offset: [131103] <Intro> size: [16255197] 64M Rounding to nearest cylinder: 131040 FS type: [swap] <Intro>
Hasta este punto hemos creado una partición raíz de 64MB montada en /, y una partición swap de 64MB. Note que empieza ("offset") en el sector 63. En la parte correspondiente al tamaño, disklabel muestra su tamaño en sectores; sin embargo no es necesario introducirlos en el mismo formato. Como en el ejemplo anterior, puede introducir los tamaños de la forma 64 Megabytes = 64M y 2 Gigabytes = 2G. Disklabel los redondeará hasta el cilindro más cercano. También notará en el ejemplo anterior que disklabel asume que la clasificación 'b' será swap. Esto es correcto ya que el núcleo del sistema GENERIC está configurado para buscar swap en la clasificación b, y todo lo que usted debe hacer es seguir esta guía y usar b como su área de swap.
El siguiente ejemplo le guiará por la creación de dos clasificaciones más. Esto quiere decir que no es una instalación completa, ya que el tamaño de éstas no será suficiente para instalar OpenBSD al completo. Mostrar otra vez la creación de todas las particiones sería redundante.
> a d offset: [262143] <Intro> size: [16124157] 64M Rounding to nearest cylinder: 131040 FS type: [4.2BSD] <Intro> mount point: [none] /tmp fragment size: [1024] <Intro> block size: [8192] <Intro> cpg: [16] <Intro> > a e offset: [393183] <Intro> size: [15993117] 64M Rounding to nearest cylinder: 131040 FS type: [4.2BSD] <Intro> mount point: [none] /var fragment size: [1024] <Intro> block size: [8192] <Intro> cpg: [16] <Intro>
En este ejemplo puede notar dos diferencias con el anterior. Una, que el inicio del sector ("offset") lo averigua de forma automática. Cuando haga una instalación de este tipo no tendrá que configurar los sectores. Otra diferencia es que la clasificación 'c' representa a todo el disco. Por este motivo no debe tocar la clasificación c.
Una vez que todas las clasificaciones hayan sido creadas, todo lo quedará por hacer será grabarlas en el disco y pasar al proceso de instalación. Para grabarlo todo y salir de disklabel (y continuar con la instalación), haga lo siguiente:
> w > q
*NOTA* - Para usuarios con discos grandes. Si la BIOS de su equipo no tiene soporte para el tamaño de su disco, OpenBSD tampoco tendrá soporte para éste. En cualquier otro caso OpenBSD debería ser capaz de tratar su disco sin problema alguno. Si se encuentra en una situación en la que la BIOS de su máquina no dispone de soporte para su disco, puede probar Maxtor EZ-Drive u otro producto complementario de similares características.
Una vez que esté instalado el sistema, el uso frecuente de disklabel no debería ser necesario. Pero a veces tendrá que usarlo cuando añada, elimine, o reestructure sus discos. Una de las primeras cosas que tendrá que hacer será ver su disklabel actual. Para ello, escriba lo siguiente:
# disklabel wd0 <----- O cualquier dispositivo de disco que quiera ver # using MBR partition 3: type A6 off 64 (0x40) size 16777152 (0xffffc0) # /dev/rwd0c: type: ESDI disk: label: TOSHIBA MK2720FC flags: bytes/sector: 512 sectors/track: 63 tracks/cylinder: 16 sectors/cylinder: 1008 cylinders: 2633 total sectors: 2654064 rpm: 3600 interleave: 1 trackskew: 0 cylinderskew: 0 headswitch: 0 # milliseconds track-to-track seek: 0 # milliseconds drivedata: 0 16 partitions: # size offset fstype [fsize bsize cpg] a: 2071440 65583 4.2BSD 1024 8192 16 # (Cyl. 65*- 2120) b: 65520 63 swap # (Cyl. 0*- 65) c: 2654064 0 unused 0 0 # (Cyl. 0 - 2632) j: 512001 2137023 4.2BSD 1024 8192 16 # (Cyl. 2120*- 2627*)
La orden anterior le permite ver el disklabel presente, y de este modo asegurarse de que no lía nada (algo que todos necesitamos algunas veces). Pero para poder hacer cambios debe usar disklabel con la opción -E, de este modo:
# disklabel -E wd0
Esto le llevará hasta un «punto de pedido» ("prompt"), el mismo que usó durante la instalación de OpenBSD. Probablemente, la orden más importante de todas en este punto de pedido sea '?'. Con esta orden obtendrá una lista de posibles opciones relacionadas con disklabel. Incluso podrá ver la página de manual de disklabel(8) al completo con la orden 'M'. Desde este punto podrá añadir o eliminar todo lo que desee, o hacer cambios en las particiones. Para más información al respecto lea la página de manual de disklabel(8).
Antes que nada, asegúrese de leer la página de manual principal de fdisk(8)
Fdisk es un programa de ayuda para el mantenimiento de sus particiones. Este programa se usa durante la instalación para configurar la partición de OpenBSD (esta partición puede contener varias clasificaciones, cada una de ellas con sistemas de archivo, swap, etc... ). Puede dividir el espacio de sus dispositivos y activar uno de ellos. Fdisk se suele usar en «Modo Monousuario» (boot -s - "Single User Mode"). Fdisk también configura el MBR de los discos.
Para la instalación, la mayoría de las veces sólo necesitará UNA partición de OpenBSD, y a continuación usar disklabel para poner en ella una swap y un sistema de archivo.
Para ver sólo su tabla de particiones con fdisk, haga lo siguiente:
# fdisk fd0
lo que le dará una salida parecida a ésta:
Disk: fd0 geometry: 80/2/18 [2880 sectors]
Offset: 0 Signatures: 0xAA55,0x0
Starting Ending
#: id cyl hd sec - cyl hd sec [ start - size]
----------------------------------------------------------------------
*0: A6 0 0 1 - 79 1 18 [ 0 - 2880] OpenBSD
1: 00 0 0 0 - 0 0 0 [ 0 - 0] unused
2: A7 0 0 2 - 79 1 18 [ 1 - 2879] NEXTSTEP
3: 00 0 0 0 - 0 0 0 [ 0 - 0] unused
En este ejemplo estamos viendo la salida de fdisk para el dispositivo de la disquetera. Podemos ver la partición de OpenBSD (A6) y su tamaño. El asterisco (*) nos indica que la partición de OpenBSD es una partición de arranque.
En el ejemplo anterior sólo vimos nuestra información. ¿Y si quisiéramos editar nuestra tabla de particiones? Pues bien, para ello debemos usar el indicador -e, que nos trasladará a una línea de órdenes desde la que podremos interaccionar con fdisk.
# fdisk -e wd0
Enter 'help' for information
fdisk: 1> help
help Command help list
manual Show entire OpenBSD man page for fdisk
reinit Re-initialize loaded MBR (to defaults)
disk Edit current drive stats
edit Edit given table entry
flag Flag given table entry as bootable
update Update machine code in loaded MBR
select Select extended partition table entry MBR
print Print loaded MBR partition table
write Write loaded MBR to disk
exit Exit edit of current MBR, without saving changes
quit Quit edit of current MBR, saving current changes
abort Abort program without saving current changes
fdisk: 1>
Entrar en fdisk y explorar el disco es totalmente seguro, sólo debe asegurarse de contestar N cuando le pregunte si quiere guardar los cambios, y de que NO usa la orden write.
Aquí tiene una revisión de las órdenes que puede usar cuando escoja el indicador -e.
Una vez que ya tenga su disco instalado CORRECTAMENTE, deberá usar fdisk(8) (sólo i386) y disklabel(8) para configurarlo en OpenBSD.
Los usuarios de plataformas i386 deben empezar con fdisk. El resto de plataformas pueden ignorar esta parte.
# fdisk -i sd2
De este modo se iniciará la tabla de particiones «real» para su uso exclusivo por OpenBSD. A continuación debe crear un disklabel. Esto le parecerá algo confuso.
# disklabel -e sd2 (la pantalla se queda en blanco y aparece su $EDITOR) type: SCSI ...bla... sectors/track: 63 total sectors: 6185088 ...bla... 16 partitions: # size offset fstype [fsize bsize cpg] c: 6185088 0 unused 0 0 # (Cyl. 0 - 6135) d: 1405080 63 4.2BSD 1024 8192 16 # (Cyl. 0*- 1393*) e: 4779945 1405143 4.2BSD 1024 8192 16 # (Cyl. 1393*- 6135)
Ignore la partición c, siempre está ahí y es para que funcionen programas como disklabel. Para operaciones normales, fsize siempre debe ser 1024, bsize siempre debe ser 8192, y cpg siempre debe ser 16. fstype es 4.2BSD. total sectors es el tamaño total del disco. Supongamos que éste es un disco de 3GB; tres gigabytes, en términos del fabricante del disco, son 3000 megabytes. Divida 6185088 entre 3000 (use bc(1)) y obtendrá 2061. Por lo tanto, para crear particiones para a, d, e, f, g, ... simplemente multiplique X*2061 y obtendrá el número de megabytes de espacio en esa partición. El sector de inicio ("offset") para su primera partición nueva debe ser el mismo que el "sectors/track" que le haya dado anteriormente la salida de disklabel. En este caso es 63. El sector de inicio para cada partición consecutiva debe ser una combinación del tamaño de cada partición y el sector de inicio de la misma (excepto la partición c, ya que no juega ningún papel aquí).
O, si sólo quiere tener una partición en el disco (si, por ejemplo, quisiera usarlo todo para almacenaje de web o como directorio home), tome el tamaño total del disco y réstele los sectores por pista ("sectors/track"). En este caso, 6185088-63 = 6185025. La partición quedará así:
d: 6185025 63 4.2BSD 1024 8192 16
¡Si todo esto le parece complicado e innecesario, puede usar disklabel -E para obtener el mismo modo de particiones que tiene en su disco de instalación! Ahí puede usar «96M» para especificar «96 megabytes» (o con un disco lo bastante grande, 96G para 96 gigabytes). Desafortunadamente, el modo -E usa la geometría del disco de la BIOS, no la geometría del disco real, y con frecuencia éstas no son las mismas. Para evitar esta limitación, escriba 'g d' para la 'geometría del disco'. Otras opciones son 'g b' para la 'geometría de la bios' y 'g u' para la 'geometría del usuario', o simplemente lo que indique la «clasificación» (label) antes de que disklabel efectúe algún cambio.
Esto ha sido largo, pero todavía no ha terminado. Para finalizar, debe crear el sistema de archivo en el disco usando newfs(8).
bsd# newfs wd1a
O cualquiera otra denominación de su disco de acuerdo con el esquema de numeración del disco de OpenBSD (mire la salida de dmesg(8) para averiguar el nombre que OpenBSD da a su disco).
Ahora debe decidir dónde va a montar la nueva partición que acaba de crear. Digamos que quiere ponerla en /u. Primero cree el directorio /u, y luego móntelo.
mount /dev/wd1a /u
Finalmente, añádalo a /etc/fstab
/dev/wd1a /u ffs rw 1 1
¡Y si necesitara migrar a un directorio ya existente como /usr/local? Entonces debería montar la partición nueva en /mnt, y usar 'cpio -pdum' para copiar /usr/local al directorio /mnt. A continuación editar el fichero /etc/fstab para indicar que la partición /usr/local es ahora /dev/wd1a (su partición recién creada). Por ejemplo:
Reinicie en modo monousuario... boot -s y copie el /usr/local existente a /usrs/local-backup (eliminando el original cuando esté seguro), y cree un directorio /usr/local vacío. Reinicie el sistema y ¡ya está! ¡ahí están los ficheros!
(Nota: si lo que quiere es usar un fichero como memoria de intercambio ("swap") porque obtiene errores del tipo "virtual memory exhausted", debería intentar antes elevar los límites por proceso con la utilidad de csh unlimit(1), o de sh ulimit(1))
Después de la versión oficial de OpenBSD 2.5 apareció swapctl(8), con el que es mucho más fácil tratar con dispositivos de swap. Si está usando la versión 2.5 de OpenBSD, intercambie swapctl por swapon, y use pstart -s para ver una lista de dispositivos de swap. El uso de ficheros como memoria de swap no requiere la compilación de un núcleo del sistema personalizado, aunque aquí explicaremos cómo hacerlo de las dos maneras.
Usar un fichero como memoria de swap es la forma más fácil y rápida de obtener una configuración adicional del área de swap. Esto no es para los usuarios que usen "Softupdates" (que viene desactivado por definición). Para empezar, puede ver cuánta memoria de swap tiene en ese momento y cuánta está usando con la utilidad swapctl(8), del modo siguiente:
ericj@oshibana> swapctl -l Device 512-blocks Used Avail Capacity Priority swap_device 65520 8 65512 0% 0
Esto le mostrará los dispositivos que están siendo usados como memoria de swap y sus estadísticas actuales. En el ejemplo anterior, sólo hay un dispositivo denominado "swap_device". Éste es el área predefinida para swap (si lo viéramos con disklabel, lo mostraría como la partición b). También puede ver en el ejemplo anterior que el dispositivo no está siendo muy usado en ese momento. Pero para el propósito de este documento, procederemos como si necesitáramos 32MB adicionales.
El primer paso para configurar un fichero como un dispositivo de swap es crear el fichero. El mejor modo de hacerlo es con la utilidad dd(1). He aquí un ejemplo de cómo crear el fichero /var/swap, que tendrá un tamaño de 32MB.
ericj@oshibana> sudo dd if=/dev/zero of=/var/swap bs=1k count=32768 32768+0 records in 32768+0 records out 33554432 bytes transferred in 20 secs (1677721 bytes/sec)
Una vez que lo hayamos creado, podemos activar el uso de ese dispositivo como memoria de swap. Para activarlo, use la siguiente orden:
ericj@oshibana> sudo chmod 600 /var/swap ericj@oshibana> sudo swapctl -a /var/swap
Ahora debemos comprobar si se ha añadido correctamente a la lista de nuestros dispositivos de swap.
ericj@oshibana> swapctl -l Device 512-blocks Used Avail Capacity Priority swap_device 65520 8 65512 0% 0 /var/swap 65536 0 65536 0% 0 Total 131056 8 131048 0%
Ahora que ya está activado el fichero y que se está usando como swap, debe añadir una línea a su fichero /etc/fstab, para que el fichero también se active en el próximo arranque. Si no añade esta línea, no tendrá este dispositivo de swap configurado.
ericj@oshibana> cat /etc/fstab /dev/wd0a / ffs rw 1 1 /var/swap /var/swap sw 0 0
Ésta es una solución más permanente que la de añadir más espacio de swap. Para usar permanentemente un fichero como memoria de swap, primero compile un núcleo con vnd0c como swap. Si su sistema de archivo raíz es wd0a, entonces wd0b es el swap anterior y debe usar la siguiente línea en el fichero de configuración del núcleo (si tiene dudas, lea el capítulo 5 de las preguntas frecuentes referente a la compilación del núcleo del sistema):
config bsd root on wd0a swap on wd0b and vnd0c dumps on wd0b
Después de esto, tendrá que crear el fichero que se usará como memoria de swap. Debe hacerlo usando la misma orden que en los ejemplos anteriores.
ericj@oshibana> sudo dd if=/dev/zero of=/var/swap bs=1k count=32768 32768+0 records in 32768+0 records out 33554432 bytes transferred in 20 secs (1677721 bytes/sec)
Ahora el fichero está en su sitio y debe añadirlo a /etc/fstab. Aquí tiene una línea de ejemplo de cómo arrancar con este dispositivo como swap.
ericj@oshibana> cat /etc/fstab /dev/wd0a / ffs rw 1 1 /dev/vnd0c none swap sw 0 0
En este punto su máquina debe ser reiniciada para que los cambios en el núcleo hagan efecto. A continuación deberá configurar el dispositivo como memoria de swap. Para ello usará vnconfig(8).
ericj@oshibana> sudo vnconfig -c -v vnd0 /var/swap vnd0: 33554432 bytes on /var/swap
El último paso es activar ese dispositivo como memoria de swap. Lo haremos como en los ejemplos anteriores, usando swapctl(8). Después comprobaremos si ha sido correctamente añadido a nuestra lista de dispositivos de swap.
ericj@oshibana> sudo swapctl -a /dev/vnd0c ericj@oshibana> swapctl -l Device 512-blocks Used Avail Capacity Priority swap_device 65520 8 65512 0% 0 /dev/vnd0c 65536 0 65536 0% 0 Total 131056 8 131048 0%
Durante los últimos años, Kirk McKusick ha estado trabajando en algo llamado "soft updates". Esto se basa en la idea propuesta por Greg Ganger y Yale Patt de imponer un orden parcial sobre las operaciones en la memoria intermedia para permitir que los requerimientos de escritura sincrónica de entradas de directorio sean eliminadas del código FFS. En resumen, un gran incremento en el rendimiento de la escritura en disco.
Para activar "Softupdates", el núcleo debe tener
configurada la opción
NOTA: Esta opción
está activada por definición a partir de la
versión 2.7 de OpenBSD, y vendrá predefinida en la
versión 2.8. Sin embargo, debe activarla para cada
partición de disco.
option FFS_SOFTUPDATES
y debe arrancar en modo monousuario:
boot>boot -s
[snip]
bsd# tunefs -s enable <raw device>
bsd# reboot -n
Esto significa que su «Registro de Arranque Maestro» (MBR, "Master Boot Record") no ha sido instalado correctamente, o que la idea que su BIOS tiene sobre la geometría del disco duro no es compatible con su MBR. Para solventarlo, primero intente reinstalar los bloques de arranque de OpenBSD. Para ello use fdisk(8) e installboot(8). Para que arranque y funcione la primera vez, necesitará usar el disco de arranque ("boot disk") como mecanismo de arranque. Después de insertar el disco de instalación, y antes de que cargue el núcleo y el "ramdisk", verá un punto de pedido boot> desde el disquete. Úselo para iniciar OpenBSD fuera de su disco duro.
booting... OpenBSD boot 1.2.3 probing hd0 fd0... boot> boot hd0a:/bsd
Ahora que ya ha iniciado, y asumiendo que haya dedicado todo su disco duro a OpenBSD, reinicie el MBR con fdisk(8) (de todos modos, si tiene particiones para otros sistemas operativos en su disco duro, no podrá usar installboot; tendrá que buscar otra opción como OS-BS, que se describe más adelante).
# fdisk -i wd0
Ahora debe reescribir los bloques de arranque.
# cp /usr/mdec/boot /boot # /usr/mdec/installboot -v /boot /usr/mdec/biosboot wd0
Para acabar, reinicie y pruébelo.
Si no funcionara, todavía tendría unas pocas opciones adicionales. La primera sería usar un gestor de arranque como OS-BS. El CD de OpenBSD incluye el gestor de arranque OS-BS en el directorio tools. Si no ha adquirido el CD-ROM, puede obtener OS-BS desde cualquiera de los servidores de ftp de OpenBSD. Debe bajarse el fichero pub/OpenBSD/2.6/tools/osbs135.exe
Tómese algo de tiempo para leer las páginas en internet de OS-BS, que se encuentran en http://www.prz.tu-berlin.de/~wolf/os-bs.html
Existen otros gestores de arranque comerciales, o libres como lilo, que puede usar para un arranque múltiple.
Aquí tiene una breve guía para poner lilo en su sistema.
Para más instrucciones, lea INSTALL.linux
Las imágenes de RAMDISK (disquetes de arranque) no incluyen la
utilidad dmesg. Sin embargo, tienen el sistema de archivo
/kern montado. Para copiar la información de dmesg a un
fichero, haga lo siguiente:
Los discos de arranque también incluyen more(1) como paginador:
Lea también la sección 4.5 de estas preguntas frecuentes.
Las versiones más antiguas de MS-DOS sólo podían
reconocer geomtrías de disco de 1024 cilindros o menos. Ya que
casi prácticamente todos los discos modernos tienen más
de 1024 cilindros, la mayoría de chips de BIOS SCSI (que vienen
integrados en la tarjeta controladora SCSI) y de BIOS IDE (que son
parte del resto de la BIOS para PCs) disponen de una opción
(algunas veces preactivada) para «traducir» la
geometría real del disco en algo que esté dentro de los
límites de la capacidad de MS-DOS. Sin embargo, no todos los
chips de BIOS «traducen» la geometría del mismo
modo. Si cambia su BIOS (instalando una nueva placa base o
añadiendo una nueva controladora SCSI) y la nueva usa una
«traducción» de la geometría diferente, no
podrá cargar la segunda fase del gestor de arranque (y por lo
tanto no podrá cargar el núcleo). Esto se debe a que la
primera fase del gestor de arranque contiene una lista de bloques que
comprende /boot en términos de la geometría
«traducida» original. Si está usando discos IDE y
realiza cambios en la configuración de su BIOS, también
puede cambiar sin saberlo su traducción (la mayoría de
BIOS IDE ofrecen 3 traducciones diferentes). Para que su bloque de
arranque pueda iniciar con normalidad, ponga un disquete de arranque, y
en el punto boot> escriba b hd0a:/bsd para
forzar el arranque desde el primer disco duro (y no desde el disquete).
Su máquina debería iniciar sin ningún problema.
Ahora debe actualizar la primera fase del gestor de arranque para poder
ver la nueva geometría (y reescribir el bloque de arranque de
acuerdo con ella).
En el ejemplo se asume que su disco de arranque es sd0 (SCSI, pero si
fuera IDE sería wd0, etc... ):
# cd /usr/mdec; ./installboot /boot biosboot sd0
Si installboot protesta porque es incapaz de leer la geometría
de la BIOS, puede invocar la orden 'machine diskinfo' (o su forma
abreviada, 'ma di') desde el punto boot>, para ver la
información que necesite. Rellene con los valores
"heads" y "secs" los indicadores -h y
-s de installboot respectivamente, para que la orden
modificada de installboot quede como sigue:
# cd /usr/mdec; ./installboot -h <heads> -s <secs> /boot biosboot sd0
Si se requiriera una versión de los bloques de arranque, tendría que compilarlos usted mismo.
# cd /sys/arch/i386/stand/ # make && make install # cd /usr/mdec; cp ./boot /boot # ./installboot /boot biosboot sd0 (o cualquier otro dispositivo que sea su disco)
Si su instalación de OpenBSD va a ser lo que se llama un servidor de producción, es aconsejable disponer de algún tipo de respaldo por si acaso uno de sus discos fijos fallara.
Esta información le ayudará a usar las utilidades típicas dump(8)/restore(8) disponibles con OpenBSD. Existe una utilidad para copias de seguridad más avanzada, llamada "Amanda", con la que se pueden hacer copias de seguridad de múltiples servidores en una sola cinta. En la mayoría de entornos, dump(8)/restore(8) es suficiente. Sin embargo, si necesita hacer copias de seguridad de múltiples máquinas en una sola cinta, vale la pena que conozca Amanda.
Los dispositivos de ejemplo en este documento son para una configuración que usa discos y cintas SCSI. En un entorno de producción, se recomiendan los discos SCSI sobre los IDE debido al modo que gestionan los bloques erróneos, lo que no significa que esta información sea inútil si está usando un disco IDE u otro tipo de cinta; en este caso los nombres de sus dispositivos serán ligeramente diferentes. Por ejemplo, sd0a sería wd0a en un sistema basado en IDE.
Para hacer copias en una cinta es necesario saber de antemano dónde están montados los sistemas de archivo. Esto se puede determinar usando la orden mount desde el punto de pedido de la shell. Debería obtener una salida similar a ésta:
shell# mount /dev/sd0a on / type ffs (local) /dev/sd0h on /usr type ffs (local)
En este ejemplo, el sistema de archivo raíz (/) reside físicamente en sd0a, lo que indica que es la partición a del disco fijo SCSI 0. El sistema de archivo /usr reside en sd0h, lo que indica que es la partición h del disco fijo SCSI 0.
Otro ejemplo de una tabla de puntos de montaje más avanzado sería:
shell# mount /dev/sd0a on / type ffs (local) /dev/sd0d on /var type ffs (local) /dev/sd0e on /home type ffs (local) /dev/sd0h on /usr type ffs (local)
En este ejemplo, el sistema de archivo raíz reside físicamente en sd0a, el sistema de archivo /var reside en sd0d, el sistema de archivo /home en sd0e y finalmente, /usr en sd0h.
Para hacer copias de seguridad de su máquina necesitará pasar información a dump sobre el nombre de cada partición del disco fijo. Aquí tiene un ejemplo de las órdenes que se necesitan para hacer copias de la primera tabla de montaje (la más simple):
# /sbin/dump -0au -f /dev/nrst0 /dev/rsd0a # /sbin/dump -0au -f /dev/nrst0 /dev/rsd0h # mt -f /dev/rst0 rewind
Para la segunda tabla (la más avanzada), usaría algo parecido a esto:
# /sbin/dump -0au -f /dev/nrst0 /dev/rsd0a # /sbin/dump -0au -f /dev/nrst0 /dev/rsd0d # /sbin/dump -0au -f /dev/nrst0 /dev/rsd0e # /sbin/dump -0au -f /dev/nrst0 /dev/rsd0h # mt -f /dev/rst0 rewind
Puede revisar la página de manual de dump para averiguar qué es lo que hace exactamente cada uno de los parámetros en la línea de órdenes. Aquí tiene una breve descripción de los parámetros usados:
La última parte indica la partición de la que se hará la copia de seguridad (/dev/rsd0a, etc... ).
La orden mt se usa al final para rebobinar el controlador. Revise la página de manual de mt(1) para ver más opciones (como "eject").
Si no está seguro de cuál es el nombre de su dispositivo de cinta, use dmesg para localizarlo. Un ejemplo de entrada del dispositivo de cinta en dmesg será parecido al siguiente:
st0 at scsibus0 targ 5 lun 0: <ARCHIVE, Python 28388-XXX, 5.28>
Es posible que haya notado que al realizar la copia de seguridad, se accede al controlador de la cinta con el nombre del dispositivo "nrst0" en lugar de "st0", que es el nombre que se ve en dmesg. Cuando se accede a st0 como nrst0 se está accediendo al mismo controlador físico de la cinta, pero indicando al controlador que no debe rebobinar al final del proceso y que acceda al dispositivo en modo virgen. Para hacer copias de seguridad de múltiples sistemas de archivo en una sola cinta, asegúrese de usar el dispositivo sin rebobinar; si usa un dispositivo de rebobinado (rst0) para hacer copias de seguridad de múltiples sistemas de archivo, acabará anulando el sistema de archivo anterior cuando el próximo dump intente grabar en la cinta. Puede encontrar una descripción más elaborada sobre los distintos dispositivos de control de cinta en la página de manual de dump.
Si quiere escribir un pequeño guión (script), puede hacerlo como el siguiente:
echo " Empezando Copia de Seguridad Completa..." /sbin/dump -0au -f /dev/nrst0 /dev/rsd0a /sbin/dump -0au -f /dev/nrst0 /dev/rsd0d /sbin/dump -0au -f /dev/nrst0 /dev/rsd0e /sbin/dump -0au -f /dev/nrst0 /dev/rsd0h echo echo -n " Rebobinando el Dispositivo, por favor espere..." mt -f /dev/rst0 rewind echo "Fin." echo
Si desea programar las copias de seguridad para que se hagan por la noche o a cualquier otra hora, puede usar cron(8) para que lance el guión de forma automática.
También puede serle de ayuda documentar (en un trozo de papel) el tamaño necesario para cada sistema de archivo. Puede usar la orden df -h para determinar cuánto espacio está usando cada partición. Esto le será útil cuando el dispositivo falle y necesite recrear su partición en el nuevo dispositivo.
Restaurar sus datos también le ayudará a reducir la fragmentación. Para asegurarse de que tiene todos los ficheros, la mejor forma de hacer copias de seguridad es reiniciando el sistema en modo monousuario. Los sistemas de archivos no necesitan estar montados para hacer las copias. Después de reiniciar no se olvide de montar la partición raíz (/) con permisos de escritura (r) y lectura (w), o dump fallará cuando intente grabar los "dumpdates". Para iniciar en modo monousuario haga lo siguiente desde el punto de arranque:
boot> bsd -s
Después de que haya hecho las correspondientes copias de seguridad por primera vez, es una buena idea que pruebe su cinta y que se asegure de que los datos en ella sean los que Vd. esperaba que fueran.
Puede usar el siguiente ejemplo para revisar un catálogo de ficheros en una cinta:
# /sbin/restore -tvs 1 -f /dev/rst0
Esto hará que se muestre una lista con los ficheros existentes en la primera partición de la cinta. De acuerdo con los ejemplos anteriores, 1 sería su sistema de archivo raíz (/).
Para poder ver el contenido de la segunda partición de la cinta y enviar la salida a un fichero, use una orden como la siguiente:
# /sbin/restore -tvs 2 -f /dev/rst0 > /home/me/list.txt
Si tiene una tabla de particiones como la simple de ejemplos anteriores, 2 sería /usr; si la tabla es como la más avanzada, entonces 2 podría ser /var u otro sistema de archivo. El número de secuencia coincide con el orden en el que se graben los sistemas de archivo en la cinta.
El ejemplo que verá más adelante podría ser útil si su disco fijo fallara totalmente. En caso de que quiera restaurar sus sistemas de archivo desde un único fichero de la cinta, revise la página de manual de restore(8) y preste atención a las instrucciones sobre el modo interactivo.
Si se ha preparado bien, substituir un disco y restaurar sus datos desde la cinta puede ser un proceso muy rápido. El disquete de instalación/arranque estándar de OpenBSD contiene la utilidad que se requiere para restaurar, así como los binarios que se requieren para particionar y hacer que pueda arrancar desde su dispositivo. En la mayoría de los casos, este disquete y su cinta con la copia de seguridad más reciente será todo lo que necesite para restaurar el sistema.
Después de substituir físicamente el dispositivo de disco erróneo, los pasos básicos para restaurar sus datos son los siguientes:
shell# fdisk -e sd0
Revise la sección 14.2 sobre fdisk para más información.
shell# disklabel -E sd0
No se olvide de la partición de swap. Revise la sección 14.1 sobre disklabel para más información.
shell# newfs /dev/rsd0a shell# newfs /dev/rsd0h
shell# mount /dev/sd0a /mnt
shell# cd /mnt shell# restore -rs 1 -f /dev/rst0
shell# fdisk -i sd0
shell# cp /usr/mdec/boot /mnt/boot shell# /usr/mdec/installboot -v /mnt/boot /usr/mdec/biosboot sd0
shell# umount /mnt shell# halt
boot> bsd -s
La orden bsd -s hará que el núcleo del sistema inicie en modo monousuario, por lo que sólo necesitará el sistema de archivo raíz (/).
shell# mount -u -w /
(tabla de particiones simple) shell# mount /dev/sd0h /usr; cd /usr; restore -rs 2 -f /dev/rst0 (tabla de particiones más avanzada) shell# mount /dev/sd0d /var; cd /var; restore -rs 2 -f /dev/rst0 shell# mount /dev/sd0e /home; cd /home; restore -rs 3 -f /dev/rst0 shell# mount /dev/sd0h /usr; cd /usr; restore -rs 4 -f /dev/rst0
Puede usar "restore rvsf" en lugar de usar sólo "rsf", para ver lo nombres de los objetos mientras los extrae de la copia de seguridad.
[Volver al índice principal] [Sección 13.0 - IPsec]