martes, 19 de mayo de 2009

Montando unidades

Las unidades en linux son tratadas como ficheros, concretamente como ficheros de dispositivo y se encuentran dentro del directorio

/dev.

Los nombres son:


/dev/fd0 -> Primera disketera
/dev/fd1 -> Segunda disketera ( ... y así con todas las que haya)
/dev/hda -> Primer disco del primer canal IDE
/dev/hdb -> Segundo disco del primer canal IDE
/dev/hdc -> Primer disco del segundo canal IDE
/dev/hdd -> Segundo disco del segundo canal IDE
/dev/sda -> Primer disco SCSI
/dev/sdb -> Segundo disco SCSI ( ... y así con todos los que haya)

Ademas, los discos duros (tanto IDE como SCSI) tienen particiones, a las que llamamos:


/dev/hda1 -> Primera partición del primer disco del primer canal IDE
/dev/hda2 -> Segunda ...
/dev/hdb1 -> Primera partición del segundo disco ...

Para saber que unidades i particiones reconoce el sistema haremos

$ dmesg

Fijandonos especialmente en las lineas que definen las unidades, como por ejemplo:


hda: ST33210A, ATA DISK drive
hdb: ACER CD-910E/JAS, ATAPI CDROM drive
hda: ST33210A, 3098MB w/256kB Cache, CHS=787/128/63, (U)DMA
Partición check:
hda: hda1 hda2 hda3

Podemos ver como el sistema reconoce un disco duro (hda) con tres particiones (hda1, hda2 y hda3) y un CD-ROM (hdb) Vamos a ver como acceder a las unidades de almacenamiento, ya sean floppys, CDs, otros HDDs o unidades de red.
Los comandos son mount y umount para montar y desmontar unidades. La sintaxis general es:

$ mount -t tipo -o opciones /dev/dispositivo /directorio_de_montaje

y

$ umount /directorio_de_montaje

Tipo

Es el sistema de ficheros que contiene la unidad: MS-DOS, ext2, iso9660, etc.

Opciones

Son parámetros como lectura/escritura, montar automáticamente, etc

Dispositivo

Es el nombre que da linux a la unidad (hda1, hdb, fd0,etc)

Directorio de montaje

Es el directorio desde donde será accesible el sistema de archivos montado, debe existir antes de intentar montarlo y debe estar vacío, ademas ningún usuario debe estar en el momento de montaje en ese directorio.
El comando mount sin parámetros nos da una lista de las unidades montadas.
Las unidades montadas no pueden extraerse (ojo con los diskette!), antes hay que desmontarlas. Y para montar un sistema de archivos antes hay que tener un disco dentro (recordad que se montan los discos, no las unidades lectoras). Mas información en

$ man mount
$ man umount
$ man fstab

En todos los casos (menos ext2) es requisito indispensable haber recompilado el kernel con soporte para el sistema de ficheros que queremos montar.

Montar un diskette

$ mount -t tipo /dev/fd0 /mnt/floppy

El tipo generalmente es ext2 (disco linux) o vfat (disco DOS/WIN). No requiere mas parámetros.

Montar un CD-ROM

$ mount -t iso9660 /dev/XXX /mnt/cdrom

El dispositivo depende de donde tengamos instalado el CD-ROM, puede ser hda, hdb. El comando

$ dmesg | grep CD

nos informa de eso:


hdb: ACER CD-910E/JAS, ATAPI CDROM drive

En este caso el CD esta en /dev/hdb.

Montar otras unidades de disco

$ mount -t tipo /dev/XXX/mnt/directorio

De nuevo el tipo y la unidad dependen de nuestro sistema y para el directorio de montaje se suele usar un nombre que identifique el sistema montado, por ejemplo, para montar una unidad Windows que se encuentra en la primera partición del primer disco:

$ mount -t vfat /dev/hda1 /mnt/win

Y para montar un segundo disco con linux instalado en la primera partición:

$ mount -t ext2 /dev/hdb1 /mnt/linux

Montar unidades de red

$ mount -t nfs host:/directorio /mnt/host

Este caso es un poco diferente, host es el nombre de la máquina remota y directorio es el nombre del directorio de la máquina remota que queremos (y se nos permite) montar. De manera que para montar el directorio /usr de la máquina Storm en nuestro sistema haremos:

$ mount -t nfs Storm:/usr /mnt/Storm

En este caso puede ser necesario especificar algunas opciones. Ahora vamos a ver como automatizar la mayoría de estos comandos para no tener que teclearlos cada vez.

El archivo /etc/fstab

Este archivo contiene una lista de unidades y todos los parámetros necesarios para su montaje, la sintaxis es sencilla:

"# Unidad Punto de montaje Tipo Opciones"

Un ejemplo:

/dev/hda1 /mnt/dos vfat defaults 0 0

Para montar una unidad definida en el fstab basta con la orden:

$ mount /directorio_de_montaje

Para montar a la vez todas las unidades:

$ mount -a

Las unidades definidas en el fstab intentan montarse durante el arranque a menos que pongamos como opción noauto (muy aconsejable en CDs y floppys). Si queremos poner mas de una opción estas se separan por comas sin espacios entre ellas.

No hay comentarios: