Antes de nada aprenderemos a formatear y particionar un nuevo disco duro desde la consola en Debian. Esto nos será muy útil para poder añadirle discos duros a nuestro servidor cuando lo necesitemos, ya que no disponemos de monitor ni entorno gráfico para hacerlo como de costumbre.
Conectamos el disco duro a la placa base y le suministramos alimentación (en mi caso voy a probar con un disco muy antiguo de 8 Gb que resucité de un pc antiguo). Una vez hecho esto, iniciamos el servidor y desde un terminal nos logeamos como root y tecleamos:
#fdisk -l
Veremos algo parecido a esto:
Disco /dev/hda: 80.0 GB, 80026361856 bytes
255 heads, 63 sectors/track, 9729 cylinders
Units = cilindros of 16065 * 512 = 8225280 bytes
Disk identifier: 0xe29f786e
Disposit. Inicio Comienzo Fin Bloques Id Sistema
/dev/hda1 * 1 9399 75497436 83 Linux
/dev/hda2 9400 9729 2650725 5 Extendida
/dev/hda5 9400 9729 2650693+ 82 Linux swap / Solaris
Disco /dev/hdc: 8455 MB, 8455200768 bytes
255 heads, 63 sectors/track, 1027 cylinders
Units = cilindros of 16065 * 512 = 8225280 bytes
Disk identifier: 0×753fd0ae
Disposit. Inicio Comienzo Fin Bloques Id Sistema
Como podéis ver en la imagen el disco duro de 80 Gb es el que tiene ya las particiones echas, las tres ultimas lineas ofrecen información sobre el disco duro de 8 Gb.
Seguidamente vamos a editar el segundo disco llamando al dispositivo en cuestión. En mi caso hdc:
#fdisk /dev/hdc
Veremos algo como:
El número de cilindros para este disco está establecido en 1027.
No hay nada malo en ello, pero es mayor que 1024, y en algunos casos
podría causar problemas con:
1) software que funciona en el inicio (p.ej. versiones antiguas de LILO)
2) software de arranque o particionamiento de otros sistemas operativos
(p.ej. FDISK de DOS, FDISK de OS/2)
Orden (m para obtener ayuda):
Como podéis ver nos muestra un aviso así que no tenemos que hacerle demasiado caso ya que solo me sale en discos duros grandes y de momento no me a dado problemas.
Pulsamos la tecla n para crear una nueva partición.
Acción de la orden
e Partición extendida
p Partición primaria (1-4)
Primero nos deja optar por si vamos a querer que nuestra partición sea primaria o extendida. En mi caso voy a usar este disco con una sola partición así que voy a elegir primaria pulsando la tecla p
Número de partición (1-4):
Para el numero de partición introducimos el 1
Primer cilindro (1-1027, valor predeterminado 1):
Pulsamos la tecla Enter
Se está utilizando el valor predeterminado 1
Último cilindro o +tamaño o +tamañoM o +tamañoK (1-1027, valor predeterminado 1027):
Pulsamos la tecla Enter y listo
Orden (m para obtener ayuda):
Ahora guardamos los cambios y salimos del programa fdisk con la tecla w
Llamando a ioctl() para volver a leer la tabla de particiones.
Se están sincronizando los discos.
Una vez echo esto lo que aremos a continuación es darle formato para que sea compatible con nuestro Linux formateando la partición en ext3 con el siguiente comando:
#mkfs.ext3 /dev/hdc1
Veremos algo así:
mke2fs 1.41.3 (12-Oct-2008)
Etiqueta del sistema de ficheros=
Tipo de SO: Linux
Tamaño del bloque=4096 (bitácora=2)
Tamaño del fragmento=4096 (bitácora=2)
516096 nodos-i, 2062336 bloques
103116 bloques (5.00%) reservados para el superusuario
Primer bloque de datos=0
Número máximo de bloques del sistema de ficheros=2113929216
63 bloque de grupos
32768 bloques por grupo, 32768 fragmentos por grupo
8192 nodos-i por grupo
Respaldo del superbloque guardado en los bloques:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632
Escribiendo las tablas de nodos-i: hecho
Creating journal (32768 blocks): hecho
Escribiendo superbloques y la información contable del sistema de ficheros: hecho
Una vez completado el formateo veremos un mensaje informándonos sobre cuando se ejecutara una revisión del disco en busca de errores.
Este sistema de ficheros se revisará automáticamente cada 28 montajes o
180 días, lo que suceda primero. Utilice tune2fs -c o -i para cambiarlo.
Ahora vamos a montar esta partición, en mi caso la voy a usar como almacén y necesitamos crear un directorio para montar dicha partición. Creamos el directorio donde queremos que se monte nuestra nueva partición:
#mkdir /mnt/almacen
Ahora vamos a introducir los datos de esta partición en el fichero fstab para que al arrancar el ordenador se monte automáticamente como una partición mas del sistema.
#nano /etc/fstab
Veremos algo así:
# /etc/fstab: static file system information.
#
# <file system> <mount point> <type> <options> <dump> <pass>
proc /proc proc defaults 0 0
/dev/hda1 / ext3 errors=remount-ro 0 1
/dev/hda5 none swap sw 0 0
Lo que vamos a introducir son los datos de nuestra partición especificando en que directorio queremos que nos la monte. En mi caso voy a usarla de almacén y la voy a montar dentro de la carpeta de montaje mnt con el nombre almacen como podéis ver a continuación:
# /etc/fstab: static file system information.
#
# <file system> <mount point> <type> <options> <dump> <pass>
proc /proc proc defaults 0 0
/dev/hda1 / ext3 errors=remount-ro 0 1
/dev/hda5 none swap sw 0 0
/dev/hdc1 /mnt/almacen ext3 noatime 0 1
Ahora hacemos una prueba y cargamos todo el contenido del fichero fstab con el comando:
#mount -a
Desde ya tendríamos que tener la partición montada y lista para ser usada en /mnt/almacen, vamos a ver si esta montada ejecutando el comando:
#mount
Veremos que está montada correctamente:
/dev/hda1 on / type ext3 (rw,errors=remount-ro)
tmpfs on /lib/init/rw type tmpfs (rw,nosuid,mode=0755)
proc on /proc type proc (rw,noexec,nosuid,nodev)
sysfs on /sys type sysfs (rw,noexec,nosuid,nodev)
procbususb on /proc/bus/usb type usbfs (rw)
udev on /dev type tmpfs (rw,mode=0755)
tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev)
devpts on /dev/pts type devpts (rw,noexec,nosuid,gid=5,mode=620)
/dev/hdc1 on /mnt/almacen type ext3 (rw,noatime)
Y una vez visto esto, vamos a ver cómo configurar un servidor NFS en Linux para poder compartir una partición en nuestra red local y montarlo como si de una unidad mas se tratase en un cliente remoto.
Para comenzar vamos a abrir una terminal, nos identificaremos con nuestro súper usuario root e instalaremos los paquetes necesarios para la configuración de servidor de archivos NFS. Mas adelante configuraremos los clientes:
#apt-get install portmap
#apt-get install nfs-common
#apt-get install nfs-kernel-server
En la instalación de este ultimo veremos una pantalla como esta

Seleccionamos la opción Keep your currently-installed version y continuamos ejecutando el comando:
#rpcinfo -p
Nos mostrará un resultado como este:
programa vers proto puerto
100000 2 tcp 111 portmapper
100000 2 udp 111 portmapper
100024 1 udp 39787 status
100024 1 tcp 42048 status
100003 2 udp 2049 nfs
100003 3 udp 2049 nfs
100003 4 udp 2049 nfs
100021 1 udp 36153 nlockmgr
100021 3 udp 36153 nlockmgr
100021 4 udp 36153 nlockmgr
100003 2 tcp 2049 nfs
100003 3 tcp 2049 nfs
100003 4 tcp 2049 nfs
100021 1 tcp 51935 nlockmgr
100021 3 tcp 51935 nlockmgr
100021 4 tcp 51935 nlockmgr
100005 1 udp 40975 mountd
100005 1 tcp 47076 mountd
100005 2 udp 40975 mountd
100005 2 tcp 47076 mountd
100005 3 udp 40975 mountd
100005 3 tcp 47076 mountd
Tenéis que tener los mismos servicios que yo, así que si no ves alguno de ellos revisa la instalación de los programas anteriores.
Ahora necesitamos saber la ruta donde se encuentra la partición o directorio que queremos compartir con las maquinas conectadas a nuestra red. En mi caso voy a compartir un disco duro completo que usare como almacén de datos (el de 8 Gb), esté lo tengo montado en la ruta /mnt/almacen del servidor.
Para configurar la compartición de forma que todos los archivos que se creen en el servidor sean de un mismo propietario y grupo, sea cual sea el terminal desde el que se acceda, vamos a crear un propietario nuevo llamado nfs. Lo crearemos sin directorio home puesto que no vamos a darle uso como un usuario normal sino tan solo como propietario de los archivos compartidos de la red local.
#adduser –no-create-home nfs
Y modificamos los números UID y GID asignados por defecto en los archivos passwd y group, cambiándolos por 1111 y 1111, respectivamente. Esto lo hacemos para evitar que los números UID y GID del usuario nfs creado en el servidor coincida con los números UID y GID de otro usuario creado en otro teminal de la red y por tanto, los archivos creados desde allí aparezcan con el propietario del terminal (aunque sólo aparecerían en el propio terminal ya que si los viésemos desde el servidor aparecerían como propietario nfs).
#nano /etc/passwd
#nano /etc/group,
Una vez hecho esto necesitamos editar el archivo exports para indicarle que particiones o directorios queremos compartir.
#nano /etc/exports
Añadiremos lo siguiente:
# /etc/exports: the access control list for filesystems which may be exported
# to NFS clients. See unfsd(8).
/mnt/almacen 192.168.0.*(rw,sync,all_squash,anonuid=1111,anongid=1111)
donde /mnt/almacen es la ruta de montaje, 192.168.0.*es la ip broadcast acabada en asterisco, y (rw,sync,all_squash,anonuid=1111,anongid_1111) son las carácetrísticas que podemos darle al disco:
rw: permiten exportar el recurso para escritura y lectura.
sync:ndica que se realicen las operaciones de escritura en el disco instantáneamente. Permite una mayor tolerancia ante una falla del sistema que pudiera provocar inconsistencias en el file system, pero empeora el desenvolvimiento. Por defecto es async (la opuesta de sync).
all_squash:habilita el squashing para todos los usuarios, o sea todos los identificadores en el cliente se mapean al identificador del usuario nobody en el servidor.
anonuid y anongid:indican que al hacer squash no se traduzcan los identificadores de grupo y usuario a los de nobody sino a los del usuario y grupo indicados mediante estas opciones.
Si quisiéramos podríamos compartir X directorio con maquinas especificas y con permisos diferentes dependiendo de nuestras necesidades. Yo como quiero compartir esta unidad con toda mi red he optado por dar permisos de lectura y escritura para toda la red y no para una maquina especifica.
Damos permisos para que todos puedan leer y escribir en la unidad:
#chmod -R 777 /mnt/almacen
Seguidamente reiniciamos el servidor NFS para que coja los cambios que acabamos de hacer con:
#/etc/init.d/nfs-kernel-server restart
Ahora vamos a configurar el ordenador cliente. Existen dos formas:
1.-Mediante el archivo fstab
Para ello instalamos:
#apt-get install nfs-common
Luego creamos la carpeta donde se montará el disco:
#mkdir /mnt/servidor_almacen
Para que cuando arranque el solito nos conecte a nuestra unidad de red automáticamente vamos a configurar el fichero de montaje de unidades fstab y agregaremos nuestro nuevo dispositivo:
#nano /etc/fstab
Añadimos:
# /etc/fstab: static file system information.
#
# <file system> <mount point> <type> <options> <dump> <pass>
proc /proc proc defaults 0 0
/dev/sda1 / ext3 errors=remount-ro 0 1
/dev/sda6 /home ext3 defaults 0 2
/dev/sdb1 /media/datos01 ext3 defaults 0 2
/dev/sda5 none swap sw 0 0
/dev/scd0 /media/cdrom0 udf,iso9660 user,noauto 0 0
/dev/fd0 /media/floppy0 auto rw,user,noauto 0 0
192.168.0.XXX:/mnt/almacen /mnt/servidor_almacen nfs rw,hard,intr,user,defaults 0 0
Si nos fijamos en el ejemplo he agregado en la ultima linea la dirección ip de mi servidor, el directorio de montaje y la ruta donde quiero que se monte la unidad compartida.
2.-Mediante autofs
Para ello tendremos que instalar:
#apt-get install nfs-common
#apt-get install autofs
Esta otra forma de montaje en mi opinión es mejor. Lo que vamos a hacer es no montar desde el arranque el disco compartido, si no que sólo lo montaremos cuando accedamos a él. Mientras permanecerá sin montar. ¿Qué ventajas tiene esto? Bueno, para empezar que si no tenemos en un determinado momento el servidor encendido no pasará nada. En cambio con fstab intentará montar el disco (aunque con la opción soff en lugar de hard evitamos en cierto modo esto). Otra ventaja es que cuando son muchos clientes ahorramos recursos.
Autofs consulta el mapa maestro del archivo de configuración /etc/auto.master para ver qué puntos de montaje se han definido. Luego arranca un proceso automount con los parámetros adecuados para cada punto de montaje. Cada línea del mapa maestro define un punto de montaje y un archivo de mapa separado que define el sistema de archivos que se tiene que montar en este punto de montaje. Vamos a añadir un punto de montaje al archivo auto.master
#nano /etc/auto.master
Agregamos la línea dejándolo tal que así.
#
# $Id: auto.master,v 1.4 2005/01/04 14:36:54 raven Exp $
#
# Sample auto.master file
# This is an automounter map and it has the following format
# key [ -mount-options-separated-by-comma ] location
# For details of the format look at autofs(5).
#/misc /etc/auto.misc –timeout=60
#/smb /etc/auto.smb
#/misc /etc/auto.misc
#/net /etc/auto.net
/servidor /etc/auto.servidor –timeout=60
La estructura es <Punto de Montaje> <Ruta archivo auto.montaje> y una tercera opción <–timeout=xx> para indicar tiempo de desmontaje desde que entramos por última vez.
Ahora vamos a crear el archivo auto.servidor y en él especificaremos la carpeta de montaje, las opciones para definir el montaje y la ruta con la ip del servidor del disco a montar. Pondremos algo tal que así:
almacen -rw,soft,intr,rsize=8192,wsize=8192 192.168.0.XXX:/mnt/almacen
Como podemos ver <almacen> será el nombre de la carpeta donde se nos montará el disco. Luego vemos las opciones precedidas de un – <–opciones> y por último <ipdelservidor:rutacompartir>.
Ahora, podemos crear un accedo directo en cualquier parte para que se nos muestre la carpeta.
#ln -s /servidor/almacen /mnt/servidor_almacen
También compartiremos por ejemplo el directorio que antes creamos para el servicio FTP. Para ello, abrimos como root el archivo exports
#nano /etc/exports
Yagregamos la línea:
ftp -rw,soft,intr,rsize=8192,wsize=8192 192.168.0.XXX:/home/ftp
Ahora le cramos un acceso directo:
#ln -s /servidor/ftp /mnt/servidor_ftp
De este modo podremos gestionar los archivos del servidor FTP a través de un gestor de archivos desde cualquier terminal de la red.
CURIOSIDADES
http://miguelcarmona.name/blog/windows-como-cliente-nfs
Si tenemos algún PC con windows, existe una forma sencilla de acceder a nuestro servidor linux sin tener que instalar y configurar Samba (que sería más idóneo que NFS para estos casos).
Descargamos el software Servicios de Windows para UNIX 3.5 desde http://www.microsoft.com/downloads/details.aspx?familyid=896C9688-601B-44F1-81A4-02878FF11778&displaylang=en
Si tenemos Windows Xp Home, el software no funcionará para esta versión. En esta dirección http://oreilly.com/pub/h/2883 explican como corregirlo.
Extraemos los archivos (en una ruta que recordemos, por ejemplo c:\UNIX_services).
Lanzamos el asistente de instalación, aceptamos la licencia y elejimos “Custom Instalation”

Desactivamos todas las entradas excepto “Client for NFS” y “Authentication tools for NFS“

Continuamos, finalizamos y reiniciamos el equipo
En cualquier explorador de windows, elejimos Herramientas -> Conectar a unidad de red. Elejimos letra de unidad y en carpeta, introducimos los datos de acceso con la siguiente estructura:
servidor:/ruta_al/recurso_compartido/

Finalizamos y nos saldrá una confirmación con el usuario por el cual se está conectando al servidor nfs. Podemos también Examinar y seleccionar los recursos compartidos.