Capítulo 8. Discos, sistemas de archivos y cargadores de arranque

8.1. ¿Como puedo agregar mi nuevo disco duro a mi sistema FreeBSD?
8.2. ¿Como muevo mi sistema actual a mi nuevo y enorme disco?
8.3. ¿Qué particiones pueden usar con seguridad Soft Updates? Escuche que utilizar Soft Updates en / puede causar problemas. ¿Qué sucede con Journaled Soft Updates?
8.4. ¿Puedo montar otros sistemas de archivos no nativos bajo FreeBSD?
8.5. ¿Como monto una partición DOS secundaria?
8.6. ¿Existe un sistema de archivos criptográfico para FreeBSD?
8.7. ¿Cómo hago para arrancar FreeBSD y Linux® usando GRUB?
8.8. ¿Como arranco FreeBSD y Linux® usando BootEasy?
8.9. ¿Como cambio el indicador de arranque de ??? a algo que tenga más sentido?
8.10. ¿Como utilizo un nuevo disco removible?
8.11. ¿Por qué obtengo Incorrect super block al montar un CD?
8.12. ¿Por qué obtengo Device not configured al montar un CD?
8.13. ¿Por qué todos los caracteres no ingleses en los nombres de archivo se muestran como “?” en mis CDs cuando los monto en FreeBSD?
8.14. Un CD grabado bajo FreeBSD no puede ser leído bajo ningún otro sistema operativo. ¿Porque?
8.15. ¿Como puedo crear una imagen de un CD de datos?
8.16. ¿Porque no puedo hacer mount a un CD de audio?
8.17. ¿Como hago mount a un CD multi-sesión?
8.18. ¿Como hago para que los usuarios comunes puedan montar CD-ROMs, DVDs, dispositivos USB, y otros medios removibles?
8.19. Los comandos du y df muestran diferentes cantidades de espacio en disco disponible. ¿Qué esta pasando?
8.20. ¿Como agrego más espacio swap?
8.21. ¿Por qué FreeBSD ve mi disco como mas pequeño de lo que el fabricante dice que es?
8.22. ¿Como es posible para una partición estar más del 100% llena?
8.23. ¿Por qué FreeBSD pausa por un largo tiempo al iniciar cuando el sistema tiene gran cantidad de ram?

8.1.

¿Como puedo agregar mi nuevo disco duro a mi sistema FreeBSD?

Vea la sección Añadir discos en el manual de FreeBSD.

8.2.

¿Como muevo mi sistema actual a mi nuevo y enorme disco?

La mejor manera es reinstalar el sistema operativo en el nuevo disco, y luego mover los datos. Esto es altamente recomendado al seguir -STABLE por más de un lanzamiento o al actualizar una versión en lugar de instalar una nueva. Instale booteasy en ambos discos con boot0cfg(8) y luego arranque en modo dual hasta que este contento con la nueva configuración. Saltéese el próximo párrafo para averiguar como mover los datos luego de hacer esto.

Alternativamente, particiones y marque el nuevo disco con sade(8) o gpart(8). Si los discos están formateados con MBR, booteasy puede instalarse en ambos discos con boot0cfg(8) de manera que la computadora pueda arrancar en modo dual con el viejo o el nuevo sistema luego de que se haya realizado el copiado.

Una vez configurado el nuevo disco, los datos no pueden simplemente copiarse. En su lugar utilice las herramientas que entiendan los archivos de dispositivos y las banderas del sistema, tales como dump(8). Aunque se recomienda mover los datos mientras se encuentre en modo de un solo usuario, esto no es requerido.

Cuando los discos esten formateados con UFS, nunca use nada excepto dump(8) y restore(8) para mover el sistema de archivos raíz. Estos comandos también deberían ser usados al mover una única partición a otra partición vacía. La secuencia de pasos para usar dump para mover los datos de una partición UFS a una nueva partición es:

  1. newfs a la nueva partición

  2. mount en un punto de montaje temporal.

  3. cd a ese directorio.

  4. dump la vieja partición, concatenando la salida a la nueva.

Por ejemplo, para mover /dev/ada1s1a con /mnt como punto de montaje temporario, escriba:

# newfs /dev/ada1s1a
# mount /dev/ada1s1a /mnt
# cd /mnt
# dump 0af - / | restore rf -

Reorganizar particiones con dump lleva un poco más de trabajo. Para combinar una partición como /var con su padre, cree una nueva partición que sea lo suficientemente grande como para ambas, mueva la partición padre como se describió anteriormente, y luego mueva la partición hija al directorio vacío que creo la primera movida:

# newfs /dev/ada1s1a
# mount /dev/ada1s1a /mnt
# cd /mnt
# dump 0af - / | restore rf -
# cd var
# dump 0af - /var | restore rf -

Para separar un directorio de su padre, por ejemplo poniendo /var en su propia partición cuando no estaba ahi anteriormente, cree ambas particiones, luego monte la partición hija en el directorio apropiado en el punto de montaje temporario, luego mueva la vieja partición:

# newfs /dev/ada1s1a
# newfs /dev/ada1s1d
# mount /dev/ada1s1a /mnt
# mkdir /mnt/var
# mount /dev/ada1s1d /mnt/var
# cd /mnt
# dump 0af - / | restore rf -

Las utilidades cpio(1) y pax(1) también están disponibles para mover datos del usuario. Es sabido que estas utilidades pierden información de las baneras, de modo que úselas con cuidado.

8.3.

¿Qué particiones pueden usar con seguridad Soft Updates? Escuche que utilizar Soft Updates en / puede causar problemas. ¿Qué sucede con Journaled Soft Updates?

Respuesta corta: Soft Updates pueden por lo general usarse de manera segura en todas las particiones.

Respuesta larga: Soft Updates tiene dos características que pueden ser indeseables en ciertas particiones. Primero, una partición con Soft Updates tiene una pequeña chance de perder datos durante una falla del sistema. La partición no se corrompera dado que los datos simplemente se perderan. Segundo, Soft Updates puede causar faltas de espacio temporales.

Al usar Soft Updates, el kernel puede tomar hasta treinta segundos para escribir los cambios al disco físico. Cuando un archivo grande se borra el archivo aún reside en el disco hasta que el kernel realmente realice el borrado. Esto puede causar una condición de carrera muy simple. Suponga que un archivo grande es borrado y otro archivo grande se crea inmediatamente. El primer archivo grande no ha sido removido aún del disco físico, de modo que el disco puede no tener suficiente espacio para el segundo archivo grande. Esto producirá un error diciendo que la partición no tiene suficiente espacio, aun cuando una gran cantidad de espacio acaba de liberarse. Un par de segundos más tarde, la creación de archivos funciona de manera esperada.

Si un sistema falla luego de que el kernel acepte un gran trozo de datos para escribir a disco, pero antes de que los datos sean realmente escritos, los mismos pueden perderse. El riesgo es extremadamente mínimo, pero generalmente es manejable.

Estos problemas afectan a todas las plataformas que utilicen Soft Updates. ¿Qué significa esto para la partición raíz?

La información vital en la partición raíz cambia de manera muy esporádica. Si el sistema fallo durante la ventana de treinta segundos luego de que se realice este cambio, es posible que se pierdan datos. El riesgo es negligible para la mayoría de las aplicaciones, pero tenga en cuenta que existe. Si el sistema no puede tolerar este riesgo... ¡No use Soft Updates en el sistema de archivos raíz!

/ es tradicionalmente una de las particiones más pequeñas. Si /tmp esta en /, puede haber problemas con el espacio intermitente. Realizar un symlink de /tmp a /var/tmp resolverá este problema.

Finalmente, dump(8) no funciona en modo vivo (-L) en un sistema de archivos, con Journaled Soft Updates (SU+J).

8.4.

¿Puedo montar otros sistemas de archivos no nativos bajo FreeBSD?

FreeBSD soporta muchos otros sistemas de archivos.

UFS

Los CD-ROM que usen UFS pueden montarse directamente en FreeBSD. Montar particiones de discos de Digital UNIX y otros sistemas que soporten UFS puede ser más complejo, dependiendo de los detalles acerca del particionado de disco del sistema operativo en cuestión.

ext2/ext3

FreeBSD soporta particiones ext2fs y ext3fs. Vea ext2fs(5) para más información.

NTFS

Soporte para NTFS basado en FUSE esta disponible como un port (sysutils/fusefs-ntfs). Para más información vea ntfs-3g.

FAT

FreeBSD incluye un controlador de lectura-escritura FAT. Para más información vea mount_msdosfs(8).

ZFS

FreeBSD incluye un port del controlador de ZFS de Sun™. La recomendación actual es solo usarlo en plataformas amd64 platforms con suficiente memoria. Para más información. vea zfs(8).

FreeBSD incluye el Network File System NFS y la colección de ports de FreeBSD Ports Collection provee varias aplicaciones de FUSE para soportar muchos otros sistemas de archivos.

8.5.

¿Como monto una partición DOS secundaria?

Las particiones de DOS secundarias se encuentras luego de todas las particiones primarias. Por ejemplo, si E es la segunda partición DOS en el segundo dispositivo SCSI, habrá un dispositivo para slice 5 en /dev. Para montarlo corra:

# mount -t msdosfs /dev/da1s5 /dos/e

8.6.

¿Existe un sistema de archivos criptográfico para FreeBSD?

SI, gbde(8) y geli(8). Vea la sección Encriptar particiones de disco del manual de FreeBSD.

8.7.

¿Cómo hago para arrancar FreeBSD y Linux® usando GRUB?

Para arrancar FreeBSD usando GRUB, y añada lo siguiente a /boot/grub/menu.lst o /boot/grub/grub.conf, dependiendo de como sea usado por la distribución de Linux®.

title FreeBSD 9.1
	root (hd0,a)
	kernel /boot/loader

Donde hd0,a apunte a la partición raíz del primer disco. Para especificar el número de slice, utilice algo como esto (hd0,2,a). Por defecto, si el número de slice es omitido, GRUB busca la primera dado que tiene la partición a.

8.8.

¿Como arranco FreeBSD y Linux® usando BootEasy?

Instale LILO al inicio de la partición de arranque de Linux® en lugar de en el Registro de Arranque Principal Luego podrá arrancar LILO desde BootEasy.

Esto se recomienda al correr Windows® y Linux® dado que hace mucho más simple lograr que Linux® arranque nuevamente si Windows® es reinstalado.

8.9.

¿Como cambio el indicador de arranque de ??? a algo que tenga más sentido?

Esto no puede lograrse con el cargador de arranque estándar sin reescribirlo. Existen varios otros cargadores de arranque en la categoría sysutils de la colección de ports.

8.10.

¿Como utilizo un nuevo disco removible?

Si el disco ya tiene un sistema de archivos en el, use un comando como este:

# mount -t msdosfs /dev/da0s1 /mnt

Si el disco solo puede ser usado con sistemas FreeBSD, particionelo con UFS o ZFS. Esto proveerá soporte para nombres de archivo largos, mejoras en performance y estabilidad. Si el disco va a ser usado por otros sistemas operativos, una opción más portable, tal como msdosfs, es preferible.

# dd if=/dev/zero of=/dev/da0 count=2
# gpart create -s GPT /dev/da0
# gpart add -t freebsd-ufs /dev/da0

Finalmente, cree un nuevo sistema de archivos:

# newfs /dev/da0p1

y móntelo:

# mount /dev/da0s1 /mnt

Es una buena idea agregar una línea a /etc/fstab (vea fstab(5)) de manera que pueda simplemente escribir mount /mnt en el futuro:

/dev/da0p1 /mnt ufs rw,noauto 0 0

8.11.

¿Por qué obtengo Incorrect super block al montar un CD?

El tipo de dispositivo a montar debe estar especificado. Esto se describe en la sección del manual acerca de Usar CDs de datos.

8.12.

¿Por qué obtengo Device not configured al montar un CD?

Esto usualmente significa que no hay CD en el dispositivo, o que el dispositivo no es visible en el bus. Refiérase a la sección Usando CDs de datos del manual para una discusión detallada de este problema.

8.13.

¿Por qué todos los caracteres no ingleses en los nombres de archivo se muestran como ? en mis CDs cuando los monto en FreeBSD?

El CD probablemente use la extensión Joliet para guardar información acerca de archivos y directorios. Esto se discute en la sección del manual Usando CDs de datos.

8.14.

Un CD grabado bajo FreeBSD no puede ser leído bajo ningún otro sistema operativo. ¿Porque?

Esto significa que un archivo crudo fue grabado al CD, en lugar de crear un sistema de archivos ISO 9660. Dele un vistazo a la sección del manual acerca de Utilizar CDs de datos.

8.15.

¿Como puedo crear una imagen de un CD de datos?

Esto se dicute en la sección del manual acerca de Escribir datos a un sistema de archivos ISO. Para más información acerca de trabajar con CD-ROMs, vea la sección acerca de crear CDs en el capítulo de almacenamiento en el manual.

8.16.

¿Porque no puedo hacer mount a un CD de audio?

Intentar montar un CD de audio producira un error como cd9660: /dev/acd0c: Invalid argument. Esto es porque mount solo funciona en sistemas de archivos. Los CDs de audio no tienen sistemas de archivos; solo tienen datos. En su lugar, utilice un programa que lea CDs de audio, como el paquete o port de audio/xmcd.

8.17.

¿Como hago mount a un CD multi-sesión?

Por defecto, mount(8) intentara montar la última pista de datos (sesión) a un CD. Para cargar una sesión anterior, use el argumento de linea de comandos -s. Vea mount_cd9660(8) para ejemplos específicos.

8.18.

¿Como hago para que los usuarios comunes puedan montar CD-ROMs, DVDs, dispositivos USB, y otros medios removibles?

Como root ajuste la variable de sysctl vfs.usermount a 1.

# sysctl vfs.usermount=1

Para hacer que esto persista a un reinicio, agregue la línea vfs.usermount=1 a /etc/sysctl.conf de modo que se vuelva a ajustar al inicio del sistema.

Los usuarios solo pueden montar dispositivos que tienen permisos para leer. Para permitir que los usuarios monten un dispositivo los permisos deben establecerse en /etc/devfs.conf.

Por ejemplo, para permitir a los usuarios montar el primer dispositivo de USB añada:

# Prmitir a todos los usuarios montar un dispositivo USB.
	    own       /dev/da0       root:operator
	    perm      /dev/da0       0666

Ahora todos los usuarios pueden montar dispositivos que podrían leer a un directorio propio:

% mkdir ~/my-mount-point
% mount -t msdosfs /dev/da0 ~/my-mount-point

Desmontar el dispositivo es fácil:

% umount ~/my-mount-point

Habilitar vfs.usermount, no obstante, tiene implicaciones de seguridad negativas. Una mejor manera de acceder a medios formateados con MS-DOS® es usar el paquete emulators/mtools en la colección de ports.

Nota:

El nombre de dispositivo usado en los ejemplos anteriores debe ser cambiado de acuerdo a la configuración.

8.19.

Los comandos du y df muestran diferentes cantidades de espacio en disco disponible. ¿Qué esta pasando?

Esto se debe a como funcionan ambos comandos. du atraviesa el árbol de directorio, mide que tan largo es cada archivo, y presenta los totales. df únicamente le pregunta al sistema de archivos cuanto espacio tiene disponible. Pueden parecer cosas idénticas, pero un archivo sin una entrada de directorio afectara a df pero no a du.

Cuando un programa esta usando un archivo, y el mismo es borrado, el archivo no se borra realmente del sistema de archivos hasta que el programa deja de usarlo. El archivo es luego inmediatamente borrado del listado de directorio, de todas formas. Como ejemplo, considere un archivo que sea lo suficientemente grande como para afectar la salida de du y df. Un archivo que este siendo visto con more puede ser borrado sin causar un error. La entrada es borrada del directorio de modo que ningún otro programa o usuario pueda accederla. No obstante, du muestra que el archivo no existe dado que ha atravesado el árbol de directorios y el archivo no esta listado. df muestra que sigue alli, dado que el sistema de archivos sabe que more sigue usando ese espacio. Una vez que la sesión de more termine, du y df estarán de acuerdo.

Esta situación es común en servidores web. Mucha gente crea un servidor web en FreeBSD y ser olvida de rotar los archivos de log. El log de acceso llena /var. El nuevo administrador borra el archivo, pero el sistema se seguira quejando de que la partición esta llena. Parar y reiniciar el programa del servidor web liberara el archivo, permitiendo que el sistema libere espacio en disco. Para prevenir que esto pase, configure newsyslog(8).

Note que Soft Updates puede retrasar la liberación de espacio en el disco y que puede tomar hasta 30 segundos para que el cambio sea visible.

8.20.

¿Como agrego más espacio swap?

Esta sección del manual describe como hacer esto.

8.21.

¿Por qué FreeBSD ve mi disco como mas pequeño de lo que el fabricante dice que es?

Los fabricantes de discos calculan gigabytes como un millón de bytes cada uno, mientras que FreeBSD los calcula como 1,073,741,824 bytes cada uno. Esto explica porque, por ejemplo, los mensajes de arranque de FreeBSD reportan un disco que se supone que tenga 80 GB como si tuviera 76,319 MB.

También note que FreeBSD (por defecto) reserva 8% de espacio del disco.

8.22.

¿Como es posible para una partición estar más del 100% llena?

Una porción de cada partición UFS (8%, por defecto) esta reservada para su uso por el sistema operativo y el root usuario. df(1) no cuenta ese espacio al calcular la columna Capacity (Capacidad), de modo que puede exceder el 100%. Note que la columna Blocks (Bloques) siempre es mayor que la suma de las columnas Used (Usado) y Avail (Disponibilidad), usualmente por un factor del 8%.

Para más detalles, busque -m en tunefs(8).

8.23.

¿Por qué FreeBSD pausa por un largo tiempo al iniciar cuando el sistema tiene gran cantidad de ram?

FreeBSD 10.1 y versiones anteriores hacen una prueba de memoria tempranamente en el proceso de arranque. Cuando el sistema tiene una cantidad pequeña de memoria, la prueba toma un par de segundos. A las computadoras con diez o miles de gigabytes de memoria puede llevarles varios minutos completar el test. El test de memoria puede deshabilitarse añadiendo hw.memtest.tests=0 a /boot/loader.conf.

Para más detalles, vea loader.conf(5).

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 <questions@FreeBSD.org>.

Envíe sus preguntas sobre la documentación a <doc@FreeBSD.org>.