Además de los discos que conecta físicamente en su máquina (discos flexibles, CDs, discos duros, etc.) FreeBSD permite usar otro tipo de discos: los discos virtuales.
Esto incluye sistemas de ficheros en red como NFS y Coda, sistemas de ficheros basados en memoria y sistemas de ficheros basados en fichero.
Según la versión de FreeBSD que utilice tendrá que utilizar diferentes herramientas para la creación y uso de sistemas de ficheros en memoria y sistemas de ficheros basados en fichero.
Nota: Los usuarios de FreeBSD 4.X tendrán que usar MAKEDEV(8) para crear los dispositivos requeridos. FreeBSD 5.0 y posteriores usan devfs(5) para gestionar los nodos de dispositivo correspondientes de forma transparente para el usuario.
La utilidad vnconfig(8) configura y habilita vnodes de dispositivos de pseudodisco. Un vnode es una representación de un fichero y es el enfoque de la actividad de fichero. Esto significa que vnconfig(8) utiliza ficheros para crear y operar un sistema de ficheros. Un uso posible es el montaje de imágenes de disquetes o CD almacenadas como ficheros.
Para poder usar vnconfig(8) necesitará tener vn(4) en el fichero de configuración de su kernel:
pseudo-device vn
Para montar una imagen de un sistema de ficheros:
Ejemplo 18-4. Uso de vnconfig para montar una imagen de un sistema de ficheros bajo FreeBSD 4.X
# vnconfig vn0 imagendedisco # mount /dev/vn0c /mnt
Para crear una nueva imagen de un sistema de ficheros con vnconfig(8):
Ejemplo 18-5. Creación de una imagen nueva de un sistema de ficheros respaldado en un archivo con vnconfig
# dd if=/dev/zero of=nuevaimagen bs=1k count=5k 5120+0 records in 5120+0 records out # vnconfig -s labels -c vn0 nuevaimagen # disklabel -r -w vn0 auto # newfs vn0c Warning: 2048 sector(s) in last cylinder unallocated /dev/vn0c: 10240 sectors in 3 cylinders of 1 tracks, 4096 sectors 5.0MB in 1 cyl groups (16 c/g, 32.00MB/g, 1280 i/g) super-block backups (for fsck -b #) at: 32 # mount /dev/vn0c /mnt # df /mnt Filesystem 1K-blocks Used Avail Capacity Mounted on /dev/vn0c 4927 1 4532 0% /mnt
mdconfig(8) se usa para configurar y habilitar discos habilitar discos de memoria, md(4), en FreeBSD 5.X. Para usar mdconfig(8), tendrá que cargar el módulo md(4) o añadir soporte para el mismo el el fichero de configuración del kernel:
device md
mdconfig(8) soporta tres tipos de discos virtuales en memoria: discos de memoria asignados mediante malloc(9), discos de memoria usando un fichero o espacio de swap como respaldo. Un uso posible es montar imágenes de disquetes o CD archivadas.
Para montar una imagen de un sistema de ficheros:
Ejemplo 18-6. Uso de mdconfig para montar una imagen de un sistema de ficheros en FreeBSD 5.X
# mdconfig -a -t vnode -f imagendedisco -u 0 # mount /dev/md0 /mnt
Para crear una imagen nueva de un sistema de ficheros con mdconfig(8):
Ejemplo 18-7. Creación de un disco respaldado en fichero con mdconfig
# dd if=/dev/zero of=nuevaimagen bs=1k count=5k 5120+0 records in 5120+0 records out # mdconfig -a -t vnode -f nuevaimagen -u 0 # disklabel -r -w md0 auto # newfs md0c /dev/md0c: 5.0MB (10240 sectors) block size 16384, fragment size 2048 using 4 cylinder groups of 1.27MB, 81 blks, 256 inodes. super-block backups (for fsck -b #) at: 32, 2624, 5216, 7808 # mount /dev/md0c /mnt # df /mnt Filesystem 1K-blocks Used Avail Capacity Mounted on /dev/md0c 4846 2 4458 0% /mnt
Si no especifica el número de unidad con la opción -u
mdconfig(8) usará la
designación automática de md(4) para seleccionar
un dispositivo sin usar. El nombre de la unidad designada se enviará a la salida esándar
como md4. Para más información sobre mdconfig(8) consulte
su página de manual.
Nota: A partir de FreeBSD 5.1-RELEASE bsdlabel(8) reemplazó a disklabel(8). En bsdlabel(8) se eliminaron muchas opciones y parámetros obsoletos. En el ejemplo de arriba ignore la opción
-r
. Para más información consulte la página de manual de bsdlabel(8).
mdconfig(8) es muy útil, aunque requiere muchas líneas de comando para crear un sistema de ficheros basado en un fichero. FreeBSD 5.0 incorpora mdmfs(8), que configura un disco md(4) utilizando mdconfig(8), pone un sistema de ficheros UFS en él mediante newfs(8) y lo monta usando mount(8). Por ejemplo, si desea crear y montar la misma imagen de sistema de ficheros de arriba, simplemente teclée lo siguiente:
Ejemplo 18-8. Configurar y montar un disco basado en un fichero con mdmfs
# dd if=/dev/zero of=nuevaimagen bs=1k count=5k 5120+0 records in 5120+0 records out # mdmfs -F newimage -s 5m md0 /mnt # df /mnt Filesystem 1K-blocks Used Avail Capacity Mounted on /dev/md0 4846 2 4458 0% /mnt
Si utiliza la opción md
sin número de unidad, mdmfs(8) usará la
opción de auto unidad de md(4) para selecionar
automáticamente un dispositivo sin usar. Para más información sobre mdmfs(8) diríjase a la
página de manual.
El controlador md(4) es un modo sencillo y eficiente de crear sistemas de ficheros basados en memoria en FreeBSD 4.X. malloc(9) se usa para ubicar la memoria.
Sencillamete toma un sistema de ficheros que usted ha preparado con, por ejemplo, vnconfig(8), y:
Ejemplo 18-9. Disco de memoria md en FreeBSD 4.X
# dd if=nuevaimagen of=/dev/md0 5120+0 records in 5120+0 records out # mount /dev/md0c /mnt # df /mnt Filesystem 1K-blocks Used Avail Capacity Mounted on /dev/md0c 4927 1 4532 0% /mnt
Para más información por favor consulte la página de manual de md(4).
Se usan las mismas herramientas para tratar con sistemas de ficheros basados en memoria o en ficheros: mdconfig(8) o mdmfs(8). El almacenamiento de sistemas de ficheros basados en memoria requiere el uso de malloc(9).
Ejemplo 18-10. Creación de un nuevo disco basado en memoria con mdconfig
# mdconfig -a -t malloc -s 5m -u 1 # newfs -U md1 /dev/md1: 5.0MB (10240 sectors) block size 16384, fragment size 2048 using 4 cylinder groups of 1.27MB, 81 blks, 256 inodes. with soft updates super-block backups (for fsck -b #) at: 32, 2624, 5216, 7808 # mount /dev/md1 /mnt # df /mnt Filesystem 1K-blocks Used Avail Capacity Mounted on /dev/md1 4846 2 4458 0% /mnt
Ejemplo 18-11. Creación de un nuevo disco basado en memoria con mdmfs
# mdmfs -M -s 5m md2 /mnt # df /mnt Filesystem 1K-blocks Used Avail Capacity Mounted on /dev/md2 4846 2 4458 0% /mnt
En lugar de usar un sistema de ficheros respaldado en malloc(9), es posible
utilizar swap; lo único que debe hacer es sustituir malloc
por swap
en la línea de comando de mdconfig(8). mdmfs(8) por defecto
(sin -M
) crea un disco basado en swap). Para más información,
consulte las páginas de manual de mdconfig(8) y de mdmfs(8).
Cuando un sistema de ficheros basado en memoria o basado en fichero no se usa puede liberar recursos del sistema. Lo primero es desmontar el sistema de ficheros: use mdconfig(8) para desconectar el disco del sistema y liberar dichos recursos.
Por ejemplo, para desconectar y liberar todos los recursos usados por /dev/md4:
# mdconfig -d -u 4
Es posible listar información sobre dispositivos md(4) configurados en el sistema mediante mdconfig -l.
En FreeBSD 4.X se usa vnconfig(8) para desconectar el dispositivo. Por ejemplo, para desconectar y liberar todos los recursos usados por /dev/vn4:
# vnconfig -u vn4
Anterior | Inicio | Siguiente |
Bases para respaldos | Subir | Instantáneas (“snapshots”) de sistemas de ficheros |
Puede descargar éste y muchos otros documentos desde ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.
Si tiene dudas sobre FreeBSD consulte la documentación antes de escribir a la lista
<[email protected]>.
Envíe sus preguntas sobre la documentación a <[email protected]>.