Mostrando entradas con la etiqueta Sistemas de Archivos. Mostrar todas las entradas
Mostrando entradas con la etiqueta Sistemas de Archivos. Mostrar todas las entradas

DESCUBRIENDO LAS POSIBILIDADES DEL DIRECTORIO /PROC

El directorio /proc es una bestia extraña. Realmente no existe, sin embargo puedes explorarlo. Sus archivos de tamaño 0 no son ni binarios ni textos, sin embargo puedes examinarlos y desplegar su contenido. Este directorio especial contiene todos los detalles de tu sistema Linux, incluyendo el kernel, procesos y parámetros de configuración. Estudiando el directorio /proc, puedes aprender como los comandos de Linux trabajan e incluso es posible realizar tareas administrativas.

Bajo Linux, todo es administrado como un archivo; incluso los dispositivos son accedidos como archivos (en el directorio /dev). Aunque que podrías pensar que archivos "normales" son ya sea texto o binarios (o posiblemente dispositivos o archivos pipe), el directorio /proc contiene una extraño tipo de archivo: archivos virtuales. Estos archivos son listados, pero realmente no existen en disco; el sistema operativo los crea al vuelo si tratas de leerlos.

La mayoría de los archivos virtuales siempre tienen una marca de tiempo (timestamp) actual, lo que indica que están constantemente siendo actualizados. El directorio /proc en si mismo es creado cada vez que arrancas tu equipo. Se requiere ser root para poder examinar completamente el directorio en su totalidad; algunos de los archivos (tales como los relacionados a procesos) son propiedad del usuario que los ejecutó. Y aunque casi tdos los archivos son de solo lectura, hay algunos pocos con permisos de escritura (notablemente en /proc/sys) que permiten realizar cambios en los parámetros del kernel. (Queda claro que debes ser muy cuidados con esto)


Organización del directorio /proc

El directorio /proc está organizado en directorios virtuales y subdirectorios, que agrupan archivos de tópicos similares. Trabajando como root el comando ls /proc te despliega algo como lo siguiente:

#> ls /proc
1 2432 3340 3715 3762 5441 815 devices modules
129 2474 3358 3716 3764 5445 acpi diskstats mounts
1290 248 3413 3717 3812 5459 asound dma mtrr
133 2486 3435 3718 3813 5479 bus execdomains partitions
1420 2489 3439 3728 3814 557 dri fb self
165 276 3450 3731 39 5842 driver filesystems slabinfo
166 280 36 3733 3973 5854 fs interrupts splash
2 2812 3602 3734 4 6 ide iomem stat
2267 3 3603 3735 40 6381 irq ioports swaps
2268 326 3614 3737 4083 6558 net kallsyms sysrq-trigger
2282 327 3696 3739 4868 6561 scsi kcore timer_list
2285 3284 3697 3742 4873 6961 sys keys timer_stats
2295 329 3700 3744 4878 7206 sysvipc key-users uptime
2335 3295 3701 3745 5 7207 tty kmsg version
2400 330 3706 3747 5109 7222 buddyinfo loadavg vmcore
2401 3318 3709 3749 5112 7225 cmdline locks vmstat
2427 3329 3710 3751 541 7244 config.gz meminfo zoneinfo
2428 3336 3714 3753 5440 752 cpuinfo misc

Los directorios con números (más sobre esto en un momento) corresponden a cada proceso en ejecución; un autoenlace simbólico apunta al proceso actual. Algunos archivos virtuales proveen información sobre el hardware, tal como /proc/cpuinfo y /proc/interrupts. Otros proporcionan información relacionada a los archivos, tales como /proc/filesystems o /proc/partitions. Los archivos situados bajo /proc/sys son relacionados a la configuración de parámetros del kernel, como ya veremos.

El comando cat /proc/meminfo puede traer a la pantalla algo como lo siguiente:

# cat /proc/meminfo
MemTotal: 483488 kB
MemFree: 9348 kB
Buffers: 6796 kB
Cached: 168292 kB
...varias líneas cortadas...

Si ejecutas los comandos top o free, es posible que reconozcas algunos de estos valores. De hecho, varias utilerias muy conocidas acceden al directorio /proc para obtener su información. Por ejemplo, si tu quieres saber que tipo de kernel estás corriendo, puedes tratar con uname -srv, o ir directamente al origen y teclear cat /proc/version. Algunos otros archivos interesantes son:

  • /proc/apm: Proveé información sobre "Advanced Power Management", si es que esta instalado.
  • /proc/acpi: Un directorio similar al anterior que ofrece bastantes datos sobre el más moderno ACPI (Advanced Configuration and Power Interface). Por jemplo, para ver si tu laptop está conectada a la corriente AC, puedes usar cat /proc/acpi/ac_adapter/AC/state o en algunas distros cat /proc/acpi/ac_adapter/ACAD/state, y así obtendrás "on line" o "off line".
  • /proc/cmdline: Muestra los parámetros que fueron pasados al kernel al momento del arranque (boot time). En mi caso contiene lo siguiente: root=/dev/disk/by-id/scsi-SATA_FUJITSU_MHS2040_NLA5T3314DW3-part3 vga=0x317 resume=/dev/sda2 splash=silent PROFILE=QuintaWiFi, que me dice que en que partición está la raíz del filesystem, que modo VGA está en uso y más. El último parámetro tiene que ver con openSUSE's System Configuration Profile Management.
  • /proc/cpuinfo: Muestra datos sobre el procesador de tu equipo. Por ejemplo, en mi laptop, cat /proc/cpuinfo me da un listado que comienza con:.
    processor       : 0
    vendor_id : AuthenticAMD
    cpu family : 6
    model : 8
    model name : Mobile AMD Athlon(tm) XP 2200+
    stepping : 1
    cpu MHz : 927.549
    cache size : 256 KB

    Esto muestra que solo tengo un procesador, marcado como 0 de la familia 80686 (El '6' en la familia de cpu es dígito medio): un AMD Athlon XP, corriendo a poco menos de 1GHZ.

  • /proc/loadavg: Un archivo relacionado al anterior que muestra la carga promedio del procesador; su información incluye el uso de CPU en el último minuto, últimos cinco minutos y últimos 15 minutos, asi como el número de procesos actuales ejecutándose.
  • /proc/stat: También proporciona estadísticas, pero tomando en cuenta el último boot (arranque).
  • /proc/uptime: Un archivo pequeño que solo tiene dos números: por cuantos segundos tu sistema ha estado encendido, y cuantos segundos ha estado inactivo.
  • /proc/devices: Despliega todos los dispositivos actuales configurados y cargados de caracter y bloque. /proc/ide y /proc/scsi proveen datos sobre dispositivos IDE y SCSI.
  • /proc/ioports: Te muestra información sobre las regiones usadas para comunicaciones de E/S (I/O) de esos dispositivos.
  • /proc/dma: Muestra los canales "Direct Memory Access" en uso.
  • /proc/filesystems: Muestra cuáles tipos de sistemas de archivos (filesystems) están soportados por tu kernel. Una porción de esto puede lucir como esto:
    nodev   sysfs
    nodev rootfs
    nodev bdev
    nodev proc
    nodev cpuset
    ...some lines snipped...
    nodev ramfs
    nodev hugetlbfs
    nodev mqueue
    ext3
    nodev usbfs
    ext2
    nodev autofs

    La primera columna muestra si el sistema de archivos está montado en un dispositivo de bloques. En mi caso, tengo particiones configuradas con ext2 y ext3.

  • /proc/mounts: Muestra todos los "mounts" usados por tu máquina (la salida es muy similar a /etc/mtab). Similarmente, /proc/partititons y /proc/swaps muestra todas las particiones y el espacio swap respectivamente.
  • /proc/fs: Si estás exportando sistemas de archivos con NFS, este directorio tiene entre sus muchos subdirectorios y archivos a /proc/fs/nfsd/exports, que muestra los sistemas de archivos que están siendo compartidos y sus permisos.
  • /proc/net: No hay nada mejor que esto para información de red. Describir cada archivo en este directorio requeriría demasiado espacio, pero incluye dev (todos los dispositivos de red), varios archivos relacionados al firewall iptables, estadísticas de red y sockets, información sobre wireless y más.

También hay varios archivos relacionados a la RAM. Ya mencioné anteriormente /proc/meminfo, pero también tienes a tu disposición /proc/iomem, que muestra cuanta memoria RAM ha sido utilizada por tu sistema y /proc/kcore, que representa la memoría física de tu RAM. A diferencia de otros archivos virtuales, /proc/kcore muestra un tamaño que es igual a la memoria RAM más una pequeña sobrecarga. (No trates de darle cat a este archivo, porque su contenido es binario y solo desconfigurará tu pantalla). Finalmente, hay muchos archicos y directorios relacionados con el Hardware, tal como /proc/interrupts y /proc/irq, /proc/pci (para todos los dispositivos PCI), /proc/bus y demás, pero todos estos incluyen información muy específica que la mayoría de los usuarios no necesitarán.


¿Que hay en un proceso?

Como ya lo había mencionado, los directorios con nombre numérico representan a los procesos en ejecución. Cuando un proceso termina, su directorio /proc desaparece automáticamente. Si examinas cualquiera de estos directorios mientras existen, encontrarás bastantes archivos, táles como:

attr             cpuset   fdinfo    mountstats  stat
auxv cwd loginuid oom_adj statm
clear_refs environ maps oom_score status
cmdline exe mem root task
coredump_filter fd mounts smaps wchan

Veamos más de cerca a los archivos principales:

  • cmdline: Contiene el comando que inicio el proceso, con todos sus parámetros.
  • cwd: Enlace simbólico al directorio actual de trabajo (current working directory cwd) del proceso; enlaces exe a los procesos ejecutables y enlaces root a su directorio superior.
  • environ: Muestras todas las variables de ambiente para el proceso.
  • fd: Contiene los descriptores de archivo para el proceso, mostrando cuáles archivos o dispositivos lo están usando.
  • maps, statm and mem: Trabaja con la memoria en uso por el proceso.
  • stat and status: Proveé información acerca del estatus del proceso, pero el segundo es mucho más claro que el primero.

Estos archivos plantean varios retos de programación de shell scripts. Por ejemplo, si quieres cazar a los procesos zombie, puedes buscar en todos los directorios numerados y verificar si aparece "(Z) Zombie" en el archivo status. Una vez necesitaba verificar si cierto programa se estaba ejecutando: Lo que hice fue escanear y mirar a los archivos cmdline, buscando por la cadena indicada. (También puedes hacer esto con la salida del programa ps, pero no es el punto en este artículo). Y si quieres programar un programa que se vea mejor que top, toda la información que necesitas esta aqui.


Configurando el sistema: /proc/sys

/proc/sys no solo proveé información sobre el sistema, tambié facilita o permita cambiar parámetros del kernel al vuelo, y habilta o deshabilita características de usabilidad. (Por supuesto, esto puede dañar tu sistema, considérate avisado.)

Para determinar si puedes configurar un archivo o es solo de lectura, usa ls -ld; si un archivo tiene el atributo "w", significa que puedes configurar el kernel de alguna manera. Por ejemplo, ls -ld /proc/kernel/* comienza como esto:

dr-xr-xr-x 0 root root 0 2008-01-26 00:49 pty
dr-xr-xr-x 0 root root 0 2008-01-26 00:49 random
-rw-r--r-- 1 root root 0 2008-01-26 00:49 acct
-rw-r--r-- 1 root root 0 2008-01-26 00:49 acpi_video_flags
-rw-r--r-- 1 root root 0 2008-01-26 00:49 audit_argv_kb
-r--r--r-- 1 root root 0 2008-01-26 00:49 bootloader_type
-rw------- 1 root root 0 2008-01-26 00:49 cad_pid
-rw------- 1 root root 0 2008-01-26 00:49 cap-bound

Se puede observar que bootloader_type no está hecho para ser cambiado, pero otros archivos si lo están. Para cambiar un archivo, puedes usar algo como esto:

echo 10 > /proc/sys/vm/swappiness

Este ejemplo en particular cambiará el rendimiento de la paginación de la memoria virtual. Por cierto, estos cambios son solo temporales, y sus efectos desapareceran cuando tu reinicies el sistema; usa sysctl y el archivo de configuración /etc/sysctl.conf para afectar los cambios de manera permanente.

Veamos el nivel superior del directorio /proc/sys:

  • debug: Contiene (¡sorpresa!) información para depuración (debugging). Esto es muy bueno si estás metido en el desarrollo del kernel.
  • dev: Proveé parámetros para dispositivos específicos en tu sistema; por ejemplo, checa el directorio dev/cdrom.
  • fs: Ofrece datos sobre cada posible aspecto del sistema de archivos.
  • kernel: Te permite afectar la configuración del kernel y su operación directamente.
  • net: Te permite controlar aspectos relacionados a la red. Se cuidadoso, porque puedes perder conectividad.
  • vm: Trata con el subsistema VM.

Conclusión

El directorio especial /proc proveé información completa y detallada acerca de los trabajos internos de Linux y te permite ajustar a la medida muchos aspectos de su configuración. Si te tomas algo de tiempo para aprender las posibilidades de este directorio, estarás en posición de obtener un sistema Linux más perfecto. ¿Y no es acaso lo que todos queremos?.


Fuente: http://www.linuxtotal.com.mx

autor: Federico Kereki (fkereki.@gmail.com)
traducción: sergio.gonzalez.duran@gmail.com

Montar discos y particiones NTFS en Debian/Ubuntu

Gracias a ntfs-3g tenemos la posibilidad de montar cualquier disco duro o partición con sistema de archivos en ntfs de manera fácil y rápida, a la vez que nos permitirá interactuar con el disco o partición, leyendo y escribiendo datos. En las versiones más recientes de Debian (5.0, Lenny) y Ubuntu (8.10, Intrepid Ibex) ntfs-3g se encuentra preinstalado, y de no ser así, siempre podemos instalarlo con un simple comando desde la consola dado que se encuentra en los repositorios oficiales de ambas distribuciones.

Instalamos ntfs-3g:

sudo apt-get install ntfs-3g

Ahora bien, antes de montar el disco necesitamos saber el identificador de la partición que queremos montar. Si nuestro disco duro solo tiene un par de particiones (Windows y Linux) lo más probable es que la primera partición (Windows) se encuentre en /dev/sda1. Para saberlo, ejecutamos el comando:

sudo fdisk -l

Con esto nos saldrá una tabla con todos los discos detectados en nuestro equipo, así como sus particiones lógicas y primarias. Buscamos el que tenga NTFS como “File System” y lo identificamos, aunque a como ya mencioné es muy probable que sea /dev/sda1.

Ahora bien, procederemos a montar el disco duro o partición en nuestro sistema de archivos de Linux, para ello debemos crear primero el punto de montaje (directorio) a través del cual accederemos a los recursos del disco o partición a montar:

$ sudo mkdir /media/windows

Con lo anterior creamos el directorio /windows dentro de /media. Ahora solo debemos montar el disco o partición con la ayuda de ntfs-3g. Para ello, usamos el comando:

$ sudo mount -t ntfs-3g /dev/sda1 /media/windows -o force

Con esto el disco debe quedar monntado. Ahora solo falta modificar el fichero fstab para que el disco o partición de Windows se monte automáticamente cada vez que arranquemos el sistema. Para ello, simplemente editamos el fstab con el siguiente comando:

$ sudo gedit /etc/fstab

Una vez abierto el editor, añadimos al final del archivo esta linea (modifícala si el disco que vas a montar se encuentra en una ubicación diferente a /dev/sda1):

/dev/hda1    /media/windows     ntfs-3g    defaults,nls=utf8,umask=007,gid=46 0    1

Guardamos los cambios, cerramos el editor Gedit y listo. El disco se montará cada vez que reinicies el sistema.

Espero que el pequeño tutorial haya sido de ayuda, y más adelante mostraré algunos trucos para montar particiones NTFS en caso de que ntfs-3g no funcione.

Fuente: http://www.pcdigital.org/

El archivo /etc/passwd

El archivo /etc/passwd

El archivo /etc/passwd se utiliza para autenticar a un usuario en el momento de iniciar una sesión en un sistema HP-UX estándar. Dicho archivo contiene una entrada para cada cuenta del sistema HP-UX. Cada entrada consta de siete campos separados por el signo ortográfico de dos puntos; consulte la página de manual de passwd(4). Una entrada típica del archivo /etc/passwd presenta este aspecto:

robin:Z.yxGaSvxAXGg:102:99:Robin Hood,Rm 3,x9876,408-555-1234:/home/robin:/usr/bin/sh

Los campos contienen los siguientes datos (enumerados en orden de aparición) separados por dos puntos:

  1. El nombre de usuario (inicio de sesión), que consta de un máximo de ocho caracteres. (En el ejemplo: robin)

  2. El campo de contraseña cifrada. (Z.yxGaSvxAXGg)

  3. El número de identificación de usuario (uid), un número entero que varía entre 0 y MAXINT-1 (igual a 2.147.483.646 o 231 -2). (102)

  4. La identificación de grupo (gid), un número entero guardado en el archivo /etc/group que varía entre 0 y MAXINT-1. (99)

  5. El campo de comentario, que se utiliza para escribir información de identificación, como el nombre completo del usuario, la ubicación y los números de teléfono. Por motivos históricos, este campo también se llama gecos. (Robin Hood,Rm 3,x9876,408-555-1234)

  6. El directorio inicial, es decir, el directorio de inicio de sesión original del usuario. (/home/robin)

  7. El nombre de ruta del shell de inicio de sesión, que se ejecuta cuando el usuario inicia una sesión. (/usr/bin/sh)

El usuario puede cambiar la contraseña al llamar al comando passwd, el campo de comentario (el quinto campo) con el comando chfn y el nombre de ruta del programa de inicio de sesión (el séptimo campo) con el comando chsh. El administrador del sistema configura el resto de los campos. El número de identificación de usuario (uid) debe ser único.

Fuente: http://docs.hp.com/es/B2355-90957/ch08s03.html

Acceder a particiones Linux desde Windows

Cuantas veces necesitamos algun archivo de Linux, desde Windows?

Si como yo, necesitas tener en tu Pc más de un sistema operativo, y en este caso, uno de ellos es Windows, muchas ocaciones desde Windows necesitamos algun archivo que creamos en Linux, dado que Windows no puede leer particiones EXT2/EXT3, es necesario reiniciar.

Como todos sabemos, las particiones comúnmente usadas son, antiguamente FAT32, ahora NTFS, para entornos Windows. Pero Linux es diferente, ya que utiliza particiones tipo EXT3. Ya no es necesario dejar una particion NTFS/Fat32 para los archivos, que quieras compartir entre ambos sistemas operativos, ahora puedes acceder a tus particiones Linux con un programa que le da esa funcionalidad a Windows.

El programa es Ext2Fsd Ext2 File System Driver y puedes descargarlo desde aqui.

http://ubuntools.files.wordpress.com/2008/09/ext2fsd.jpg?w=500&h=406

Mientras se instala asegurate de habilitar la posibilidad de lectura/escritura para EXT3, una vez instalado es necesario “montar” la particion EXT3 a la cual deseas acceder, y lo haces seleccionando la partición y accediendo a Tools>MountPoint Management, donde asignas una letra para acceder a la unidad. Es necesario reiniciar para poder acceder a la partición.

Fuente: http://ubuntools.files.wordpress.com/2008/09/ext2fsd.jpg?w=500&h=406