Juan Carlos Pérez González UD3. Administración e aseguramento da información. • Sistemas de ficheiros: características. Sistemas empregados na actualidade. • Sistemas de ficheiros distribuídos, transaccionais, cifrados, comprimidos e virtuais. • Xestión de sistemas de ficheiros mediante comandos e contornos gráficos. • Xestión de ligazóns. • Estrutura de directorios de sistemas operativos libres e propietarios. • Procura de información do sistema mediante comandos e ferramentas gráficas. • Xestión da información do sistema: rendemento e estatísticas. • Montaxe e desmontaxe de dispositivos en sistemas operativos: automatización. • Ferramentas de administración de discos: particións e volumes; desfragmentación e recoñecemento. • Extensión dun volume. Volumes distribuídos. Sistemas de tolerancia a fallos. • Copias de seguridade do sistema. Tipos de copias de seguridade. Plans e programación de copias de seguridade. • Recuperación en caso de fallo do sistema. Discos de arranque e de recuperación. Recuperación do sistema mediante consola. Puntos de recuperación. . 1. Sistemas de ficheros: características. Sistemas empleados en la actualidad El sistema de archivos o sistema de ficheros es el componente del sistema operativo encargado de administrar y facilitar el uso de las memorias periféricas. Sus principales funciones son la asignación de espacio a los archivos, la administración del espacio libre y del acceso a los datos resguardados. Estructuran la información guardada en un dispositivo de almacenamiento de datos o unidad de almacenamiento (normalmente un disco duro), que luego será representada ya sea textual o gráficamente utilizando un gestor de archivos. El acceso seguro a sistemas de archivos básicos puede estar basado en los esquemas de lista de control de acceso (access control list, ACL) que indican los permisos con los cuales se acceden a los archivos y directorios (un directorio no deja de ser un archivo). Las ACL hace décadas que demostraron ser inseguras, por lo que los sistemas operativos experimentales utilizan el acceso por capacidades. Los sistemas operativos comerciales todavía funcionan con listas de control de acceso 1 Juan Carlos Pérez González La estructura de directorios suele ser jerárquica, ramificada o "en árbol", aunque en algún caso podría ser plana. En algunos sistemas de archivos los nombres de archivos son estructurados, con sintaxis especiales para extensiones de archivos y números de versión como en el Sistema Windows. En otros, los nombres de archivos son simplemente cadenas de texto y los metadatos de cada archivo son alojados separadamente como en el caso de Linux.. En los sistemas de archivos jerárquicos, usualmente, se declara la ubicación precisa de un archivo con una cadena de texto llamada ruta (path, en inglés). La nomenclatura para rutas varía ligeramente de sistema en sistema, pero mantienen por lo general una misma estructura. Una ruta viene dada por una sucesión de nombres de directorios y subdirectorios, ordenados jerárquicamente de izquierda a derecha y separados por algún carácter especial que suele ser una barra diagonal (/) como en Linux o barra diagonal invertida (\) como en Windows y puede terminar en el nombre de un archivo presente en la última rama de directorios especificada. Algunos conceptos importantes: • Fragmentación: la distribución de los fragmentos de un archivo en áreas no continuas. Una excesiva fragmentación ralentiza su búsqueda lo que obliga a desfragmentar la unidad. • Journaling: mecanismo por el cual un sistema informático puede implementar transacciones. Se basa en llevar un journal o registro de diario en el que se almacena la información necesaria para restablecer los datos afectados por la transacción en caso de que ésta falle lo que permite la recuperación de archivos dañados • ACL y UGO(user, group, others): ambos son una forma de determinar los permisos de acceso apropiados a un determinado objeto, dependiendo de ciertos aspectos del proceso que hace el pedido. Para finalizar en el siguiente gráfico se muestra una comparativa de los tipos sistemas de ficheros de mayor influencia hasta la actualidad. 2 Juan Carlos Pérez González 2. Sistemas de ficheros distribuidos, transaccionales, cifrados, comprimidos e virtuales. Los sistemas de archivos actuales se basan en un sistema de archivos virtual (VFS) o conmutador de sistema de archivos virtual es su capacidad de crear una capa de abstracción encima de un sistema de archivos más concreto. El propósito de un VFS es permitir que las aplicaciones cliente tengan acceso a diversos tipos de sistemas de archivos concretos de una manera uniforme. Ello permite ser utilizada para tender un puente sobre las diferencias en los sistemas de archivos como Linux, Windows, Unix, etc... de modo que las aplicaciones pudieran tener acceso a archivos en los sistemas de archivos locales de esos tipos sin tener que saber a qué tipo de sistema de archivos están teniendo acceso. Sistemas de archivos distribuidos o en red Un sistema de archivos distribuido o sistema de archivos de red es un sistema de archivos que sirve para compartir archivos, impresoras y otros recursos como un almacenamiento persistente en una red de equipos. • NFS: El primer sistema de este tipo fue desarrollado por Sun que creó el sistema 3 Juan Carlos Pérez González de archivos de red NFS (Network File System). Otros sistemas notables utilizados fueron el sistema de archivos Andrew AFS y el sistema Server Message Block SMB, también conocido como CIFS. El sistema NFS es utilizado en un entorno de red de computadoras de área local. Posibilita que distintos sistemas conectados a una misma red accedan a ficheros remotos como si se tratara de locales. El sistema NFS está dividido al menos en dos partes principales: un servidor y uno o más clientes. Las estaciones de trabajo locales utilizan menos espacio de disco debido a que los datos se encuentran centralizados en un único lugar pero pueden ser accedidos y modificados por varios usuarios, de tal forma que no es necesario replicar la información. Los usuarios no necesitan disponer de un directorio “home” en cada una de las máquinas de la organización. Los directorios “home” pueden crearse en el servidor de NFS para posteriormente poder acceder a ellos desde cualquier máquina a través de la infraestructura de red. También se pueden compartir a través de la red dispositivos de almacenamiento como discos duros externos, unidades DVDROM. Todas las operaciones sobre ficheros son síncronas. Esto significa que la operación sólo retorna cuando el servidor ha completado todo el trabajo asociado para esa operación. En caso de una solicitud de escritura, el servidor escribirá físicamente los datos en el disco, y si es necesario, actualizará la estructura de directorios, antes de devolver una respuesta al cliente. Esto garantiza la integridad de los ficheros. La versión NFS actual versión 4 (NFSv4) incluye seguridad Kerberos, trabaja con firewall, permite ACLs (Crontrol de Listas de Acceso) y utiliza operaciones con descripción del estado. • Server Message Block o SMB es un Protocolo de red (que pertenece a la capa de aplicación en el modelo OSI) que permite compartir archivos e impresoras (entre otras cosas) entre nodos de una red. Es utilizado principalmente en ordenadores con Windows. 4 Juan Carlos Pérez González SMB fue originalmente inventado por IBM, pero la versión más común hoy en día es la modificada ampliamente por Microsoft que renombró SMB a Common Internet File System (CIFS) en 1998 y añadió más características, que incluyen soporte para enlaces duros y simbólicos y mayores tamaños de archivo. Samba no es más que es una implementación libre sobre sistemas Gnu/Linux y Unix del protocolo SMB con las extensiones de Microsoft. Sistemas de cifrado de archivos El sistema de cifrado de archivos (EFS) es una característica que permite almacenar información en el disco duro en formato cifrado para ayudarle a mantener la información a salvo. Éstas son algunas características destacadas de EFS: • El cifrado es sencillo. Se realiza activando una casilla en las propiedades del archivo o de la carpeta. • El usuario controla quién puede leer los archivos. • Los archivos se cifran cuando los cierra, pero cuando los abre quedan automáticamente listos para su uso. • Si cambia de idea con respecto al cifrado de un archivo, desactive la casilla en las propiedades del archivo. El usuario que cifró el archivo no tiene que preocuparse del proceso de cifrado. Es decir, no es necesario que descifre manualmente el archivo cifrado para poder utilizarlo. Puede abrir y cambiar el archivo de la manera habitual. Un sistema de archivos encriptado protegerá contra un ataque al disco duro. Cualquier persona que consiga poner sus manos en el sistema tendrá que usar la un ataque de fuerza bruta para adivinar la llave de encriptación, un obstáculo sustancial para llegar a los datos. En Linux hay diferentes herramientas de cifrado por ejemplo: dm-crypt, luks, freeOTFE, loop-aes entre otros. 5 Juan Carlos Pérez González Sistemas de Ficheros Comprimidos Los formatos de archivos comprimidos más usuales: • zip es un formato de almacenamiento sin pérdida, muy utilizado para la compresión de datos como documentos, imágenes o programas. Para este tipo de archivos se utiliza generalmente la extensión ".zip". Comprime cada uno de los archivos de forma separada ello permite recuperar cada uno de los ficheros sin tener que leer el resto, lo que aumenta el rendimiento. El problema, es que el resultado de agrupar un número grande de pequeños archivos es siempre mayor que agrupar todos los archivos y comprimirlos como si fuera uno sólo. A cambio, esto permite extraer cada archivo de forma independiente sin tener que procesar el archivo desde el principio ZIP se suele utilizar casi siempre con el algoritmo de Phil Katz. ZIP soporta un sistema de cifrado simétrico basado en una clave única. Sin embargo, este sistema de cifrado es débil. La aplicación inicial fue Pkzip luego surgieron otras libres o comerciales como WinZip, WinRAR, PeaZip y 7-Zip. • RAR (cuyas siglas significan Roshal ARchive en inglés) es un formato de archivo propietario, con un algoritmo de compresión sin pérdida utilizado para la compresión de datos y archivación, desarrollado por Eugene Roshal. El RAR es más lento que el ZIP, pero posee una mayor tasa de compresión. Otra característica de RAR es que posee una mejor redundancia de datos que ZIP. Además, este formato permite lo que se conoce como compresión sólida que permite comprimir varios ficheros juntos, de forma que un mismo diccionario se aplica a toda la información, con lo que el nivel de compresión es mayor. • deb es la extensión del formato de paquetes de software de Debian y derivadas y el nombre más usado para dichos paquetes. El programa predeterminado para manejar estos paquetes es dpkg, generalmente vía apt/aptitude aunque hay interfaces gráficas como Synaptic, PackageKit, Gdebi... Los paquetes deb incluyen dos archivos tar en formato gzip, bzip2 o lzma: uno de los cuales alberga la información de control y el otro los datos. • CAB (abreviatura de Cabinet) es el formato nativo de archivo comprimido de Microsoft Windows. Soporta compresión y firma digital, y se utiliza en una variedad de motores de instalación de Microsoft: Setup API, Device Installer, 6 Juan Carlos Pérez González AdvPack (para la instalación de componentes ActiveX de IE) y Windows Installer. El formato de archivo CAB admite tres métodos de compresión de datos: ▪ DEFLATE, creado por Phil Katz, el autor del formato de archivo ZIP. ▪ Quantum, con licencia de David Stafford, el autor del Quantum archiver. ▪ LZX, creado por Jonathan Forbes empleado de Microsoft. La extensión de archivo CAB se utiliza también en muchos instaladores (InstallShield y otros), aunque no es el mismo formato de archivo. • bzip2 es un programa libre desarrollado bajo licencia BSD que comprime y descomprime ficheros usando los algoritmos de compresión de Burrows-Wheeler y de codificación de Huffman. El porcentaje de compresión alcanzado depende del contenido del fichero a comprimir, pero por lo general es bastante mejor al de los compresores basados en el algoritmo LZ77/LZ78 (gzip, compress, WinZip, pkzip,...). Pero bzip2 emplea más memoria y más tiempo de ejecución. • 7z es un formato de compresión de datos sin pérdida con tasas muy altas, superando a las de los populares formatos zip y rar. La extensión de fichero para los archivos pertenecientes a este formato suele ser .7z. Puede utilizar diferentes algoritmos de compresión. Es libre y fue creado e implementado por los desarrolladores del programa 7-Zip bajo la licencia GNU LGPL. 3. Gestión de sistemas de ficheiros mediante comandos e contornos gráficos. Se da por hecho que se conoce la forma de crear directorios y ficheros en modo gráfico. Igualmente en Linux con lo que no los plantearemos aquí. Lo que daremos será un repaso general al manejo de ficheros y directorios mediante la línea de comandos. Ni que decir que las opciones en Linux son más amplias que Windows por la clara orientación de este último al entorno gráfico. • Windows ◦ Comodines * Este signo reemplaza cadenas de caracteres, por ejemplo dir *.txt se listan los archivos con el nombre [*] y con extensión txt. 7 Juan Carlos Pérez González ? : Este otro signo remplaza pero solo un carácter. Podemos especificar mas signos de interrogación. Con lo que si ponemos dir s???*.* Esto nos listaría los directorios y archivos con un nombre que empiecen por s y otras 3 letras cualquier mas unos carácter cualquiera, a continuación él.* que hace que se listen archivos con cualquier extensión. ◦ Ayudas Se ejecuta con el comando HELP aunque también podemos obtener ayuda de un comando determinado, introduciendo el comando y a continuación /?. Por ejemplo: dir /? ◦ MD: Viene de make directory. Función: Crear directorios Sintaxis: MD [unidad\ruta\] <nombre> ◦ RD: Viene de remove directory. Función: Borra un directorio (solo si este se encuentra vació). Sintaxis: RD [unidad\ruta\] <nombre> ◦ DIR: De directorio Función: Este comando procesa una visualización de todos los ficheros, directorios, de la ruta en la que nos encontramos.Mediante una serie de parámetros podemos modificar ese listado de visualización. Este comando funciona como un filtro. Sintaxis: DIR [unidad\directorio\fichero] Parámetros: podemos especificar unos parámetros para que se listen los archivos y directorios de una forma concreta: ▪ /P: Con este parámetro podemos restringir la secuencia de listado y detenerla hasta que pulsemos una tecla. Al pulsar una tecla se procesara el siguiente bloque de listado y así sucesivamente. ▪ /N: Ordena por nombre ▪ /E: Ordena por extensión ▪ /S: Ordena por tamaño ▪ /D: Ordena por fecha ▪ /G: Agrupa todos los directorios después de los ficheros. 8 Juan Carlos Pérez González ◦ CD: De change dir (cambiar directorio) Función: Permite cambiar de un directorio activo a otro. Sintaxis: CD [unidad:] \[ruta] \[directorio] Peculiaridades: Si deseamos retroceder un directorio no hace falta poner la ruta nos basta con poner cd.. ◦ MOVE: Viene de move (mover) Función: Este comando mueve ficheros de un directorio a otro. Este comando hace internamente una copia del archivo al directorio especificado a mover, luego borra el fichero de salida. Sintaxis: move [/y] <origen> <destino> Donde /y es un parámetro que poniéndolo el move moverá ficheros sin preguntar la confirmación de reemplazo a otros archivos que se puedan llamar de la misma forma al directorio de destino. A continuación debemos especificar el directorio de origen y el de salida o destino. ◦ TYPE: Función: Ver el contenido de archivos de texto, haciendo un listado (no permite el uso de comodines). Sintaxis: TYPE [unidad:] \[ruta]\[directorio]\<archivo> ◦ COPY: del ingles de copiar. Función: Este comando permite la copia de archivos o ficheros. Sintaxis: copy <fichero-origen> <fichero-destino> ◦ REN o RENAME: Viene de la palabra inglesa rename (renombrar). Función: Su función es dar un nuevo nombre a un fichero. No se puede renombrar y que haya dos archivos con el mismo nombre. Si los archivos llamados de forma igual se encuentran en directorios distintos si lo permiten. También podemos usar en este comando los comodines del dir Sintaxis: rename <nombre-actual> <nombre-nuevo> ◦ DEL: Su nombre viene de (delete). Función: Es el comando encargado de eliminar archivos. En este comando podemos usar los comodines que usábamos en el comando dir. Sintaxis: del [unidad:]\[ruta]\[directorio] \<archivo> 9 Juan Carlos Pérez González ◦ ERASE Función: Exactamente igual que el anterior Sintaxis: erase [unidad:]\[ruta]\[directorio]\<archivo> ◦ FC: file compare. Función: Sirve para comparar dos ficheros y verificar así que las copias son exactas. Sintaxis: FC fichero1 fichero2 Atributos de los ficheros Permiten asociar a los archivos unas características especiales (oculto, de sistema, de solo lectura, y de archivo). Estas características pueden estar activadas o desactivadas en los archivos a los que se refieren. Con este comando se puede visualizar y modificar atributos de ficheros. ◦ De solo lectura ( r ): Protege a un fichero de forma que solo puede ser leido y no modificado ni borrado. ◦ De archivo ( a ): Sirve para saber si un determinado fichero ha sido o no modificado. ◦ Oculto ( h ): Sirve para esconder un fichero. ◦ De sistema ( s ) : Sirve para identificar los archivos propios del sistema • ATTRIB Para visualizar: Sintaxis: attrib /s Para modificar atributos: Sintaxis: attrib <fichero> <+/-><a/h/s/a/r> Para listar con el dir ficheros con atributos: Sintaxis: dir /a:h Donde dir es el comando de listado de archivos, /a es la salida al comando attrib que mirara solo los archivos :h con el modificador h (oculto). Redireccionamiento y filtros • Operadores de redireccionamiento de salida: Es el signo de (mayor que): “>”. Este signo dirigirá el comando introducido hacia un dispositivo de entrada o salida. Por ejemplo, si ponemos en el 10 Juan Carlos Pérez González c:\>dir > director.txt. Esto hará que salgan todo el listado de dir en el archivo especificado • Operadores de redireccionamiento de entrada: Es el signo de (menor que): “<”. Indica que debe tomar los datos de entrada desde un fichero que se especifique (por supuesto debe existir dicho fichero) o de otro dispositivo, en lugar de tomarlos por teclado. c:\> director.txt. < dir • Operadores de redireccionamientos de adicción a un fichero: Se usa el signo doble mayor que: “>>”. La diferencia entre este y el anterior de redireccionamiento a un fichero, radica que este redirecciona el resultado a un fichero y si este fichero contiene ya algo pues lo añade al final. Mientras que el anterior en caso de existir el fichero y de contener algo, lo borraba para meter los nuevos datos surgidos del redireccionamiento. • Filtros Permiten redireccionar las ordenes a dispositivos de entrada y salida, también permite direccionar las ordenes a otras ordenes. Para ello cuenta con los FILTROS, para identificarlos usa el signo | (alt gr + 1). Los filtros con los que cuenta son: MORE, SORT, FIND. ◦ SORT: Este filtro ordena los datos de entrada. Por defecto los ordena según la primera letra de los datos de salida. Se refiere a la primera letra de cada fila de toda la columna. Sintaxis: SORT [/R] [/+numero] /R: Indica que debe invertir el orden de la ordenación, es decir que orden descendentemente, de mayor a menor. /+numero: Indica a MSDOS que en lugar de ordenar por el primer carácter (la primera columna), lo haga por el carácter que ocupe la posición que se le especifique. ◦ FIND: Este filtro localiza una cadena de caracteres dentro de un fichero, por tanto , es aconsejable que se emplee con un fi chero de texto. Este filtro recibe como entrada datos dispuestos en filas y devuelve solo aquellas filas que contienen la secuencia de caracteres o cadena que se ha especificado en la orden. 11 Juan Carlos Pérez González Sintaxis: : FIND /V /C /N /I <cadena> [fichero] /V: Muestra las líneas que no contienen la cadena. /C: Muestra las líneas que contienen la cadena. /I:Omite mayusculas y minúsculas. /N: Muestra las líneas de texto con la cadena y los numeros de esas líneas ◦ MORE : Permite obtener el resultado de una orden de forma paginada, si el resultado es mayor que la pantalla (mas de 25 lineas). Para así poder visualizarlo todo. • Linux • Linux dispone de un numeroso conjunto de utilidades para manipular archivos (individualmente o en grupos) con comandos en una terminal. Los más comunes e importantes (no todos): • cp: El comando cp abreviatura de copy, permite copiar archivos y directorios. cp [Opciones] archivo_fuente directorio_destino cp [Opciones] archivo_fuente archivo_destino Opciones -a conserva todos los atributos de los archivos. -b hace un backup antes de proceder a la copia. -d copia un vínculo pero no el fichero al que se hace referencia. -i pide confirmación antes de sobreescribir archivos. -p conserva los sellos de propiedad, permisos y fecha. -R copia los archivos y subdirectorios. -s crea enlaces en vez de copiar los ficheros. -u solo procede a la copia si la fecha del archivo origen es posterior a la del destino. -v muestra mensajes relacionados con el proceso de copia de los archivos. También puede copiar varios ficheros en un directorio determinado. 12 Juan Carlos Pérez González cp manual_linux_v1 ../../../doc/linux • mv: Modifica el nombre de los archivos y directorios moviéndolos de una ubicación a otra. mv [Opciones] fuente destino Opciones -d hace una copia de seguridad de los archivos que se van a mover o renombrar. -f elimina los archivos sin solicitar confirmación. -v pregunta antes de sobreescribir los archivos existentes. Trabaja tanto con archivos como con los directorios. mv manual_linux_v1 manuales/linux mv manual_linux_v1 manual_linux_v1_doc • rm: Elimina uno o más archivos o eliminar un directorio completo con la opción –r. rm [Opciones] archivos Opciones -f elimina todos los archivos sin preguntar. -i pregunta antes de eliminar un archivo. -r elimina todos los archivos que hay en un subdirectorio y el propio subdirectorio. -v muestra el nombre de cada archivo antes de eliminarlo. Para eliminar un fichero ha de tener permiso de escritura. rm –r documentos/ • mkdir: crear directorios. mkdir [Opciones] nombre_directorio Opciones -m modo, asigna la configuración de permisos especificada al nuevo directorio. -p crea directorios emparentados (en caso de que no existan). 13 Juan Carlos Pérez González mkdir manuales • rmdir: Elimina un directorio (siempre y cuando esté vacío). rmdir [Opciones] directorio Opciones -p elimina cualquier directorio emparentado que este vacío. Si tiene algún contenido, tendrá que utilizar el comando rm –r rmdir manual • ls: Listar el contenido de un directorio. ls [Opciones] [nombre_directorio o archivo] Opciones -a muestra todos los archivos. Incluyendo a los ocultos. -b muestra los caracteres no imprimibles de los nombres de los ficheros utilizando un código octal. -c ordena los archivos de acuerdo con la fecha de creación. -d muestra una lista en la que aparecen los directorios como si fuesen archivos (en vez de mostrar su contenido). -f muestra el contenido del directorio sin ordenar. -i muestra información de i-node. -l muestra la lista de archivos con formato largo y con información detallada (tamaño, usuario, grupo, permisos etc.). -p añade un carácter al nombre del archivo para indicar a que tipo pertenece. -r coloca la lista en orden alfabético inverso. -s muestra el tamaño (kb) de cada archivo próximo al solicitado. -t ordena la lista de acuerdo con la fecha de cada fichero. -R muestra una lista con el contenido del directorio actual y de todos sus subdirectorios. 14 Juan Carlos Pérez González Si se omite el nombre del directorio, mostrará el contenido del directorio en el que se encuentre. ls –al • cd: Cambiar de directorio. cd [directorio] Si escribe cd sin ningún nombre de directorio, se cambiará al directorio home del usuario. • pwd: Mostrar la ruta del directorio de trabajo actual. pwd El comando pwd imprime el directorio de trabajo en el que estamos. • chmod: Modifica los permisos de uno o más archivos o directorios. chmod [Opciones] [permiso_descripción] archivo Opciones -c muestra los archivos a los que se les han modificado los permisos. -f hace que no aparezca en pantalla ningún mensaje de error. -v muestra los cambios efectuados en los permisos de archivos. -R cambia los permisos de los archivos de todos los subdirectorios. Quien Acción Permiso u: usuario +: agregar r: lectura g: grupo -: quitar w: escritura o: otros =: asignar x: ejecutar a: todos s: ajustar con el ID del usuario. chmod u+xr manual_linux El usuario tendrá los permisos de lectura y ejecución sobre el archivo manual_linux 15 Juan Carlos Pérez González Por ejemplo para que todos tengan permiso de lectura en un determinado archivo se tipea, chmod a+r nombre_archivo. También se podría haber escrito: chmod u=r,g=r,o=r nombre_archivo. Otra forma de modificar los permisos es a través de un número octal de 3 cifras que ya vimos en la UD anterior. • cat: Muestra el contenido de un archivo utilizando la salida estándar (pantalla). cat [-benstvA] archivos Opciones -b números de líneas que no estén en blanco. -e muestra el final de una línea (como $) y todos los caracteres no imprimibles. -n numera todas las líneas de salida, comenzando por el 1. -s sustituye varias líneas en blanco por una sola. -t muestra las tabulaciones como ^l. -v muestra los caracteres no imprimibles. -A muestra todos los caracteres ( incluidos los no imprimibles). Normalmente, cat se utiliza para mostrar el contenido de un archivo o para concatenar varios dentro de un mismo fichero. Por ejemplo, cat archivo1, archivo2, archivo3 > todo combina los tres archivos dentro de uno solo llamado todo. • find: Muestra una lista con los archivos que coinciden con un criterio especifico. find [ruta] [opciones] 16 Juan Carlos Pérez González Opciones -depth procesa, en primero, el directorio en el que se esta y luego los subdirectorios. -maxdepyh n restringe la búsqueda a n niveles de directorios. -follow procesa los directorios que se incluyen dentro de los enlaces simbólicos. -name modelo localiza los nombres de los archivos que coinciden con el modelo. -ctime n localiza los nombres de los archivos creados n días atrás. -user nombre_usuario localiza los archivos pertenecientes al usuario especifico. -group nombre_grupo localiza los archivos pertenecientes al grupo específico. -path ruta localiza a los archivos cuya ruta coincide con el modelo propuesto. -perm modo localiza los archivos con los permisos especificados. -size +nK localiza los archivos cuyo tamaño (en kilobytes) es mayor de especificado. -print imprime el nombre de los archivos que encuentra. -exec comando [opciones] {} \; ejecuta el comando especificado analizando el nombre del archivo localizado. Si escribe find sin ningún argumento, la salida mostrará un listado en el que aparecen los archivos de todos los subdirectorios de la carpeta en la que se encuentre. Para ver todos los archivos cuyo nombre termine con .gz, tendrá que escribir: find . -name "*.gz ". Para buscar a partir del directorio /usr/doc todos los archivos con extensión bak y eliminarlos, utilizar el comando: find /usr/doc -name “*.bak” -exec rm -f {} \; 17 Juan Carlos Pérez González en donde la secuencia {} se substituirá por el nombre completo de cada archivo encontrado. • grep: busca en uno o más archivos las líneas que coincidan con una expresión regular (modelo de búsqueda). grep [opciones] modelo archivos Opciones -N muestra N líneas que contienen el modelo de búsqueda señalado. -c muestra el número de líneas que contienen el modelo de búsqueda. -f archivo lee las opciones del archivo especificado. -i ignora letras -l muestra los nombres de los archivos que contienen un modelo. -q devuelve el número de línea siguiente a aquellas en las que se encuentra el modelo de búsqueda. -v muestra las líneas que no contienen el modelo de búsqueda. El modelo es una expresión regular en los archivos especificados que tienen sus propias reglas. Generalmente se utiliza para buscar una secuencia de caracteres en uno o más archivos de texto. grep Juan ListadoDeAlumnos.txt 4. Gestión de Enlaces En Linux los enlaces ofrecen la posibibilidad de dar a un único fichero múltiples nombres. Estos ficheros van a ser identificados mediante el sistema operativo por su numero de inodo, el cual se genera de forma semialeatoria. Un inodo es un enlace que resulta el único identificador del fichero para el sistema 18 Juan Carlos Pérez González de ficheros. Un directorio, por tanto, será una lista de números de inodo con sus correspondientes nombres de fichero. Cada nombre de fichero en un directorio es un enlace a un inodo particular. • Enlaces Duros o hard links: La orden ln es usada para crear enlaces para un fichero. Usando ls -i, veremos el numero de inodo para el fichero. # ln //fichero creará un enlace para fichero. #ln fichero fhichero2 //creará un enlace llamado fichero2 que corresponderá al mismo fichero. Utilizando ls -i veremos que los dos ficheros tienen el mismo inodo. # ls -i fichero fichero2 Estos enlaces se denominan enlaces duros (hard links) porque directamente crean el enlace al inodo. Solamente podremos crear enlaces duros entre ficheros del mismo sistema de ficheros; los enlaces simbólicos no tendrán este tipo de restricciones. Cuando eliminamos un fichero con rm, en realidad, solamente estamos eliminando un enlace a un fichero. Si utilizamos la orden rm fichero Solamente el nombre fichero es eliminado, fichero2 seguirá existiendo. Un fichero estará definitivamente eliminado del sistema cuando no queden enlaces a el. En realidad, la norma es que los ficheros tengan solamente un enlace duro. Un modo de saber cuantos enlaces tiene un fichero es con la orden ls -l. #ls -l fichero fichero2 -rw-r-r- 2 root root 12 Aug 5 16:51 fichero -rw-r-r- 2 root root 12 Aug 5 16:50 fichero2 Insistimos, un directorio, por tanto, no es otra cosa que un fichero que contiene información sobre la dirección del enlace al inodo. También, cada directorio tiene al menos dos enlaces duros en el: . (punto) enlace que apunta a si mismo y .. (punto punto) enlace que apunta al directorio padre. En el directorio raíz (/), el enlace .. (punto punto) simplemente apunta a /. 19 Juan Carlos Pérez González En ciertas ocasiones puede resultar difícil localizar en que partes del árbol de directorio existen enlaces a determinados archivos. Con find podemos encontrarlos. find / -inum número • Enlaces Simbólicos (Soft): Un enlace simbólico permite dar a un fichero el nombre de otro, pero no enlaza el fichero con un inodo, es decir, en realidad lo que hacemos es enlazar directamente al nombre del fichero. Esto podría parecerse bastante a lo que Windows nos tiene acostumbrados con sus accesos directos. Con la orden ln -s creamos un enlace simbólico a un fichero. Por ejemplo: # ln -s archivo archivo2 Hay que tener en cuenta que el nombre del enlace simbólico no soporta rutas completas, por lo que para crearlo, será imprescindible situarse dentro del directorio en el que queramos que quede colocado dicho enlace. Si lo verificamos de nuevo con la orden ls -l vemos que el fichero fichero es un enlace simbólico apuntando a fichero2 # ls -l fichero fichero2 Los bits de permisos en un enlace simbólico no se usan (siempre aparecen como (rwxrwxrwx). En su lugar, los permisos del enlace simbólico son determinados por los permisos del fichero apuntado. Asimismo, si el fichero apuntado es eliminado, los enlaces simbólicos permanecen, pero ya no serán válidos y carecerán de sentido. Los enlaces duros y simbólicos son similares en su funcionamiento, pero hay algunas diferencias. Pueden crearse enlaces simbólicos a un fichero que no esté en el mismo dispositivo de almacenamiento. Los enlaces simbólicos son procesados por el núcleo de forma diferente a los duros, lo cual es solo una diferencia técnica, pero importante. Los enlaces simbólicos son de ayuda puesto que identifican al fichero al que apuntan; con enlaces duros no es tan fácil saber que fichero esta enlazado al mismo inodo. Aunque en un principio no pudiera parecernos que los enlaces valgan para mucho, el sistema operativo los usa muy a menudo, Los enlaces simbólicos son, por ejemplo, especialmente importantes para las imágenes de las librerías compartidas en /lib, lo que 20 Juan Carlos Pérez González facilita mucho la conexión de los diferentes programas con esas librerías. Cada enlace simbólico tiene su propio número de inodo lo que permite hacer enlaces simbólicos entre distintos sistemas de ficheros. En resumen las diferencias entre soft y hard links son: • Los enlaces simbólicos se pueden hacer con ficheros y directorios mientras que los duros solo entre ficheros. • Los enlaces simbólicos se pueden hacer entre distintos sistemas de ficheros, los duros no. • Los enlaces duros comparten el número de inodo, los simbólicos no. • En los enlaces simbólicos si se borra el fichero o directorio original, la información se pierde, en los duros no. • Los enlaces duros son copias exactas del fichero mientras que los simbólicos son meros punteros o “accesos directos”. 5. Estructura de directorios de sistemas operativos libres e propietarios. En Linux la estructura principal de directorios es la siguiente: • El primer directorio que encontramos es el directorio raíz, el principal. Se denomina “/“, “barra”, y de él dependen todos los demás. Todo, absolutamente todo, depende de él. • /root. Aquí es donde se guardan las cosas del usuario root o administrador del sistema. Como norma general, nosotros no nos conectamos con este usuario (por 21 Juan Carlos Pérez González temas de seguridad). El usuario root también tiene su escritorio, y en él podría guardar documentos, por lo tanto todos ellos se guardarían aquí. • /bin. Aquí se guardan los programas del propio Linux. Si trabajamos con la consola y escribimos un comando, se busca en este directorio para ver si lo encuentra. • /etc. Contiene, entre otras cosas, la configuración del sistema. Por ejemplo, la configuración de los discos duros y otras unidades están en /etc/fstab. • /dev. Aquí están las configuraciones de periféricos (impresoras, unidades extraíbles, etc). • /home. Donde los usuarios guardan sus datos. Si tenemos un usuario llamado “usuario”, sus datos estarán en un directorio llamado “/home/usuario”. Sólo hay una excepción: el usuario root. • /tmp. Directorio temporal. Muchas distribuciones borran periódicamente los archivos dentro de este directorio, por lo que no guardes aquí lo que quieras guardar. En Windows, en ocasiones, tenemos que ir a la opción “Liberar espacio en disco” y eliminar “Archivos temporales”. Linux borra de formá automática lo que sobra. • /usr. Aquí se encuentran las aplicaciones que vamos instalando con el tiempo. Este directorio a su vez está dividido en otros (bin, share, lib) para mantener ordenado el sistema. Aplicaciones que gestionan paquetes (como las que trae Ubuntu por defecto) se encargan de mantener este espacio ordenado y actualizado. • /opt. Aquí van cosas opcionales, como programas en fase de pruebas, si hacemos nuestros desarrollos… Si eres un usuario que no pruebas versiones beta, ni haces tus propios programas, no necesitarás tener nada aquí. • /media en este directorio es donde se montan los dispositivos externos, usb, disquetera, cdrom... • /boot Archivos fundamentales para el arranque. • /lib directorio de las librerías compartidas de diferentes aplicaciones • /sbin: ejecutables del sistema entre ellos algunos comandos. • /var— Directorio de información variable, log etc, entre ellas las archivos web si 22 Juan Carlos Pérez González actúa como servidor. En Windows desde el punto de vista del usuario tiene 3 directorios principales, aunque ocultos tiene más. • Program Files o Programas y Programa, Archivos de Programa, Archivos de Programa86 que contiene los ficheros y ejecutables programas instalados en el sistema. El número 86 indica que son programas en 32 bits. • Usuarios (Windows 7/10) ficheros y carpetas de los usuarios documentación dos usuarios • Windows contiene los ficheros de configuración, controladores de dispositivos, librerías dinámicas y todo aquello que está relacionado directamente con la administración del SO . Tanto en Linux como Windows esta configuración jerárquica inicial no significa que se inmutable y de hecho el administrador puede modificarla. 23 Juan Carlos Pérez González 6. úsqueda de información del sistema mediante comandos e herramientas gráficas. En Windows tenemos algunos comandos que nos permiten buscar información del sistema (ejecutando help en cmd.exe sale esta información). Solo destaco los de interés con el apartado en cuestión: • CACLS Muestra o modifica las listas de control de acceso (ACLs) de archivos. • CHKDSK Comprueba un disco y muestra un informe de su estado. • CHKNTFS Muestra o modifica la comprobación de disco al arrancar. • COMPACT Muestra o cambia el estado de compresión de archivos en particiones NTFS. • DATE Muestra o establece la fecha. • DRIVERQUERY Muestra el estado y las propiedades del controlador de dispositivo. • FSUTIL Muestra o configura las propiedades de sistema de archivos. • HELP Proporciona informaci¢n de ayuda para los comandos de Windows • ICACLS Muestra, modifica, hace copias de seguridad o restaura listas de control de acceso (ACL) para archivos y directorios. • LABEL Crea, cambia o elimina la etiqueta del volumen de un disco. • PATH Muestra o establece una ruta de búsqueda para archivos ejecutables. • SET Muestra, establece o quita variables de entorno de Windows. • SC Muestra o configura servicios (procesos en segundo plano). • SYSTEMINFO Muestra las propiedades y la configuración específicas del equipo. • TIME Muestra o establece la hora del sistema. • TITLE Establece el título de la ventana de una sesión de CMD.EXE. • TYPE Muestra el contenido de un archivo de texto. • VER • VOL Muestra la etiqueta del volumen y el número de serie del disco. Muestra la versión de Windows. 24 Juan Carlos Pérez González • WMIC1 Muestra información de WMI en el shell de comandos interactivo. Mediante WMIC es posible la administración de equipos, tanto locales como remotos y es posible ejecutar cualquier tipo de tareas como obtener información, iniciar, detener, pausar procesos y servicios así como cambiar cualquier tipo de configuración en el equipo al que se tenga acceso como administrador. Otros comandos que permite abrir ventanas que permiten configurar el sistema son: • bootcfg: Permite ver y modificar las entradas del archivo boot.ini. Estas entradas nos permiten seleccionar con que sistema operativo deseamos iniciar el equipo. • control userpasswords2: Permite modificar las claves y los permisos de los diferentes usuarios, así como requerir la pulsación de control+alt+suprimir para poder iniciar sesión, haciendo el inicio de sesión más seguro. • dxdiag: Lanza la herramienta de diagnóstico de Direct X, con la cual podremos comprobar la versión Direct X que tenemos instalada y permite comprobar mediante tests que todo lo referente a estos controladores funcione correctamente. • gpresult: Muestra información sobre las políticas de grupo aplicadas a un usuario. • gpupdate: Vuelve a aplicar las políticas de grupo. • msconfig: Desde esta aplicación en modo gráfico podremos seleccionar que programas y servicios se cargan durante el inicio de Windows así como los sistemas operativos que el usuario puede seleccionar para iniciar el ordenador. 1 Más información sobre Wmic 25 Juan Carlos Pérez González • pagefileconfig: Permite configurar el archivo de paginación de Windows. • prncnfg: Muestra información sobre las impresoras instaladas • prnjobs: Muestra información sobre los trabajos de impresión en cola. • reg: Permite ver y modificar valores del registro de Windows. Las opciones posibles son: reg query => realiza una consulta en el registro reg add => añade una entrada al registro reg delete => elimina una clave del registro reg copy => copia una clave del registro a otra parte del registro o a otro equipo reg save => guarda una parte del registro en un archivo reg restore => restaura una parte del registro de un archivo reg load => carga una clave o árbol al registro desde un archivo reg unload => descarga una clave o árbol del registro reg compare => compara varios valores del registro reg export => exporta el registro o parte del registro a un archivo reg import => importa el registro o parte del registro de un archivo 26 Juan Carlos Pérez González • sfc: Este comando permite buscar archivos del sistema dañados y recuperarlos en caso de que estén defectuosos (es necesario el CD de instalación del sistema operativo para utilizarlo). Para realizar una comprobación inmediata, deberemos ejecutar la orden sfc /scannow. • systeminfo: Muestra información sobre nuestro equipo y nuestro sistema operativo: número de procesadores, tipo de sistema, actualizaciones instaladas… • taskkill: Permite eliminar un proceso conociendo su nombre o el número del proceso (PID). • tasklist: Realiza un listado de todos los procesos que hay. Útil si deseamos eliminar un proceso y no conocemos exactamente su nombre o su PID. • Redes: (los veréis en el módulo correspondiente) • at: Permite programar tareas para que nuestro ordenador las ejecute en una fecha o en un momento determinado • logoff:: Este comando nos permite cerrar una sesión iniciada, ya sea en nuestro ordenador o en otro ordenador remoto. • msg: Envía un mensaje a unos o varios usuarios determinados mediante su nombre de inicio de sesión o el identificador de su sesión • msiexec: Permite instalar, desinstalar o reparar un programa instalado mediante un paquete MSI (archivos con extensión .msi). • runas: Permite ejecutar un programa con privilegios de otra cuenta. Útil por 27 Juan Carlos Pérez González ejemplo si estamos como usuario limitado y queremos hacer algo que necesite privilegios de administrador. • shctasks: Permite administrar las tareas programadas. • shutdown: Permite apagar, reiniciar un ordenador o cancelar un apagado. Para acceder a estas opciones del MMC (Microsfot Managemente Console), no es necesario entrar en la consola del sistema (cmd.exe), sino que basta con introducirlos directamente desde Inicio –> Ejecutar. • ciadv.msc: Permite configurar el servicio de indexado, que acelera las búsquedas en el disco duro. • compmgmt.msc: Da acceso a la Administración de equipos, desde donde podemos configurar nuestro ordenador y acceder a otras partes de la MMC. • devmgmt.msc:: Accede al Administrador de dispositivos. • dfrg.msc: Desfragmentador del disco duro. • diskmgmt.msc: Administrador de discos duros. • fsmgmt.msc: Permite administrar y monitorizar los recursos compartidos. • gpedit.msc: Permite modificar las políticas de grupo. • lusrmgr.msc: Permite ver y modificar los usuarios y grupos locales. • ntmsmgr.msc: Administra y monitoriza los dispositivos de almacenamientos extraíbles. • ntmsoprq.msc: Monitoriza las solicitudes del operador de medios extraíbles. • perfmon.msc: Monitor de rendimiento del sistema. • secpol.msc: Configuración de la política de seguridad local. • services.msc: Administrador de servicios locales. • wmimgmt.msc: Configura y controla el servicio Instrumental de administración (WMI) de Windows. En Linux los comandos que permiten buscar información sobre el sistema son (citaremos solo algunos): • man comando información sobre el comando en cuestión, opciones... También se puede utilizar help comando • finger muestra los usuarios conectados al sistema 28 Juan Carlos Pérez González • last muestra los últimos usuarios conectados al sistema • cal año muestra un calendario • tzconfig permite configurar el huso horario • hwclock permite configurar el reloj del sistema • uptime muestra el tiempo que lleva el sistema encendido • hostname nombre del sistema y modificarlo • id usuario muestra el UID del usuario • lspci -tv muestra los dispositivos pci del sistema • whereis busca los ejecutables, fuentes y manuales de un programa o comando • lshw muestra el hardware del sistema • top muestra los procesos que se están ejecutando en el sistema • free muestra la cantidad de memoria swap y RAM libre del sistema • df -h muestra el espacio ocupado y libre del sistema • find busca el fichero que se le pasa por argumento • du -h muestra el tamañao de los subdirectorios y del directorio en cuestión • pwd muestra el directorio actualizaciones • whoami muestra quien es el usuario conectado • ps -aux procesos activos • pstree procesos activos y su relación padre-hijo • kill -9 PID mata el proceso de número PIC • fdisk -l muestra las particiones del sistema • head muestra las 10 primeras líneas de un fichero • tail muestra las 10 últimas líneas de un fichero • vmstat Muestra estadísticas de uso de la memoria, cpu, lectuas/escrituras en disco, etc • uname -a muestra la distribución • ulimit muestra y modifica ciertos límites del sistema (tamaño de archivos, del segmento de pila...) • init numeronivel modifica el número de arranque del sistema Estos son solo unos cuantos, existen varios más, por ejemplo los relacionados con redes, 29 Juan Carlos Pérez González programación... algunos los iremos introduciendo a medida que avancemos en el curso. A diferencia de Windows, Linux presenta una riqueza de comandos de consola que se hace difícil dominarlos en un curso o módulo. Solo a lo largo del tiempo, estudios y según trayectoria profesional acabas conociendo “casi todos”. 7. Montaje e desmontaje de dispositivos en sistemas operativos: automatización. Se verá en el módulo Fundamentos de Hardware 8. Herramientas de administración de discos: particiones y volúmenes: defragmentación. De las múltiples herramientas de administración de discos, nos quedaremos con tres: Gparted en Linux y Easeus Partition Free en Windows. Su uso se realizará en una práctica. Windows también puede gestionar los discos y la información que contienen en base a particiones y volúmenes con un gestor nativo como diskmgmt.msc Una partición de un disco duro es una división lógica en una unidad de almacenamiento en la cual se alojan y organizan los archivos mediante un sistema de archivos. Existen distintos esquemas de particiones para la distribución de particiones en un disco. Los más conocidos y difundidos son MBR (Master Boot Record) y GPT (GUID Partition Table). Para poder contener datos, las particiones tienen que poseer un sistema de archivos. El espacio no asignado en un disco no es una partición, por lo que no puede tener un sistema de archivos. Los discos ópticos (DVD, CD) utilizan un tipo de particiones llamada UDF (Universal Disc Format, "Formato de Disco Universal" por sus siglas en inglés), el cual permite agregar archivos y carpetas y es por ello que es usado por la mayoría de software de escritura por paquetes, conocidos como programas de grabación de unidades ópticas. En Windows, las particiones reconocidas son identificadas con una letra seguida por dos puntos (por ejemplo, C:), aunque también pueden ser montadas en directorios (por ejemplo C:\Users). En sistemas UNIX y Linux, las particiones de datos son montadas en un mismo y único árbol jerárquico, en el cual se montan a través de una carpeta (/), proceso que sólo el superusuario (root) puede realizar. 30 Juan Carlos Pérez González Es común que en los sistemas basados o similares a UNIX generalmente se usan hasta con 3 particiones: la principal, montada en el directorio raíz (/); una segunda que se usa para montar el directorio /home, el cual contiene las configuraciones de los usuarios; y finalmente, una tercera llamada swap, que se usa para la memoria virtual temporal. Sin embargo, 2 particiones (/, y swap) es el mínimo suficiente en estos sistemas operativos. A las particiones de intercambio (swap) no se les asigna un directorio; este tipo de particiones se usa para guardar ciertas réplicas de la memoria RAM, para que de esta forma la RAM tenga más espacio para las tareas en primer plano. Para tener la posibilidad de múltiples particiones en un sólo disco, se utilizan las particiones extendidas. Éstas fueron creadas con el propósito de contener un número ilimitado de particiones lógicas en su interior. No es recomendado usar éstas para instalar sistemas operativos, sino que son más útiles para guardar documentos. Es necesario tener en cuenta que sólo las particiones primarias y lógicas pueden contener un sistema de archivos propio. Las particiones extendidas carecen de esta característica porque fueron hechas sólo para contener otras particiones. En Windows, las particiones las gestiona el gestor de particiones (\Windows\System32\Drivers\Partmgr.sys). Este gestor envía un comando al gestor de volúmenes para saber si la partición tiene un volumen asociado, y si es así, a partir de ese momento cualquier acción sobre la partición se la notificará al gestor de volúmenes. existen 3 tipos diferentes de particiones: • Partición primaria: Son las divisiones primarias del disco, solo puede haber 4 de éstas o 3 primarias y una extendida. Un disco físico completamente formateado consiste, en realidad, de una partición primaria que ocupa todo el espacio del disco y posee un sistema de archivos. • Partición extendida: También conocida como partición secundaria es otro tipo de partición que actúa como una partición primaria; sirve para contener múltiples unidades lógicas en su interior. Fue ideada para romper la limitación de 4 particiones primarias en un solo disco físico. Solo puede existir una partición de este tipo por disco, y solo sirve para contener particiones lógicas. Por lo tanto, es el único tipo de partición que no soporta un sistema de archivos directamente. 31 Juan Carlos Pérez González • Partición lógica: Ocupa una porción de la partición extendida o la totalidad de la misma, la cual se ha formateado con un tipo específico de sistema de archivos (NTFS, ext4,...) y se le ha asignado una unidad, así el sistema operativo reconoce las particiones lógicas o su sistema de archivos. Puede haber un máximo de 32 particiones lógicas en una partición extendida. Linux impone un máximo de 15, incluyendo las 4 primarias, en discos SCSI y en discos IDE 8963. Un volumen desde el punto de vista del usuario es un disco lógico (C, D, E, ..., Z), y cada uno contendrá un sistema de ficheros con directorios y ficheros. Las particiones primarias sólo podrán contener un volumen, mientras que las extendidas podrán albergar varios, teniendo en cuenta que un sistema sólo podrá tener como máximo 24 volúmenes, ya que se identifican por medio de las letras del abecedario, y en inglés sólo tiene 24 letras. En Windows podemos trabajar con dos tipos de discos, que según sean de un tipo u otro, tendrán diferentes características en cuanto a la gestión de los volúmenes: • Discos básicos son los que se basan exclusivamente en MBR o GPT. • Discos dinámicos se basan en un esquema de particiones más flexible que la de los discos básicos. La diferencia entre cada uno de ellos desde el punto de vista de su gestión estriba en 32 Juan Carlos Pérez González que los segundos admiten nuevos volúmenes de particiones múltiples. Los discos básicos son los discos habituales. Un disco básico contiene particiones, también llamadas volúmenes básicos, y tienen una tabla de particiones almacenada en el sector 0 del disco, que se llama MBR (Master Boot Record) y que es donde estará la información necesaria para arrancar el sistema operativo. La existencia del MBR es un requisito que impone la BIOS ya que necesitará leerlo una vez inicializado el hardware para arrancar el SO. La tabla de particiones está formada por cuatro entradas con la información de las cuatro posibles particiones que pudiera tener el disco, de ahí el límite máximo de cuatro particiones que comentábamos en un punto anterior. En cualquier caso, la BIOS arrancará el sistema desde una partición activa, por lo que el sistema deberá declarar una de las particiones en dicho estado. Por eso a este primer sector del disco se le suele conocer también como sector de arranque. Las particiones extendidas tendrán su propio MBR, pero ahora en lugar de haber particiones dentro de la partición, lo que tendremos serán unidades lógicas o volúmenes. Con este tipo de particiones es posible superar el límite de cuatro particiones por disco que impone Windows con las particiones primarias. Dentro de los discos básicos existe un nuevo concepto que, en lugar de estar basado en el clásico MBR, está basado en tablas de particiones GUID. Esta tabla de particiones sustituye al sistema antiguo de BIOS y es una nueva implementación de Intel basada en la Extensible Firmware Interface (EFI) cuyas limitaciones son bastantes menos restrictivas que las actuales basadas en inicio MBR. La EFI incluye un minisistema operativo en el firmware que sirve para ejecutar los diagnósticos iniciales del sistema y cargar el sector de arranque. Las tablas de particiones basadas en GUID (Global Unique Identifier) admiten hasta 128 particiones primarias de 8 ZB, y no existen las particiones extendidas mientras que en las tablas de particiones MBR el límite como hemos visto está en cuatro primarias o bien tres primarias y una extendida, siendo el límite máximo de cada partición de dos terabytes. Para trabajar con particiones GUID y discos GPT es necesario la versión de 64 bits tanto del sistema operativo como del hardware. Otro aspecto importante es el uso de códigos de redundancia cíclica (CRC) para 33 Juan Carlos Pérez González garantizar la integridad de la tabla de particiones. También mantiene una copia de seguridad de la tabla de particiones. El primer bloque de un disco GPT es un sector de arranque que sirve para proteger la partición GPT en caso de que se acceda al disco desde un sistema operativo que no soporte GPT. El segundo bloque contiene la tabla de particiones GPT para las particiones del disco. Para gestionar los volúmenes dentro de los discos básicos se utiliza el driver FtDisk (\Windows\System32\Drivers\Ftdisk.sys) que permite crear y gestionar los volúmenes en los discos básicos. Cuando el sistema o una aplicación accede a un volumen por primera vez, Windows monta el volumen para que los drivers del sistema de ficheros puedan reconocer y trabajar con ellos. En los discos dinámicos tenemos que hablar de volúmenes dinámicos. Permiten la creación de volúmenes de particiones múltiples tales como simples, distribuidos, espejos, stripes y RAID-5. • Simples: un solo disco para repartir el espacio no asignado. • Distribuidos: espacio no asignado en un sistema con varios discos en una única unidad lógica. • Espejos: volúmenes reflejados usan dos copias llamadas espejo, aunque aparecen como una única entidad. Cuando se escribe cualquier dato en el volumen reflejado, inmediatamente se reproduce en las copias espejo. A diferencia de los anteriores es tolerante a errores. Se llama también RAID-1 34 Juan Carlos Pérez González • Stripes: variante del volumen distribuido, ya que también utiliza el espacio de varios discos y los convierte en una única unidad lógica. Este tipo de volumen utiliza un tipo especial de formato para escribir en el disco y tiene más rendimiento que el volumen distribuido. Se llama también RAID-0 • RAID-5: tipo de volumen tolerante a errores, y se caracteriza por tener sus datos distribuidos en tres o más discos físicos Los discos dinámicos se particionan con el Administrador de discos lógicos (LDM – Logical Disk Manager). El subsistema LDM trabaja en modo usuario. La estructura de LDM es la siguiente: LDM necesita tres entradas para describir un volumen simple: una partición, componentes, y la entrada de volumen. Los volúmenes de particiones múltiples requieren más de tres entradas. Por ejemplo, un volumen striped se compone de al menos dos entradas de particiones, una entrada de componentes y una entrada por volumen. LDM implementa particionamiento MBR o GPT para que el código de inicio de Windows pueda encontrar el sistema y los volúmenes de arranque, con discos dinámicos. En discos con particiones MBR, la información de LDM reside en sectores ocultos. Debido a que las particiones LDM no se describen en el MBR o GPT, se llaman particiones software; mientras que las MBR y GPT se llaman particiones hardware del disco La Administración de discos dinámicos es con DMDiskManager (\Windows\System32\Dmdskmgr.dll). 35 Juan Carlos Pérez González La desfragmentación es el proceso mediante el cual se acomodan los archivos de un disco de tal manera que cada uno quede en un área contigua y sin espacios sin usar entre ellos. Al irse escribiendo y borrando archivos continuamente en el disco duro, éstos tienden a no quedar en áreas contiguas, así, un archivo puede quedar "partido" en muchos pedazos a lo largo del disco, se dice entonces que el archivo está "fragmentado". Al tener los archivos esparcidos por el disco, se vuelve ineficiente el acceso a ellos. El problema de almacenamiento no contiguo de archivos se denomina fragmentación, se produce debido al almacenamiento de archivos en dispositivos como disco duro y memoria RAM por el uso del computador. Dos ejemplos de desfragmentador más conocidos son el Defrag y el Diskeeper para el sistema NTFS ambos de Microsoft. En Linux, aunque la fragmentación es un problema no tan acuciante también tiene su desfragmentador el e2defrag. 36 Juan Carlos Pérez González 9. Extensión de un volumen. Volumen distribuídos. Sistemas de tolerancia a fallos. Los volúmenes de particiones múltiples son más complejos debido a que las particiones que componen un volumen único pueden estar en particiones no contiguas, o incluso en distintos discos. Algunos tipos de volúmenes de particiones múltiples usan redundancia de datos. Podemos trabajar con los siguientes tipos de volúmenes de particiones múltiples: • Volúmenes distribuidos (spanned) • Volúmenes Espejo • Volúmenes divididos (Striped) • Volúmenes RAID-5 Volúmenes distribuidos (spanned) Un volumen distribuido es un único volumen lógico compuesto por un máximo de 32 particiones libres en uno o más discos. Es una forma de juntar el espacio no asignado en un sistema con varios discos en una única unidad lógica, lo cual permite utilizar más eficientemente el espacio disponible y las letras de unidad. Otra utilidad sería para crear un volumen más grande de lo que nos permiten los discos individualmente. El sistema une las particiones en un volumen distribuido, que puede ser formateado con cualquiera de los sistemas de ficheros de Windows. Los volúmenes distribuidos se conocen también como conjuntos de volúmenes. Si el volumen distribuido se ha formateado en NTFS, podría hacerse crecer para incluir zonas libres o discos adicionales sin afectar a los datos ya almacenados en el volumen. NTFS puede aumentar dinámicamente el tamaño del volumen lógico, porque el mapa de bits que contiene el estado de asignación del volumen es otro fichero, y por lo tanto podría crecer para contener los bits necesarios para controlar cualquier tamaño añadido al 37 Juan Carlos Pérez González disco. El gestor de volúmenes trabaja con los sectores físicos en el volumen distribuido según una numeración secuencial que va desde la primera zona libre en el primer disco a la última zona de libre del último disco. Este tipo de volúmenes tiene el problema de que no son tolerantes a fallos, por lo que si se cae un disco, automáticamente fallará todo el volumen. Volúmenes divididos (Striped) Al igual que el volumen distribuido, también utiliza el espacio de varios discos y los convierte en una única unidad lógica. Este tipo de volumen utiliza un tipo especial de formato para escribir en el disco y tiene más rendimiento que el volumen distribuido. En contraprestación, los fallos de escritura suelen ser mayores que en el caso del volumen distribuido y además, si uno de los discos que forman parte del volumen falla, lo hace todo el volumen. No obstante, presenta la ventaja de que se puedan servir varias lecturas y/o escrituras sobre varios discos al mismo tiempo, por lo que la respuesta del sistema para las operaciones de E/S sobre este tipo de volúmenes es mucho más rápida, siendo una solución muy interesante para sistemas muy cargados. Consta de hasta 32 particiones, una partición por disco, que se combinan en un solo volumen lógico. Los volúmenes striped también se conocen como RAID de nivel 0 (volúmenes RAID-0). El RAID 0 es útil para configuraciones tales como servidores NFS de solo lectura en las que montar muchos discos es un proceso costoso en tiempo y la redundancia es irrelevante. También se usa mucho en sistemas destinados a juegos en los que se desea un buen rendimiento y la integridad no es importante aunque el mayor problema el coste. En este caso, el gestor accede a los sectores físicos de los discos como si estuvieran numerados secuencialmente en los discos. 38 Juan Carlos Pérez González Volúmenes Espejo Es el primero de los dos tipos de volúmenes que es tolerante a fallos. En este tipo de volumen, el contenido de la partición se duplica en una partición idéntica en otro disco, aunque se ven como un único volumen y no como dos. Los volúmenes espejo se conocen como RAID de nivel 1 (RAID1). Normalmente los volúmenes espejo no están en el mismo disco, ya que de este modo, al estar en distinto disco, si uno de los discos fallase, el sistema podría seguir funcionando con el disco no afectado. Es el tipo de volumen que normalmente se pone como ejemplo para los sistemas tolerantes a fallos. Cuando un hilo escribe en uno de los discos, el gestor de volúmenes escribe los mismos datos en la misma ubicación en la partición del disco espejo (se refleja). Si el primer disco o cualquiera de los datos de su partición fallasen, al tener el otro disco con la misma información actualizada completamente, el gestor de volúmenes podrá acceder a los datos de la partición espejo para recuperar los datos solicitados. Otra ventaja de este tipo de sistemas la encontramos en los sistemas sobrecargados, ya que si hay muchas operaciones de lectura o escritura sobre el volumen, el propio gestor podrá equilibrar la carga y realizar unas operaciones en una de las particiones, por ejemplo la primaria, y el resto en la otra, es decir, en la partición espejo. Lógicamente estas operaciones se podrían ejecutar en paralelo, y por lo tanto las dos juntas tardarían la mitad de tiempo que si se hiciesen secuencialmente. 39 Juan Carlos Pérez González Volúmenes RAID-5 Los volúmenes RAID (Redundant Array of Independent Disks) hace referencia a un sistema de almacenamiento que usa múltiples discos duros o SSD entre los que distribuye o replican los datos. Es una variante tolerante a fallos del volumen tipo stripe, por eso se suelen conocer como volúmenes stripe con paridad. La tolerancia a fallos se consigue reservando espacio en disco para almacenar la paridad de cada stripe. La diferencia con los volúmenes espejo es que en este caso se puede recuperar la información, que sólo tendrá una copia en el sistema, y no se desperdicia espacio de almacenamiento para tener dos copias de la misma información como ocurría en el volumen espejo. Este tipo de volúmenes necesita de al menos tres discos para para poder recuperar la información, y debemos tener presente que en el caso de que caigan dos de los discos, no será posible recuperar la información. En este tipo de volúmenes, cada vez que se escribe un registro de datos, se genera un bloque de paridad dentro de la misma división (stripe). Un conjunto de registros recibe el nombre de división (stripe). Cada vez que se modifica la división, se genera un nuevo código de paridad. El bloque de paridad está distribuido entre los discos del volumen Los bloques de paridad no se leen en las operaciones de lectura de datos, ya que esto sería una sobrecarga innecesaria y disminuiría el rendimiento, a no ser que al realizar la lectura se detecte un error de CRC (Código de Redundancia Cíclica), por lo que habría que leer el bloque de paridad, que junto con los registros de datos permitirá reconstruir el original y recuperar el error. De la misma forma, si falla un disco del conjunto, los bloques de paridad de los 40 Juan Carlos Pérez González demás discos se combinan matemáticamente con los bloques de datos de los restantes discos para reconstruir los datos del disco que ha fallado. La paridad consiste en una suma lógica, byte por byte (XOR) de la primera banda de los discos 2 y 3. La paridad para la banda 2 se almacena en el disco 2, y la paridad de la banda 3 se almacena en el disco 3. La rotación de la paridad entre los discos de esta manera es una técnica de optimización de E/S. Como ya hemos dicho, cada vez que se escriben datos en un disco, se vuelve a calcular la paridad correspondiente a los bytes modificados. Existen otros sistemas RAID (RAID3, RAID6 ó RAID 1+0) pero son combinación de las técnicas anteriores. Por mencionar a otros también usados pero en menor medida Volumen RAID 3 Un RAID 3 usa división a nivel de bytes con un disco de paridad dedicado. Uno de sus efectos secundarios es que normalmente no puede atender varias peticiones simultáneas, debido a que por definición cualquier simple bloque de datos se dividirá por todos los miembros del conjunto, residiendo la misma dirección dentro de cada uno de ellos. Así, cualquier operación de lectura o escritura exige activar todos los discos del conjunto, suele ser un poco lento porque se producen cuellos de botella. Son discos paralelos pero no son independientes (no se puede leer y escribir al mismo tiempo). Volumen RAID 10 ó 1+0 El RAID 10 es una división de espejos. En cada división RAID 1 pueden fallar todos los discos salvo uno sin que se pierdan datos. Sin embargo, si los discos que han fallado no se reemplazan, el restante pasa a ser un punto único de fallo para todo el conjunto y entonces un solo error que ocurra en el disco espejado resultaría en pérdida de datos. Debido a estos mayores riesgos del RAID 1+0, muchos entornos empresariales críticos están empezando a evaluar configuraciones RAID más tolerantes a fallos que 41 Juan Carlos Pérez González añaden un mecanismo de paridad subyacente. El RAID 10 es a menudo la mejor elección para bases de datos de altas prestaciones, debido a que la ausencia de cálculos de paridad proporciona mayor velocidad de escritura. Volumen 50 ó 5 + 0 Un RAID 50, a veces llamado también RAID 5+0, combina la división a nivel de bloques de un RAID 0 con la paridad distribuida de un RAID 5. El RAID 50 mejora el rendimiento del RAID 5, especialmente en escritura, y proporciona mejor tolerancia a fallos que un nivel RAID único. Este nivel se recomienda para aplicaciones que necesitan gran tolerancia a fallos, capacidad y rendimiento de búsqueda aleatoria. 11. Copias de seguridad del sistema. Tipos de copias de seguridad. Plans e programación de copias de seguridade. Una copia de seguridad o backup es el proceso de copia de datos con el fin de que estas copias adicionales puedan utilizarse para restaurar el original después de una eventual pérdida de datos. Fundamentalmente son útiles para dos cosas. recuperarse de 42 Juan Carlos Pérez González una catástrofe informática o recuperar una pequeña cantidad de archivos que pueden haberse borrado accidentalmente o corrompido. Se calcula que hasta el 70% de los usuarios de han sufrido una pérdida de datos de media o gran gravedad. Los procedimientos de respaldo de datos incluyen entre otros optimizaciones para trabajar con archivos abiertos y fuentes de datos en uso y también incluyen procesos de compresión, cifrado, y procesos de duplicación, entendiéndose por esto último a una forma específica de compresión donde los datos superfluos son eliminados. Las copias de seguridad garantizan dos objetivos: integridad y disponibilidad Una de las desventajas de un backup es que si copiamos muchos datos redundantes agotamos la capacidad de almacenamiento disponible rápidamente. La clave está en guardar copias de seguridad sólo de aquello que se ha modificado es decir, sólo copiar los ficheros que se hayan modificado. Algunos sistemas de ficheros poseen un bit de archivo para cada fichero este nos indica si recientemente ha sido modificado. Algunos software de copia de seguridad miran la fecha del fichero y la comparan con la última copia de seguridad, para así determinar si el archivo se ha modificado. Incremental a nivel de bloque Un sistema más sofisticado de copia de seguridad de ficheros es el basado en solamente copiar los bloques físicos del fichero que han sufrido algún cambio. Esto requiere un alto nivel de integración entre el sistema de ficheros y el software de la copia de seguridad. Incremental o diferencial binaria El método es similar al incremental a nivel de bloque, pero basada en reflejar las variaciones binarias que sufren los ficheros respecto al anterior backup. Mientras las tecnologías a nivel de bloque trabajan con unidades de cambio relativamente grandes (bloques de 8Ks, 4Ks, 1K) las tecnologías a nivel de byte trabajan con la unidad mínima capaz de ahorrar espacio para reflejar un cambio. Actualmente son las tecnologías que consiguen la máxima compresión relativa de la información y ofrecen así una ventaja importante en las copias de seguridad a través de la Internet. 43 Juan Carlos Pérez González Copia de seguridad de datos en uso Si un ordenador está en uso mientras se ejecuta su copia de seguridad, existe la posibilidad de que haya ficheros abiertos, ya que puede que se esté trabajando sobre ellos. Si un fichero está abierto, el contenido en el disco posiblemente no refleje exactamente lo que el usuario ve. Esto es frecuente en ficheros de bases de datos. A fin de copiar un fichero en uso, es vital que la copia de seguridad entera represente un único paso. Aunque el archivo de base de datos esté bloqueado para evitar cambios, se debe implementar un método para asegurar que el original snapshot sea preservado con tiempo de sobra para ser copiado, incluso cuando se mantengan los cambios. Snapshot – Copia en escritura La copia instantánea de volumen, es una función de algunos sistemas que realizan copias como si estuvieran congelados en un momento determinado. Copia de seguridad de ficheros abiertos – Ficheros bloqueados Algunos paquetes de software de copias de seguridad no poseen la capacidad de realizar copias de ficheros abiertos. Simplemente comprueban que el fichero esté cerrado y si no lo está lo intentan más tarde. Copias de seguridad de bases de datos en caliente Algunos sistemas de gestión de bases de datos ofrecen medios para realizar imágenes de copias de seguridad de una base de datos mientras esté activa y en uso (en caliente). Esto normalmente incluye una imagen consistente de los ficheros de datos en un cierto momento más un registro de los cambios hechos mientras el algoritmo está funcionando. Las copias de seguridad se dividen en los siguientes tipos: • Copia de seguridad completa • Copia de seguridad diferencial • Copia de seguridad incremental • Copia de seguridad delta • Copia de seguridad completa El propósito de una copia de seguridad completa es realizar una copia fiel de los datos en un medio aparte. Aún así, en grandes volúmenes de datos, la copia de seguridad 44 Juan Carlos Pérez González completa puede ser lenta (si los datos se modifican durante este proceso) y puede causar problemas de disponibilidad ya que crea discos de acceso pesados, grandes, e incluso costosos, teniendo en cuenta la capacidad que se necesita. • Copia de seguridad incremental La copia de seguridad incremental consiste en copiar todos los elementos que han sido modificados desde la copia de seguridad anterior. Debido a que se centra específicamente en los archivos modificados requiere menos espacio de almacenamiento. Pero, por otro lado, es necesario contar con las copias de seguridad anteriores para restaurar la copia de seguridad completa. • Copia de seguridad diferencial La copia de seguridad diferencial se centra específicamente en los archivos que han sido modificados desde la última copia de seguridad completa, lo que hace que esta copia de seguridad sea más lenta y costosa en cuanto a espacio de almacenamiento que la copia de seguridad incremental pero a su vez es más fiable ya que en la copia de seguridad completa se necesita restaurar los datos copiados. • Copia de seguridad delta La copia de seguridad delta consiste en una copia de seguridad incremental de elementos de los datos con gran detalle de datos, es decir, se guardan bloques de datos en lugar de archivos individuales. Software de copias de seguridad Existen una gran gama de software en el mercado para realizar copias de seguridad. Entre los más populares se encuentran ArcServer, ZendalBackup, Cobian, SeCoFi y NortonGhost. Para la adecuación a la LOPD de ficheros con datos de carácter personal de nivel alto (salud, vida sexual, religión, etc.) la regulación exige que las copias de seguridad de dichos datos se almacenen cifrados y en una ubicación diferente al lugar de origen. La copia de seguridad es el mejor método de protección de datos de importancia, pero siempre existe la posibilidad de que la copia de datos no haya funcionado correctamente y 45 Juan Carlos Pérez González en caso de necesidad de restauración de los datos no podamos realizarlo ya que la información de la copia de seguridad puede encontrarse corrupta por diversos motivos: • el medio en el que se realizaba la copia se encuentra dañado. • los automatismos de copia no se han ejecutado correctamente. • y otros muchos motivos que pueden causar que nuestras copias de seguridad sean incorrectas, y por lo tanto inútiles. Para evitar este problema es muy importante que nos cercionemos de que hacemos las copias correctamente y comprobemos que somos capaces de restaurar la copia de seguridad a su ubicación original, comprobando así que la copia sea correcta y que somos capaces de restaurarla y conocemos el método de restauración. En el hipotético caso de que no podamos restaurar nuestra información, existe una última alternativa, ya que en el mercado existen aplicaciones de recuperación de datos que nos pueden ayudar en caso de que no podamos restaurar nuestra copia de seguridad, como son: Advanced File Recovery, Diskdoctors, Disk Drill, RecuperaData y Stellar. También existen métodos de recuperación de datos vía web, como e-ROL. Por último, y en casos extremos como unidades dañadas, sólo nos quedaría recurrir a un laboratorio especializado en la recuperación de datos, como RecoveryLabs. 12. Recuperación en caso de fallo do sistema. Discos de arranque y de recuperación. Recuperación del sistema mediante consola. Puntos de recuperación. Algunas cuestiones de este punto ya las comentamos en los apartados anteriores. Así que nos centraremos en aspectos que precisen ser puntualizados. Tanto Windows como Linux tienen herramientas que permiten recuperar el sistema. Por ejemplo, Windows a partir del CD de instalación podemos hacer una reinstalación o recuperación del sistema sobreescribiendo los archivos del mismo respetando los documentos de usuario sin perder su contenido. Las versiones 7 y sucesores presentan también la herramienta de restauración a partir de un punto (fecha determinada). Podemos crear un punto de restauración recién instalado el sistema o bien en fechas posteriores para recuperarlo en caso de desastre. 46 Juan Carlos Pérez González Windows también presenta la consola de recuperación del sistema cuando no ha funcionado la recuperación en modo seguro u otras opciones. Puede que sea necesaria instalarla para ello tras insertar el CD (unidad D:) se ejecuta la orden siguiente d:\i386 “ó” amd64\winnt32.exe /cmdcons, según arquitectura y lanzará un asistente para su instalación. Tras ello, se reinicia y ya aparecerá la opción de la consola. Su uso es similar a la de una consola de MSDOS. Escribiendo: 47 Juan Carlos Pérez González recovery console commands aparecen los diferentes comandos. Otras opciones son la creación de un disco de recuperación del sistema, aunque en la actualidad los fabricantes de “marca” suelen incluir una copia del sistema recién instalada en una partición oculta para cuando el usuario decida tener el sistema tal como salió de “fábrica”. Muchas veces simplemente es iniciar el equipo pulsar F2 u otra combinación de teclas según el fabricante y el proceso de automatización de recuperación del sistema tal como se adquirió se hace de forma autónoma. En Linux es habitual el uso de distribuciones Live que nos permite arrancar el sistema desde el lector de CD para la recuperación del sistema sin tocar el disco duro pero que nos permite una vez iniciada acceder a él. Por citar unas cuantas: • Redo Backup and Recovery. Ocupa poco más de 75 MB de manera que podemos descargarla y utilizarla desde CD o incluso crearnos un USB Live con esta distribución para recuperar nuestros datos en caso de problemas. Una de sus mayores virtudes es lo rápido que carga, lo que facilita mucho su uso en equipos con menos recursos. • SystemRescueCd muy utilizada por usuarios avanzados. Incorpora herramientas para el manejo de particiones y creación de imágenes de las mismas, o para su reparación, como puede ser Test-Disk. También nos facilita programas de copia de seguridad que incluso podremos utilizar en remoto. El apartado de herramientas sin 48 Juan Carlos Pérez González duda es uno de sus puntos fuertes puesto que prácticamente no echaremos nada en falta, desde herramientas de seguridad hasta otras como pueden ser el borrado seguro de datos. • Ubuntu Rescue Remix centrada en este caso en facilitar las herramientas adecuadas para poder recuperar nuestros datos en caso de fallo del sistema operativo o de una partición. 49 Juan Carlos Pérez González Referencias • Página oficial de Microsoft MSDN • Implantación de Sistemas Operativos RA-MA • Sistema Operativos. Apuntes UNED • Wikipedia • Centro Recursos Formativos del Ministerio Educación 50