Frequently Asked Questions para FreeBSD 2.X : Administración de sistema : Cómo puedo añadir mi nuevo disco a FreeBSD?
Previous: Cómo añado un usuario facilmente?
Next: Tengo un nuevo disco removible, como lo uso?

8.3. Cómo puedo añadir mi nuevo disco a FreeBSD?

La manera más fácil de hacer esto es desde el programa de instalación. Puedes arrancar el programa de instalacián ejecutando /stand/sysinstall como root.

Alternativamente, si todavía tienes el floppy de instalación, puedes arrancar desde él y usar el editor de etiquetas y particiones.

Si lo anterior no te funciona o si eres masoquista total a quien le gustan los interfaces arcanos así es como usar el programa disklabel manualmente:

CUIDADO: Debes leer y entender perfectamente lo que estás haciendo!. Los comandos aquí descritos pueden BORRAR tu sistema. Procede con precaución!. Recuerda, un BACKUP es tu amigo.

sysinstall insistirá en montar algo en / en el editor de etiquetas de disco. Tendrás que ejecutar manualmente disklabel antes de poder ejecutar newfs/. Esto significa que tendrás que hacer tu mismo los cálculos para las particiones. Mira si puedes obtener información del disco con disklabel -r <diskname> por ejemplo disklabel -r /dev/rwd0s2 asumiendo que tu nuevo disco es wd0, el primer disco IDE, y FreeBSD es el segundo slice (s2). Deberías ver algo como esto:-

        # /dev/rwd0s2:
        type: ESDI
        disk: wd0s2
        label:
        flags:
        bytes/sector: 512
        sectors/track: 63
        tracks/cylinder: 64
        sectors/cylinder: 4032
        cylinders: 610
        sectors/unit: 2459520
        rpm: 3600
        interleave: 1
        trackskew: 0
        cylinderskew: 0
        headswitch: 0           # milliseconds
        track-to-track seek: 0  # milliseconds
        drivedata: 0

        8 partitions:
        #        size   offset    fstype   [fsize bsize bps/cpg]
          c:  2459520        0    unused        0     0         # (Cyl. 0 - 609)
          e:  2459520        0    4.2BSD        0     0     0   # (Cyl. 0 - 609)
      

Aegurate que el tamaño es correcto, en este caso, 2459520 sectores x 512 bytes/sector / 2**20 (1 Megabyte) = 1200 MB. El resto de datos (b/s, t/c, s/c, interleave, etc.) deberían funcionar con los que salen por defecto con disklabel, pero mira esta nota para discos antiguos. fsize es el tamaño de fragmento del sistema de ficheros y bsize es el tamaño de bloque. 'c' es la partición que ocupa FreeBSD (o el disco completo en caso de una única partición para FreeBSD), y debe quedar como esta. No deberia ser usada para un sistema de ficheros. La partición 'c' es mágica en que es reconocida y usada por el kernel aunque no exista ninguna etiqueta en ella.

En el caso trivial de querer usar todo el sistema de ficheros para FreeBSD, la entrada para el campo "e" tiene que ser corregida poniendo fsize a 1023 y bsize a 8192 (8 fragmentos/bloque), los cuales son razonables. La entrada correcta para "e" seria:

        e:  2459520        0    4.2BSD     1024  8192
      

Ahora el caso mas complicado, donde queremos 2 particiones para 2 sistemas de ficheros. Siguiendo la convención de nombres BSD, las particiones serán wd0s2e y wd0s2f. Supón que tenemos 1200MB y asignamos 300 para "e" y los restantes 900 para "f". Los datos de las particiones serían:

        8 partitions:
        #        size   offset    fstype   [fsize bsize bps/cpg]
        c:  2459520        0    unused        0     0         # (Cyl. 0 - 609)
        e:   614400        0    4.2BSD     1024  8192
        f:  1843200   614400    4.2BSD     1024  8192
      

Nota: Puedes editar directamente el "disklabel" con ''disklabel -e wd0s2''. Para más información mira en disklabel.

Si tienes la versión 2.1.5 o superior, y quieres dedicar enteramente el disco para FreeBSD sin compartirlo con otros sistemas operativos, se pueden reducir las operaciones a realizar de la siguiente manera:

        # dd if=/dev/zero of=/dev/rwd0 count=100
        # disklabel -Brw wd0 auto
        # disklabel -e wd0
      

El primer comando dd asegura que no hay basura en el inicio del disco que pueda confundir al kernel. Lo siguiente a realizar es una generación automática de etiqueta usando los procesos por defecto ejecutados en el arranque del sistema. La edición de la etiqueta continua de la manera descrita anteriormente.

Has acabado!. Ahora debes inicializar el sistema de ficheros con algo como:

        newfs -d0 /dev/rwd0s2e
        newfs -d0 /dev/rwd0s2f
      

Dependiendo del nombre del disco y la partición, quizás sea requerida la ejecución del script /dev/MAKEDEV para la creación de los dispositivos.

Y montar tus nuevos discos/particiones (mira el comando mount)

        mount /dev/wd0s2e /mnt/foo
        mount /dev/wd0s2f /mnt/bar
      

Deberías editar el fichero /etc/fstab para montar automaticamente los discos/particiones al arrancar el sistema.

Glosario:

Fragment Size (fsize)

Unidad básica de almacenamiento para ffs. M. McKusick, W. Joy, S. Leffler, and R. Fabry, "A Fast File System for UNIX", ACM Transactions on Computer Systems 2, 3, pp 181-197, August 1984, (reprinted in the BSD System Manager's Manual, SMM:5) o /usr/share/doc/smm/05.fastfs/paper.ascii.gz en tu sistema.

Block Size (bsize)

Un bloque se compone de uno o mas fragmentos. Mira la referencia correspondiente en: <sys/disklabel.h>

Disklabel Characteristics for Older Disks (ESDI)

Necesitarás dar más información adisklabel si quieres usar un "disco verdadero". Necesitarás saber la geometría uniforme, cabezales reales, sectores y cilindros, como en los discos ESDI antiguos. Toda esta información debería ser facilmente localizable en la cubierta del propio disco, manual, etc.

Nombres del sistema de ficheros BSD

La partición 'a', por convención, está reservada para particiones 'bootables' y la partición 'b' para swap. Las particiones regulares deben empezar en la 'd'. La partición 'e' corresponde a la primera partición no bootable y a usar como sistema de ficheros.

Warning referente al espacio de swap

El espacio requerido por la tabla de partición de BSD está permitido en el sistema de ficheros. No empieces la partición swap en el cilindro 0.


Frequently Asked Questions para FreeBSD 2.X : Administración de sistema : Cómo puedo añadir mi nuevo disco a FreeBSD?
Previous: Cómo añado un usuario facilmente?
Next: Tengo un nuevo disco removible, como lo uso?