Linux

Sistemas operativos. Multitarea. GNU. {GPL}. Instalación. LinuxConf. XWindow. LILO. Filesystem. Kernel. Administración

4 downloads 450 Views 70KB Size

Story Transcript

Sistemas operativos 2 Trabajo practico 1 Linux : Un sistema operativo compatible UNIX para PC

Tabla de contenido Una breve reseña histórica

Capítulo 1

Una breve reseña histórica U NIX es uno de los sistemas operativos más populares del mundo debido a su extenso soporte y Distribución. Originalmente fue desarrollado como sistema multitarea con tiempo compartido para mini ordenadores y mainframes a mediodos de los 70, y desde entonces se ha convertido en uno de los sistemas mas utilizados a pesar de su, ocasionalmente, confusa interfaz con el usuario y el problema de su estandarización. ¿Cuál es la verdadera razón de la popularidad de UNIX? Muchos hackers consideran que UNIX es el autentico y único sistema operativo. El desarrollo de Linux parte de un grupo en expansión de hackers de UNIX que quisieron hacer su sistema con sus propias manos. Existen numerosas versiones de UNIX para muchos sistemas, desde ordenadores personales hasta supercomputadores como el Cray Y−MP. La mayoría de las versiones de UNIX para ordenadores personales son muy caras. Cuando se escribía este libro, una copia para una maquina 386 del UNIX System V de AT&T costaba unos 1500 dólares estadounidenses. Linux es una versión de UNIX de libre distribución, inicialmente desarrollada por Linus Torvalds1 en la Universidad de Helsinki, en Finlandia. Fue desarrollado con la ayuda de muchos programadores y expertos de UNIX a lo largo y ancho del mundo, gracias a la presencia de Internet. Cualquier habitante del planeta puede acceder a Linux y desarrollar nuevos módulos o cambiarlo a su antojo. El núcleo de Linux no utiliza ni una sola línea del código de AT&T o de cualquier otra fuente de propiedad comercial, y buena parte del software para Linux se desarrolla bajo las reglas del proyecto de GNU de la Free Software Foundation, Cambridge, Massachusetts. Inicialmente, solo fue un proyecto de aficionado de Linus Torvalds. Se inspiraba en Minix, un pequeño UNIX desarrollado por Andy Tanenbaum, y las primeras discusiones sobre Linux surgieron en el grupo de News comp.os.minix. Estas discusiones giraban en torno al desarrollo de un pequeño sistema UNIX de carácter académico dirigido a aquellos usuarios de Minix que querían algo mas. 1

en modo protegido del 386, y se escribió todo en ensamblador. Linus dice, "Comencé a utilizar el C tras escribir algunos drivers, y ciertamente se acelero el desarrollo. En este punto sentí que mi idea de hacer un `un Minix mejor que Minix' se hacia mas seria. Esperaba que algún día pudiese recompilar el gcc bajo Linux. . . "Dos meses de trabajo, hasta que tuve un driver de discos (con numerosos bugs, pero que parecía funcionar en mi PC) y un pequeño sistema de archivos. Aquí tenia ya la versión 0.01 [al final de Agosto de 1991]: no era muy agradable de usar sin el driver de disquetes, y no hacia gran cosa. No pensé que alguien compilaría esa versión." No se anuncio nada sobre esa versión, puesto que las fuentes del 0.01 jamás fueron ejecutables: contenían solo rudimentos de lo que seria el núcleo, y se asumía que se tenia acceso a un Minix para poderlo compilar y jugar con él. El 5 de Octubre de 1991, Linus anuncio la primera versión "oficial" de Linux, la 0.02. Ya podía ejecutar bash (el shell de GNU) y gcc (el compilador de C de GNU), pero no hacia mucho mas. La intención era ser un juguete para hackers. No había nada sobre soporte a usuarios, distribuciones, documentación ni nada parecido. Hoy, la comunidad de Linux aun trata estos asuntos de forma secundaria. Lo primero sigue siendo el desarrollo del kernel. Linus escribía en comp.os.minix, "¿Suspiráis al recordar aquellos días de Minix−1.1, cuando los hombres eran hombres y escribían sus propios drivers? >Os sentís sin ningún proyecto interesante y os gustaría Tener un verdadero S.O. que pudierais modificar a placer? ¿Os resulta frustraste el tener solo a Minix? Entonces, este articulo es para vosotros. "Como dije hace un mes, estoy trabajando en una versión gratuita de algo parecido a Minix para ordenadores At−386. He alcanzado la etapa en la que puede ser utilizable y voy a poner las fuentes para su distribución. Es solo la versión 0.02. . . pero he conseguido ejecutar en el bash, gcc, gnu−make, gnu−sed, compress, etc. Tras la versión 0.03, Linus salto a la versión 0.10, al tiempo que mas gente empezaba a participar en su desarrollo. Tras numerosas revisiones, se alcanzo la versión 0.95, reflejando la esperanza de tener lista muy pronto una versión "oficial". (Generalmente, la versión 1.0 de los programas se corresponden con la primera teóricamente completa y sin errores). Esto sucedía en Marzo de 1992. Año y medio después, en Diciembre del 93, el núcleo estaba en la revisión 0.99.pl14, en una aproximación asintótica al 1.0. Actualmente, el núcleo se encuentra en la versión 1.1 parche 52, y se acerca la 1.2.2 2.1 Hoy Linux es ya un clónico de UNIX completo, capaz de ejecutar X Window, TCP/IP, Emacs, UUCP y software de correo y News. Mucho software de libre distribución ha sido ya portado a Linux, y están empezando a aparecer aplicaciones comerciales. El hardware soportado es mucho mayor que en las primeras versiones del núcleo. Mucha gente ha ejecutado tests de rendimiento en sus sistemas Linux 486 y se han encontrado que son comparables a las estaciones de trabajo de gama medio de Sun Microsystems y Digital. ¿Quién iba a imaginar que este "pequeño" clónico de UNIX iba a convertirse en un estándar mundial para los ordenadores personales?

Capítulo

2

2 El proceso de instalación Preparación para instalar Linux Una vez que usted ha obtenido una distribución de Linux, estará preparado para instalar el sistema. Esto supone cierto grado de planificación, sobre todo si en su ordenador se usan actualmente otros sistemas operativos. En las secciones siguientes describiremos como preparar la instalación de Linux. Visión general de la instalación A pesar de ser diferente cada distribución de Linux, el método utilizado para instalar el software es, en general, como sigue: Reparticione su(s) disco(s) duro(s). Si usted tiene instalados otros sistemas operativos, Necesitará reparticionar los discos con el fin de backupr espacio para Linux. Arranque la instalación de Linux. Cada distribución de Linux incluye algo para arran− car inicialmente e instalar el software, usualmente un disquete de arranque. Arrancando de esta forma, usted entrara en un programa de instalación para el resto del software, o bien le permitirá seguir instalándolo a mano. Cree las particiones para Linux. Después de reparticionar su disco para backupr espacio Para Linux, debe crear particiones de Linux en dicho espacio. Esto se realiza con el programa fdisk. Cree los sistemas de archivos y el espacio de intercambio. En este momento, debe crear Uno o mas sistemas de archivos, utilizados para guardar sus archivos, en las particiones recién creadas. Además, si piensa usar espacio de intercambio ("swap"), debe crear dicho espacio en una de las particiones para Linux. Instale los programas en los sistemas de archivos. Finalmente, debe instalar el software En sus nuevos sistemas de archivos. Después de esto, lo que queda es fácil si todo va bien. La mayoría de las distribuciones de Linux proporcionan un programa de instalación que le guiara en cada paso de la instalación, y automatiza algunos de esos pasos. Tenga en cuenta que cualquiera de los siguientes pasos pueden estar automatizados o no, dependiendo de la distribución. Necesidades de reparticionado en Linux En los sistemas UNIX, los archivos se almacenan en un sistema de archivos, que es esencialmente una zona del disco duro (u otro dispositivo, como un CD−ROM o un disquete) formateado para almacenar archivos. Cada sistema de archivos se encuentra asociado con una parte especifica del árbol de directorios; por ejemplo, en la mayoría de los sistemas, existe un sistema de archivos para todos los archivos del directorio /usr, otro para /tmp, etc. El sistema de archivos raíz es el principal, que corresponde con el directorio raíz, /. Bajo Linux, cada sistema de archivos ocupa una partición del disco duro. Por ejemplo, si tenemos un sistema 3

de archivos para / y otro para /usr, necesitaremos dos particiones para almacenar ambos sistemas. ¿Por que usar mas de un sistema de archivos? Lo mas habitual es por seguridad; si, por alguna razón, uno de sus sistemas de archivos resulta dañado, los otros normalmente no resultaran afectados. Por otro lado, si usted almacena todos sus archivos en el sistema de archivos raíz, y por alguna razón resulta dañado, puede perder todos los archivos de una vez. Sin embargo, esto no es lo habitual; si usted hace copias de seguridad (backups) regularmente, no hay de que preocuparse. Otra razón para utilizar varios sistemas de archivos es repartir el almacenamiento entre varios discos duros. En resumen, Linux requiere por lo menos una partición, para el sistema de archivos raíz. Si se desea crear varios sistemas de archivos, se necesitara una partición por cada sistema de archivos. Algunas distribuciones de Linux crean particiones y sistemas de archivos de forma automática, de modo que usted no necesita preocuparse demasiado de estos asuntos. Otra cuestión a considerar cuando se deciden las particiones es el espacio de intercambio (Swap). Si se desea usar espacio de intercambio en Linux, se tienen dos opciones. La primera es usar un archivo de intercambio que existe dentro de uno de los sistemas de archivos de Linux. Se crea el archivo de intercambio para usarlo como RAM virtual una vez instalado el software. La segunda opción es crear una partición de intercambio, una partición backupda exclusivamente como espacio de swap. La mayoría de la gente usa una partición para el intercambio en lugar de un archivo. Cada archivo o partición de intercambio puede ser de hasta 16 megabytes. Si se desea tener mas de 16 megabytes de swap, se pueden crear varios archivos o particiones de Intercambio hasta ocho a la vez. Por ejemplo, si se necesitan 32 megabytes de swap, se pueden crear dos particiones de 16 megabytes. Por lo general, se crearan dos particiones para Linux: una para ser usada como sistema de Archivos raíz, y la otra como espacio de intercambio. Por supuesto, hay otras opciones pero esta es la opción mínima. El espacio de swap no es obligatorio en Linux, pero esta muy recomendado si posee menos de 16 megabytes de memoria física. El tamaño de sus particiones de swap (debe elegirse una para esto) depende de la RAM virtual que necesite. Lo típico es crear una partición de intercambio del doble de espacio de su RAM física; por ejemplo, si tiene 4 megabytes de RAM, una partición de 8 megabytes suele bastar. Por supuesto, esto es solo una idea la cantidad de espacio de swap que requiere dependerá del software que quiera ejecutar. Si usted tiene una gran cantidad de memoria física (digamos, 16 megabytes o mas) puede que al final no necesite espacio de intercambio. Reparticionado de los discos La manera habitual de cambiar el tamaño de una partición es borrarla (lo que implica borrar toda la información que contenga) y rehacerla. Antes de reparticionar sus discos, haga un backup. Después de cambiar las particiones, puede proceder a reinstalar el software desde el backup. Sin embargo, podemos encontrar programas para MS−DOS que consiguen cambiar el tamaño de las particiones de forma no destructiva. Uno de estos se conoce como "FIPS", y puede encontrarse en muchos servidores de FTP de Linux. El programa utilizado para hacer particiones es fdisk. Cada sistema operativo tiene su propia versión de este 4

programa; por ejemplo, bajo MS−DOS, se activa con el comando FDISK. Debe consultarse la Documentación de los sistemas operativos en uso para obtener información sobre este asunto. Aquí nos referiremos únicamente a MS−DOS con FDISK, pero lo que digamos puede ser fácilmente extrapolado a otros sistemas operativos. Instalación del software de Linux Después de modificar sus particiones para backupr espacio a Linux, usted esta preparado para instalar el software. A continuación se muestra un resumen del procedimiento a seguir: Arrancar con el dispositivo de arranque de Linux (disquete); Ejecutar fdisk bajo Linux para crear las particiones de Linux; Ejecutar mke2fs y mkswap para crear los sistemas de archivos y el espacio de intercambio; Finalmente, instalar el cargador LILO en el disco duro, o crear un disco de arranque con el fin de arrancar su nuevo sistema Linux. Arranque de Linux El primer paso es iniciar el computador con el dispositivo de arranque de Linux, que suele ser un disco "Boot" que contiene un pequeño sistema Linux. Tras arrancar con el floppy, se le presentara un menú de instalación de algún tipo que le guiara en el proceso de instalación. En otras distribuciones, se le mostrara un prompt de login cuando arranque. Aquí se suele entrar como root o install para comenzar el proceso de instalación. La documentación que viene con su particular distribución le explicara que necesita para arrancar Linux. La mayoría de las distribuciones de Linux utilizan un disquete de arranque que le permite introducir parámetros de su hardware en tiempo de arranque, para forzar la detección de sus dispositivos. Por ejemplo, si su controladora SCSI no se detecta durante el arranque, necesitara rearrancar y especificar los parámetros del hardware (como direcciones E/S e IRQ) en el prompt de arranque. Boot: y tal vez otros mensajes. ________ Para arrancar sin mas parámetros especiales, pulse |_enter_ |en el prompt del arranque. Observe los mensajes del arranque. Si tiene una controladora SCSI, debería ver una lista de hosts SCSI detectados. Si observa el mensaje SCSI: 0 hosts es porque no se detecto su controladora SCSI, y tendrá que seguir el siguiente procedimiento. Además, el sistema le informara de las particiones y dispositivos detectados. Si cualquier parte de esta información es incorrecta (o falta alguno), tendrá que forzar la detección del hardware.

5

Por otro lado, si todo va bien y todo su hardware es correctamente detectado, para forzar la detección del hardware, debe entrar los parámetros adecuados en el prompt de arranque, utilizando la siguiente sintaxis: ramdisk Hay cierto numero de parámetros disponibles; aquí mostraremos los más comunes. hd=,, Especifica la geometría del disco. Requerido para sistemas como el IBM PS/1, ValuePoint y ThinkPad. Por ejemplo, si su disco tiene 683 cilindros, 16 cabezas y 32 sectores por pista, introduzca Ramdisk HD=683,16,32 tmc8xx=, Especifica las direcciones e IRQ para el controlador SCSI Future Domain TMC−8xx. ramdisk tmc8xx=0xca000,5 Observe que el prefijo 0x debe utilizarse para todos los valores que se dan en hexadecimal. Esto se cumple con todas las opciones siguientes. st0x=, Especifica las direcciones e IRQ para el controlador Seagate ST02. t128=, Especifica las direcciones e IRQ para el controlador Trantor T128B. Ncr5380=,, Especifica el puerto, IRQ y canal DMA para el controlador genérico NCR5380. aha152x=,,,1 Especifica puerto, IRQ e identificador SCSI para controladores AIC−6260. Esto Incluye a los controladores Adaptec 1510, 152x y Soundblaster−SCSI. Para cada uno de estos, debe entrar ramdisk seguido del parámetro que desee utilizar. Dispositivos y particiones en Linux Muchas distribuciones necesitan que se creen a mano las particiones de Linux utilizando el programa fdisk. Otras pueden crearlas automáticamente. En cualquier caso, usted debe conocer lo siguiente acerca de los nombres para los dispositivos y las particiones en Linux. Bajo Linux, los dispositivos y las particiones tienen nombres muy distintos a los utilizados en otros sistemas 6

operativos. Bajo MS−DOS, las disqueteras se identifican como A: y B:, mientras que las particiones del disco duro se identifican como C:, D, etc. Bajo Linux, la denominación es algo diferente. Los manejadores de dispositivos, que se encuentran en el directorio /dev, se usan para comunicar con los dispositivos de su sistema (como discos duros o ratones). Por ejemplo, si usted tiene un ratón en su sistema, lo puede acceder a trabes del manejador /dev/mouse. Las disqueteras, discos duros y particiones tienen cada uno un manejador propio. No se preocupe acerca de la interfaz del manejador por ahora; solo es importante entender como son nombrados los dispositivos con el fin de poderlos usar. La tabla 2.1 lista los nombres de diversos manejadores. __________________________________________________________________ __Dispositivo____________________________________Nombre__________ Primera disquetera (A:) /dev/fd0 Segunda disquetera (B:) /dev/fd1 Primer disco duro (todo el disco) /dev/hda Primer disco duro, partición primaria 1 /dev/hda1 Primer disco duro, partición primaria 2 /dev/hda2 Primer disco duro, partición primaria 3 /dev/hda3 Primer disco duro, partición primaria 4 /dev/hda4 Primer disco duro, partición lógica 1 /dev/hda5 Primer disco duro, partición lógica 2 /dev/hda6 .. . Segundo disco duro (todo el disco) /dev/hdb Segundo disco duro, partición primaria 1 /dev/hdb1 .. . Primer disco duro SCSI (todo el disco) /dev/sda Primer disco duro SCSI, partición primaria 1 /dev/sda1 .. . 7

Segundo disco duro SCSI (todo el disco) /dev/sdb Segundo disco duro SCSI, partición primaria 1 /dev/sdb1 .. . Tabla 2.1: Nombres de discos y particiones en Linux Creación de las particiones en Linux Después de arrancar el disquete, ejecute el comando fdisk tecleando fdisk Donde es el nombre de dispositivo con el que Linux identifica el disco duro donde quiere realizar las particiones (véase la Tabla 2.1). Por ejemplo, si desea ejecutar fdisk sobre el primer disco SCSI de su sistema, utilice el comando fdisk /dev/sda. Por defecto, fdisk actúa sobre /dev/hda (el primer disco IDE). Para crear particiones de Linux en mas de un disco, ejecute fdisk una vez por disco. # Fdisk /dev/hda Command (m for help): En este punto, fdisk esta esperando un comando; puede teclear m para obtener una lista de opciones. Command (m for help): m Command action a toggle a bootable flag d delete a partition l list known partition types m print this menu n add a new partition p print the partition table q quit without saving changes t change a partition's system id u change display/entry units v verify the partition table

8

w write table to disk and exit x extra functionality (experts only) Command (m for help): El comando n se usa para crear una nueva partición. Casi todas las demás opciones no nos van a preocupar ahora mismo. Para salir de fdisk sin salvar cambios, utilice el comando q. Para salir escribiendo los cambios en la tabla de particiones, utilice el comando w. Lo primero que debe hacer es mostrar su tabla de particiones actual y anotar sus datos, para referencias posteriores. Use el comando p para esto. Command (m for help): p Disk /dev/hda: 16 heads, 38 sectors, 683 cylinders Units = cylinders of 608 * 512 bytes Device Boot Begin Start End Blocks Id System /dev/hda1 * 1 1 203 61693 6 DOS 16−bit >=32M Command (m for help): En este ejemplo, tenemos una partición única en /dev/hda1, con 61693 bloques (unos 60 megabytes).6 Esta partición comienza en el cilindro 1 y finaliza en el 203. En total el disco tiene 683 cilindros de los cuales 480 están libres para crear particiones de Linux. Para crear una nueva partición, utilice el comando n. En este ejemplo crearemos dos particiones primarias (/dev/hda2 y /dev/hda3) para Linux. Command (m for help): n Command action e extended p primary partition (1−4) p Aquí, fdisk pide el tipo de partición a crear: extendida o primaria. En nuestro ejemplo elegimos p pues solo vamos a crear particiones primarias. Partition number (1−4): fdisk preguntara entonces por el numero de la partición a crear; puesto que la 1 esta en uso, nuestra primera partición para Linux debe ser la 2.

9

Partition number (1−4): 2 First cylinder (204−683): Ahora debe entrar el cilindro de comienzo de la partición. Dado que actualmente no están en uso los cilindros 204 a 683, escogeremos el primero disponible (204), ya que no hay razón para dejar huecos entre particiones. First cylinder (204−683): 204 Last cylinder or +size or +sizeM or +sizeK (204−683): Ahora fdisk nos esta preguntando acerca del tamaño de la partición a crear. Podemos hacerlo especificando el cilindro de terminación de la partición o metiendo directamente el tamaño requerido, en bytes, kilobytes, o megabytes. Como queremos que la partición ocupe 80 megabytes, especificaremos +80M. Cuando se indica el tamaño de esta forma, fdisk lo redondea a un numero de cilindros. Last cylinder or +size or +sizeM or +sizeK (204−683): +80M Warning: Linux cannot currently use 33090 sectors of this partition Si usted ve un mensaje como el anterior, puede ignorarlo. fdisk imprime este aviso debido a que es un programa antiguo que data de cuando las particiones de Linux no podían superar los 64 megabytes. Ahora podemos pasar a crear la segunda partición. Como ejemplo, vamos a crearla de 10 megabytes. Command (m for help): n Command action e extended p primary partition (1−4) p Partition number (1−4): 3 First cylinder (474−683): 474 Last cylinder or +size or +sizeM or +sizeK (474−683): +10M Finalmente, vamos a ver la tabla de particiones. Una vez mas, anote la información que se le Presente sobre todo los tamaños en bloques de las nuevas particiones. Necesitara conocerlos cuando tenga que crear, mas tarde, los sistemas de archivos. Además, debe verificar que las particiones no se solapen. Command (m for help): p Disk /dev/hda: 16 heads, 38 sectors, 683 cylinders Units = cylinders of 608 * 512 bytes 10

Device Boot Begin Start End Blocks Id System /dev/hda1 * 1 1 203 61693 6 DOS 16−bit >=32M /dev/hda2 204 204 473 82080 81 Linux/MINIX /dev/hda3 474 474 507 10336 81 Linux/MINIX Como puede ver, ahora en /dev/hda2 tenemos una partición de 82080 bloques (aproximadamente 80 megabytes) y en /dev/hda3 tenemos 10336 bloques (unos 10 megabytes). Observe que muchas distribuciones (como la Slackware) requieren que se utilice el comando t en fdisk para cambiar el tipo de la partición elegida para el intercambio a "Linux swap", normalmente con el numero 82. Se puede usar el comando L para ver una lista de tipos de particiones conocidas, y luego t para establecer el tipo de la partición de intercambio a "Linux swap". De esta forma, el software de instalación podrá encontrar automáticamente sus particiones de swap en función del tipo. Si el software de instalación no pudiera reconocer su partición de intercambio, deberá repetir la ejecución de fdisk y utilizar el comando t sobre la partición en cuestión. En el ejemplo anterior, los cilindros sobrantes (508 a 683) se quedan sin usar. Puede que se desee hacerlo así, para mas adelante crear mas particiones. Finalmente, utilizaremos el comando w para escribir los cambios en el disco y salir. Command (m for help): w # Recuerde que ningún cambio hecho durante la ejecución de fdisk tendrá efecto hasta que se teclee el comando w, por lo que se puede jugar con diferentes configuraciones y salvarla solo cuando se este decidido. Además, se puede usar el comando q para abandonar fdisk sin hacer ningún cambio. Recuerde también que las particiones de otros sistemas operativos no deben tocarse desde el programa fdisk de Linux. Asimismo, recuerde que no se puede arrancar Linux desde una partición que comience mas allá del cilindro 1023. Por lo tanto, se puede crear la partición de raíz en el rango inferior a este cilindro o, si esto es imposible, arrancar siempre desde un disquete. Algunas distribuciones de Linux necesitan rearrancar el sistema tras ejecutar fdisk. Esto permite que los cambios en la tabla de particiones tengan efecto. Las nuevas versiones de fdisk cambian de forma automática esta información en el núcleo, con lo que no es necesario rearrancar. Lo mas seguro es volver a arrancar tras crear las particiones. Creación del espacio de intercambio (swap) Si usted esta pensando en usar una partición de intercambio para obtener RAM virtual, es ahora el momento de hacerlo.7 Muchas distribuciones necesitan que se cree y active la partición de intercambio antes de instalar el software. Si usted tiene poca RAM física, la instalación puede no ir bien, a menos que se active una cierta cantidad de swap. El comando utilizado para preparar una partición de intercambio es mkswap, tecleándose 11

mkswap −c donde es el nombre de la partición de swap y es el tamaño de la partición, en bloques.8 Por ejemplo, si su partición de intercambio es la /dev/hda3 y tiene 10336 bloques, teclee el comando # mkswap −c /dev/hda3 10336 La opción −c indica a mkswap que compruebe si hay bloques erróneos en la partición mientras la crea. Si se usan varias particiones de intercambio, se necesitara ejecutar el comando mkswap apropiado para cada partición. Después de preparar el área de swap, hay que decirle al sistema que la use. Normalmente, el sistema comienza a usarla automáticamente durante el arranque. Sin embargo, como aun no tiene instalado el software de Linux, tiene que activarla a mano. El comando para hacerlo es swapon, y tiene el formato swapon En el ejemplo anterior, para activar el espacio de intercambio en /dev/hda3, usaremos el comando # swapon /dev/hda3 Creación de los sistemas de archivos Antes de que se puedan usar las particiones de Linux para almacenar archivos, hay que crear los sistemas de archivos en ellas. La creación de un sistema de archivos es análoga a formatear una partición de MS−DOS u otros sistemas operativos. Hay varios tipos de sistemas de archivos disponibles en Linux. Cada tipo de sistema de archivos tiene su propio formato y características (como longitud del nombre de los archivos, tamaño máximo, etc). Además, Linux soporta sistemas de archivos "de terceros" como el de MS−DOS. El tipo de sistema de archivos mas usado es el Sistema de Archivos Extendido 2, o ext2fs. El ext2fs es uno de los mas eficientes y flexibles sistemas; permite hasta 256 caracteres en los nombres de los archivos y tamaños de estos de hasta 4 Terabytes. Si desea crear sus propios sistemas a mano, siga el método que a continuación describimos. Para crear un sistema tipo ext2fs utilice el comando mke2fs −c donde es el nombre de la partición, y es el tamaño de la partición en bloques. Por ejemplo, para crear un sistema de 82080 bloques en /dev/hda2, use el comando # mke2fs −c /dev/hda2 82080 Si quiere usar varios sistemas de archivos en Linux, necesitara repetir el comando mke2fs por 12

cada sistema de archivos. Instalación del software Finalmente, ya esta preparado para instalar el software en su sistema. Cada distribución tiene una forma distinta de hacerlo. Muchas tienen un programa que le guía paso a paso en este proceso. En otras, usted tendrá que montar sus sistemas de archivos en un directorio (como /tmp) y copiar el software a este a mano. En las distribuciones en CD−ROM puede seguir la opción de instalar una parte de lo que contiene en su disco duro y dejar el resto (la mayor parte) en el CD−ROM. Algunas distribuciones ofrecen diversos mecanismos para instalar el software. Por ejemplo, puede instalarlo directamente desde una partición MS−DOS de su disco duro, en lugar de hacerlo desde los disquetes. O incluso puede hacerlo a trabes de una red TCP/IP medionte FTP o NFS. Consulte la documentación de la distribución para ver detalles. El método exacto para instalar el software de Linux difiere en gran parte según la distribución. Confiamos en que instalar el software de Linux es auto explicativo, como sucede con la mayoría de las distribuciones Creación del disco de arranque o instalación del LILO Cada distribución proporciona mecanismos para arrancar Linux cuando ya este instalado en su sistema. En la mayoría de los casos se creara un disquete "Boot" que contiene el núcleo de Linux configurado para usar con su recién creado sistema de archivos raíz. Para arrancar Linux, deberá hacerlo desde ese disquete y tras el arranque se pasara el control a su disco duro. En otras distribuciones, el disco de arranque es el propio disquete de instalación. La mayoría de las distribuciones le van a dar la opción de instalar LILO en su disco duro. LILO es un programa que se instala en el registro maestro de arranque del disco, y esta preparado para Arrancar varios sistemas operativos, entre los que se incluyen MS−DOS y Linux, permitiéndole elegir que sistema quiere arrancar en cada momento. Con el fin de instalar LILO correctamente, necesita conocer bastante información acerca de la Configuración de su disco por ejemplo, que particiones contiene cierto sistema operativo, como arrancar cada sistema operativo, etc. La mayoría de las distribuciones, cuando se instala LILO, tratan de elegir la mejor configuración para este. Aunque no es lo habitual, la instalación automatizada de LILO puede fallar, dejando el registro de arranque maestro de su disco inservible (aunque es difícil que esto llegue a hacerle perder datos de su disco). En concreto, si utiliza el Boot Manager de OS/2, usted no deberá instalar LILO medionte el procedimiento automático para ello, habrá que seguir instrucciones especiales que le daremos mas tarde. En muchos casos, lo mejor es usar un disquete de arranque, hasta que usted este en condiciones de configurar LILO a mano. Si usted es excepcionalmente confiado, puede seguir adelante con el procedimiento automático para instalar LILO si este forma parte de la distribución. Otros procedimientos de instalación 13

Algunas distribuciones proporcionan procedimientos de instalación adicionales, permitiéndole configurar diversos módulos como el de red TCP/IP, el sistema X Window, y otros. Si en su instalación se encontró con opciones de este tipo, puede que desee leer capítulos posteriores de este libro para obtener mas información acerca de como configurar ese software. Si no, puede guardar esas opciones de instalación hasta que entienda perfectamente como configurar el software

Capítulo 3 Administración del sistema Partes de un sistema operativo Un sistema operativo UNIX está constituido por un Kernel (núcleo) y algunos programas de sistema ; hay tambien algunos programas de aplicaciones para trabajar con ellos . El kernel es el corazón del sistema operativo , mantiene un control de los archivos en el disco, comienza programas y los lanza concurrentemente , asigna memoria y otros recursos a varios procesos , recibe paquetes de una red y envia paquetes por ella , etc. El kernel hace muy poco trabajo el solo pero provee de las herramientas necesearias para que todos los servicios puedan ser construidos , también previene de que los programas accesen directamente al hardware , obligando a todos a usar sus herramientas . Las herramientas que provee el kernel son usadas via las llamadas al sistema Los programas de sistema corren por encima del kernel en lo que se llama modo usuario , la diferencia entre los progaramas de sistema y los programas de aplicaciones es que las aplicaciones tienen la meta de realizar trabajos útiles (o juegos) mientras que los programas de sistema son necesarios para que el sistema funcione Partes mas importantes del kernel linux El kernel de linux consiste de muchas partes imporatnes: • Manejo de procesos • Manejo de memoria • Manejadores de dispositivos de hardware (device drivers) • Manejadores de sistemas de archivos • Manejo de red Algunas de las partes mas imporatantes del kernel

14

Probablemente las partes mas importantes del kernel ( nada trabaja sin esto) son el manejo de memoria y de procesos. El manejo de memoria se encarga de asignar areas de memoria y espacio de swap para los procesos , parts del kernel y para el buffer caché . El manejo de procesos crea procesos e implementa multitareas cambiando el proceso activo en el procesador Algunos servicios que provee el kernel tienen propiedades similares y pueden ser abstraidos en clases , por ejemplo , los muchos protocolos de red han sido abstraidos en una sola interfaz de programa (BSD socket library) , otro ejemplo es el sistema de archivos virtual (virtual filesystem−−VSF) que abstrae las operaciones del sistema de archivos de su implementacion .Cada tipo de sistema de archivos provee una implementacion de cada operación . Cuando alguna entidad intenta usar el sistema de archivos , el pedido va a traves del VFS quien rutea al manejador de sistema de archivos apropiado ¿Qué son los filesystems? Un filesystem son los métodos y estructuras de los datos que un sistema operativo usa para guardar huella de archivos en un disco o partición; es decir, la manera en que los archivos son organizados en el disco. La palabra también se usa para referirse a una partición o disco que se usan para guardar los archivos o el tipo del filesystem. Así, uno podría decir `` yo tengo dos filesystems'' que significa uno tiene dos particiones en cuál guarda archivos, o ese uno está usando el `` el filesystem'' extendido, significando el tipo del filesystem. La diferencia entre un disco o partición y el filesystem que contiene es importante. Unos programas (incluyendo programas que crean filesystems) operan directamente en los sectores crudos de un disco o partición; si hay un sistema del archivo existiendo allí se destruirá o se coromperá. La mayoría de los programas opera en un filesystem, y por consiguiente no trabajará en una partición que no contiene uno. Antes de una partición o que el disco pueda usarse como un filesystem, necesita ser inicializado, y las estructuras que se necesitan deben ser escritas al disco. Este proceso se llama que hacer un filesystem. 15

La mayoría los filesystem tipo UNIX tienen una estructura general similar, aunque los detalles exactos varían poco realmente. Los conceptos centrales son los superblock, inode, el bloque de datos, bloque del directorio, y bloque de apuntadores indirectos. El superblock contiene información en conjunto sobre el filesystem, como su tamaño (la información exacta depende del filesystem). Un inode contiene toda la información sobre un archivo, exceptúando su nombre. El nombre se guarda en el directorio, junto con el número del inode. Una entrada del directorio consiste en un filename y el número del inode que representa el archivo. El inode contiene los números de los bloques de datos que se usan para guardar los datos en el archivo. Hay espacio sólo para unos cuantos bloques de datos en el inode, sin embargo si más se necesitan, existe más espacio para los indicadores a los bloques de los datos los cuales se asignan dinámicamente. Estos bloques dinámicamente asignados son bloques indirectos; el nombre indica que para encontrar los bloques de datos, uno tiene que encontrar su número primero en el bloque indirecto. Los filesystems de UNIX normalmente permiten crear un agujero en un archivo (esto se hace con lseek; el cheque la página manual) que significa que el filesystem pretende simplemente aparentar que un lugar particular en el archivo hay ceros bytes, pero ningún sector del disco real es reservado para ese lugar en el archivo (esto significa que el archivo usará un pedazo menos espacio del disco). Esto pasa especialmente a menudo para los arcnivos binarios pequeños, las bibliotecas compartidas de Linux, algunos bancos de datos, y unos otros casos especiales. (Los agujeros se crean guardando un valor especial como la dirección del bloque de los datos en el bloque indirecto o inode. Este medios de dirección especiales que ningún bloque de los datos se asigna para esa parte del archivo, hay un agujero luego, en el archivo). Los agujeros son ligeramente útiles. Una medida simple mostró un potencial para sobre 4 MB de ahorro a través de los agujeros en el sistema del autor, de aproximadamente 200 el total de MB que usó de espacio del disco. Ese sistema, sin embargo, contienía pocos programas y ningún archivo del banco de datos. Filesystems Disponibles Linux soporta varios tipos de filesystems. Los más importantes son: minix El más viejo, presumió por ser el más fiable, pero bastante limitado en rasgos (a lo sumo 30 caraceteres por filenames) y restringido en capacidades (a lo sumo 64 MB por el filesystem). xia Una versión modificada del filesystem del minix que alza los límites en los filenames y el filesystem clasifica según tamaño, pero no introduce nuevos rasgos por otra parte. No es muy popular, pero se informa para trabajar muy bien. ext2 El mejor de los filesystems nativos de Linux, actualmente también el más popular. Se diseñó para ser fácilmente upwards compatible, para que las nuevas versiones del filesystem que se codifiquen no requieran rehacer el filesystems existente. ext Una versión más vieja de ext2, éste no era upwards compatible. Casi nunca se usa en la actualidad, y la mayoría de las personas se ha cambiado a ext2. 16

Además, Linux soporta varios filesystem extranjeros existentes, para hacer más fácil intercambiar archivos con otros sistemas operativos. Estos filesystems extranjeros simplemente trabajan como el nativo, sólo que puede estar faltandoles algunos rasgos usuales de UNIX, o tiene limitaciones curiosas, u otras rarezas. msdos Compatibilidad con MS−DOS (y OS/2 y Windows NT) el filesystems FAT. usmdos Extiende al driver del filesystem del msdos para que bajo Linux pueda conseguir filenames largos, dueños, permisos, eslabones, y archivos del dispositivo. Esto permite usar un filesystem del msdos normal como si fuera un Linux, así quitando la necesidad por una partición separada para Linux. iso9660 El filesystem del CD−ROM normal; la popular la extensión Rock Ridge o CD−ROM standart que permite nombres del archivo más largos se apoya automáticamente. nfs Un filesystem conectado en red de computadoras permite compartir un filesystem entre muchas computadoras para poder permitir acceso fácil a los archivos de todos ellos. hpfs Los OS/2 filesystem. sysv SystemV/386, Coherent, y filesystems de Xenix. El filesystem a elegir depende de la situación. Si compatibilidad u otras razones hacen requisito del uso de un filesystems no−nativo, entonces ese debe usarse. Si se puede escoger libremente, entonces es probablemente más sabio usar ext2, ya que que tiene todos los rasgos y no padece mala actuación. Existe también el filesystem del proc, normalmente accesible como el directorio de /proc que realmente no es en absoluto un filesystem, aunque se parece a uno. El filesystem del proc hace más fácil acceder ciertos datos de la estructura del kernel, como la lista del procesos (los nombres), hacen que estas estructuras de datos se parézcan a un filesystem, y ese filesystem pueden manipularse con todas las herramientas usuales de archivo. Por ejemplo, para conseguir una lista de todos los procesos uno podrían usar la orden: $ ls −l /proc total 0 dr−xr−xr−x 4 root root 0 Jan 31 20:37 1 dr−xr−xr−x 4 liw users 0 Jan 31 20:37 63 dr−xr−xr−x 4 liw users 0 Jan 31 20:37 94

17

dr−xr−xr−x 4 liw users 0 Jan 31 20:37 95 dr−xr−xr−x 4 root users 0 Jan 31 20:37 98 dr−xr−xr−x 4 liw users 0 Jan 31 20:37 99 −r−−r−−r−− 1 root root 0 Jan 31 20:37 devices −r−−r−−r−− 1 root root 0 Jan 31 20:37 dma −r−−r−−r−− 1 root root 0 Jan 31 20:37 filesystems −r−−r−−r−− 1 root root 0 Jan 31 20:37 interrupts −r−−−−−−−− 1 root root 8654848 Jan 31 20:37 kcore −r−−r−−r−− 1 root root 0 Jan 31 11:50 kmsg −r−−r−−r−− 1 root root 0 Jan 31 20:37 ksyms −r−−r−−r−− 1 root root 0 Jan 31 11:51 loadavg −r−−r−−r−− 1 root root 0 Jan 31 20:37 meminfo −r−−r−−r−− 1 root root 0 Jan 31 20:37 modules dr−xr−xr−x 2 root root 0 Jan 31 20:37 net dr−xr−xr−x 4 root root 0 Jan 31 20:37 self −r−−r−−r−− 1 root root 0 Jan 31 20:37 stat −r−−r−−r−− 1 root root 0 Jan 31 20:37 uptime −r−−r−−r−− 1 root root 0 Jan 31 20:37 version $ (Habrá unos archivos extras que no corresponden a los procesos, aunque. El ejemplo anterior se ha cortado.) Note que aunque se llama un filesystem, ninguna parte del filesystem del proc toca cualquier disco. Sólo existe en la imaginación del kernel. Siempre que cualquiera intente mirar cualquier parte del filesystem del proc, el kernel le hace parecer como si la parte existiera en alguna parte, aunque no hace. Así, aunque hay un multi−megabyte que /proc/kcore archiva, no toma ningún espacio del disco. ¿Qué filesystem deben usarse? Existe normalmente pequeñas diferencias usando filesystems diferentes. Actualmente, ext2fs es el más popular, y probablemente es la opción más sabia. Dependiendo de las estructuras de los archivos, velocidad, la fiabilidad, compatibilidad, y otras razones, puede ser aconsejable usar otro sistema del archivo. Esto necesita ser decidido en una base del caso−por−caso.

18

Creando un filesystem Se crean Filesystems y se inicalizan con la orden del mkfs. Hay un programa separado realmente para cada tipo del filesystem. el mkfs es justo un extremo delantero que ejecuta el programa apropiado que depende del tipo del filesystem deseado. El tipo se selecciona con la opción fstype −t . Los programas llamados por mkfs tienen interfaces de línea de orden ligeramente diferentes. El común y la mayoría de las opciones importantes se resumen debajo; vea las páginas manuales para más información. −t fstype Selecciona el tipo del filesystem. −c Busqua los bloques malos e inicializa la lista del bloque malo respectivo. −l Filename Lee la lista del bloque malo inicial del archivo especificado. Para crear un ext2 filesystem en un disco blando, uno daría los órdenes siguientes: $ fdformat −n /dev/fd0H1440 Double−sided, 80 tracks, 18 sec/track. Total capacity 1440 kB. Formatting ... done $ badblocks /dev/fd0H1440 1440 $>$ bad−blocks $ mkfs −t ext2 −l bad−blocks /dev/fd0H1440 mke2fs 0.5a, 5−Apr−94 for EXT2 FS 0.5, 94/03/10 360 inodes, 1440 blocks 72 blocks (5.00%) reserved for the super user First data block=1 Block size=1024 (log=0) Fragment size=1024 (log=0) 1 block group 8192 blocks per group, 8192 fragments per group 360 inodes per group Writing inode tables: done 19

Writing superblocks and filesystem accounting information: done $ Primero, el disco blando fue estructurado (la opción −n previene aprobación, es decir, bloque malo que fue verificado). Entonces se buscaron los bloques malos con badblocks, con el rendimiento remitido a un archivo, bad−blocks. Finalmente, el filesystem fue creado, con la lista de los bloques malos inicializados por badblocks que fuera encontrado. La opción −c podría usarse con mkfs en lugar del badblocks y un archivo. El ejemplo debajo lo hace : $ mkfs −t ext2 −c /dev/fd0H1440 mke2fs 0.5a, 5−Apr−94 for EXT2 FS 0.5, 94/03/10 360 inodes, 1440 blocks 72 blocks (5.00%) reserved for the super user First data block=1 Block size=1024 (log=0) Fragment size=1024 (log=0) 1 block group 8192 blocks per group, 8192 fragments per group 360 inodes per group Checking for bad blocks (read−only test): done Writing inode tables: done Writing superblocks and filesystem accounting information: done $ La opción −c es más conveniente que un uso separado de badblocks, pero el badblocks es necesario para verificar después de que el filesystem se ha creado. El proceso para preparar filesystems en disco duro o las particiones son igual que para los discos blandos, sólo que el formato no se necesita. Montando y Desmontando Antes de que un filesystem se pueden usar, tiene que ser montado. El sistema operativo hace varias cosas del manejo de archivos para asegurarse que todo trabaja. Todos los archivos en UNIX está en un solo árbol del directorio, el funcionamiento de mount hará parecer a los volúmenes del nuevo filesystem como los volúmenes de un subdirectorio de un filesystem ya montado.

20

Por ejemplo, Figura 4−3 muestra tres filesystems separados, cada uno con su propio directorio de la raíz. Cuando los últimos dos filesystems están montados debajo de /home y /usr, respectivamente, en los primeros filesystem, nosotros podemos conseguir un solo árbol del directorio, como en Figura 4−4. Los montajes podrían hacerse como en el ejemplo siguiente: $ mount /dev/hda2 /home $ mount /dev/hda3 /usr $ La orden mount toma dos argumentos. El primero es el archivo del dispositivo que corresponde al disco o partición que contiene el filesystem. El segundo es el directorio debajo del que se montará. Luego de lso dos órdenes los volúmenes de los dos filesystems simplemente se verán como los volúmenes /home y directorios /usr, respectivamente. Uno diría entonces que `` /dev/hda2 está montado en /home '', y lo propio para /usr. Para mirar cualquier filesystem, uno miraría los volúmenes del directorio en el que ha estado montado, así como si fuera cualquier otro directorio. Note la diferencia entre el archivo del dispositivo, /dev/hda2, y el directorio montado, /home. El archivo del dispositivo da acceso a los volúmenes crudos del disco, el directorio montado da el acceso a los archivos en el disco. El directorio montado se llama el punto de montaje. Linux soporta muchos tipos del filesystem. La orden mount intenta suponer el tipo del filesystem. Usted también puede usar la opción −t fstype para especificar el tipo directamente; esto a veces es necesario, ya que los usos de monut no siempre trabajan. Por ejemplo, para montar un disco blando de MS−DOS, usted podría usar el orden siguiente: $ mount −t msdos /dev/fd0 /floppy $ El directorio montado debe estar vacíoy debe existir. Cualquiera archivo en él, sin embargo, será inaccesible por el nombre mientras el filesystem está montado. (Cualquier archivo que ya se ha abierto todavía será accesible. Pueden accederse archivos que tienen eslabones duros de otros directorios usando esos nombres.) Hacer esto es inofensivo, e incluso puede ser útil. A algunas personas les gusta por ejemplo, tener /tmp y /var/tmp como sinónimos, y hace a /tmp ser un eslabón simbólico a /var/tmp. Cuando el sistema boots, antes de que el filesystem de /var esté montado, un directorio de /var/tmp que reside en el filesystem de la raíz se usa en cambio. Cuando /var está montado, hará el directorio de /var/tmp en el filesystem de la raíz inaccesible. Si /var/tmp no existiera en el filesystem de la raíz, sería imposible de usar archivos temporales antes de montar /var. Si usted no piensa escribir algo al filesystem, use el −r interruptor de mount para hacer una mount de readonly. Esto hará al kernel detener cualquier esfuerzo de escribir al filesystem, y también detendrá al kernel de poner al día tiempos de acceso de archivo en el inodes. Read−only mount son necesarias para los medios de comunicación protejidos contra escritura, ej., CD−ROM. El lector ya ha notado un problema logístico. ¿Cómo es el primer filesystem (llamado el filesystem de la raíz, porque contiene el directorio de la raíz) montado, ya que no puede montarse obviamente en otro filesystem? Bien, la respuesta es que es hecho a través de magia. El el filesystem de la raíz está mágicamente montado en momento del booteado, y uno puede confiar que siempre está montado. Si el filesystem de la raíz no pueden montarse, el sistema no puedeser booteado. El nombre del filesystem que magicamente se monta como raíz luego se compila en el kernel, o usando LILO o rdev.

21

El filesystem de la raíz normalmente se monta primero readonly. El script del startup entonces ejecutará fsck para verificar su validez, y si no hay ningún problema, ellos lo re−montarán el root para que también se permitira escritura. No debe correrse fsck en un filesystem montado, ya que cualquier cambio al filesystem mientras el fsck está corriendo causará problemas. Puesto que el filesystem de la raíz está montado readonly mientras está verificándose, los fsck pueden arreglar cualquier problema sin cuidado, ya que el remonte vaciará cualquier metadata que el filesystem contiene en memoria. En muchos sistemas hay otros filesystems que también deben montarse automáticamente en momento del boteado. Éstos se especifican en el archivo de /etc/fstab; vea la página man de fstab para detalles en el formato. Los detalles de exactamente cuando los filesystems extras están montados dependan de muchos factores, y pueden ser configurados por cada administrador si fuera menester. Cuando un filesystem ya no necesita ser montado, puede ser desmontado con umount. El umount toma un argumento: o el dispositivo de archivo o el punto de montaje. Por ejemplo, al unmount los directorios del ejemplo anterior, uno podría usar los órdenes: $ umount /dev/hda2 $ umount /usr $ Vea la página del manual para las instrucciones avanzadas de cómo usar el comando. Es indispensable que usted siempre desmonte un disco blando montado. ¡No saque el disco blando fuera del drive simplemente! El datos necesariamente no se escriben al disco blando hasta que usted lo desmonta debido a que algunos se encuentran en el caché , así que quitando el disco blando del drive demasiado rápido podrían causar que los volúmenes se corrompan. Si usted sólo leyera del disco blando, esto no es muy probable, pero si usted escribe, aún accidentalmente, el resultado puede ser catastrófico. Montado y Desmontado requiere un usuario con mucho privilegio, es decir, sólo el root puede hacerlo. La razón para esto es que si cualquier usuario puede montar un disco blando en cualquier directorio, entonces es bastante fácil de crear un disco blando con, por ejemplo, un caballo de Troya se enmascarado como /bin/sh, o cualquier otro programa a menudo usado. Sin embargo, es a menudo necesario permitirles a los usuarios usar discos blandos, y hay varias maneras de hacer esto: Déles la contraseña de la raíz a los usuarios. Ésta es seguridad evidentemente mala, pero es la solución más fácil. Funciona bien si no hay necesidad de seguridad que es el caso en muchas no conectadas red de computadoras, sistemas personales. Use un programa como sudo permitirles a los usuarios usar mount. Ésta todavía es seguridad mala, pero no da directamente el usuario privilegio de todo. Haga a los usuarios usar mtools, un paquete por manipular filesystems de MS−DOS, sin montarlos. Esto trabaja bien si los discos blandos de MS−DOS son todos los que se necesitan, pero es por otra parte bastante torpe. La lista los dispositivos blandos y sus puntos de la mount aceptables junto con las opciones convenientes en /etc/fstab. La última alternativa puede ser llevada a cabo agregando una línea como lo siguiente al archivo \fn{/etc/fstab} :

22

/dev/fd0 /floppy msdos user,noauto 0 0 Las columnas son: archivo del dispositivo para montar, directorio para montar adelante, tipo de filesystem, opciones, frecuencia del backup (usado para dump), y los numeros del fsck (para especificar el orden en el que deben verificarse filesystems en el booteo; 0 signiifica ningún chequeo). La opción noauto detiene que este montado vaya a ser hecho automáticamente cuando el sistema se inicializa (es decir, detiene mount −a de montarlo). La opción user le permite a cualquier usuario montar el filesystem, y, debido a las razones de seguridad, desaprueba la ejecución de programas (normal o setuid) e interpretación de archivos del dispositivo del filesystem montado. Después de esto, cualquier usuario puede montar un disco blando con un filesystem del msdos con la orden siguiente: $ mount /floppy $ El disco blando (y necesidades a, por supuesto) puede ser desmontado con el comando \cmd{umount correspondiente}. Si usted quiere proporcionar acceso a varios tipos de discos blandos, necesita dar varios puntos de mopntaje. Las situaciones pueden ser diferentes para cada punto de la mount. Por ejemplo, para dar acceso a discos blandos de MS−DOS y de ext2, usted podría tener lo siguiente en las líneas en /etc/fstab: /dev/fd0 /dosfloppy msdos user,noauto 0 0 /dev/fd0 /ext2floppy ext2 user,noauto 0 0 Para el filesystems de MS−DOS (no sólo discos blandos), usted quiere restringir acceso a él usando probablemente los opciones uid, gid, y umask del filesystem, descritas en detalle en la mount la página manual. Si usted no tiene cuidado, montando un filesystem de MS−DOS da a lo menos a todos acceso a los archivos, lo cual no es una idea buena. Integridad del filesystem verificando con fsck Los Filesystems son estrcturas complejas, y como tal, tienden a estar algo dañadas. Puede verificarse la exactitud de un filesystem y validez usando el orden del fsck. Podría utilizarse para reparar cualquier problema menor que encuentre, y para alertar al usuario de cualquier problema irreparable. Afortunadamente, el código para llevar a cabo filesystems se pone a punto bastante eficaz, raramente existe cualquier problema, y ellos normalmente son causados por fallos de poder, fallando el hardware, o errores de operación; por ejemplo, no cerrando el sistema propiamente. La mayoría de los sistemas están configurados para ejecutar fsck automáticamente en momento del booteo, para que cualquier error que se descubra (y esperando haberlocorrigido) antes de que el sistema se use. Usa de un filesystem adulterados tiende a hacer cosas peor: si las estructuras de los datos se desordenan, usando el filesystem probablemente los desordenarán más aun, produciendo más pérdida de los datos. Sin embargo, los fsck pueden tardar un rato para correr en filesystems grandes, ya que los errores casi nunca ocurra si el sistema ha estado abajo propiamente cerrado, se usan un par de trucos para evitar hacer los chequeos en tales casos. El primero es que si el archivo que /etc/fastboot existe, ningún chequeo se hace. El segundo es que el ext2 filesystem tiene un marcador especial en su superblock que dice si el filesystem propiamente desmontado previo montaje anterior. Esto permite e2fsck (la versión de fsck para los ext2 filesystem) para evitar verificar el filesystem si la bandera indica que el unmount fue hecho (la suposición es que un unmount apropiado no indica ningún problema). Si bien los /etc/fastboot trucos en su sistema depende del startup script, los ext2 23

trucos se efectúan cada vez usted usa e2fsck. Tiene que ser desviado explícitamente con una opción de e2fsck para ser evitado. (Vea la página del manual de e2fsck para detalles.) El verificando automático sólo trabaja para los filesystems que están automáticamente montados en momento del booteo. Use fsck manualmente para verificar otros filesystems, ej., discos blandos. Si el fsck encuentra problemas inreparables, usted necesita de un conocimiento en profundidad de cómo los filesystems trabajan en general, y el tipo del filesystem corrupto en particular, o los backups buenos. El último es fácil (aunque a veces tedioso) de hacer, el anterior a veces puede manejarse con un amigo, los newsgroups de Linux y listas por correo, o alguna otra fuente de apoyo, si usted no tiene la habilidad para ello. El programa debugfs de Theodore T'so puede ser útil. Sólo deben correrse fsck en filesystems desmontados, nunca en filesystems montados (con la excepción de la raíz al la úinca de lectura durante el startup). Esto es porque se accede el disco crudo, y puede modificar el filesystem por consiguiente sin el sistema operativo que lo comprende. Habrá problemas, si el sistema operativo es desconcertado. Verificando los errores del disco con badblocks Puede ser una buena idea verificar periódicamente los bloques malos. Esto se hace con la orden badblocks. Él nos muestra en una lista los números de todos los bloques malos que puede encontrar. Esta lista puede alimentarse al fsck para ser grabado en los datos del filesystems para que el sistema operativo no intente usar los bloques malos por guardar datos. El ejemplo siguiente mostrará cómo esto pudiera hacerse. $ badblocks /dev/fd0H1440 1440 > bad−blocks $ fsck −t ext2 −l bad−blocks /dev/fd0H1440 Parallelizing fsck version 0.5a (5−Apr−94) e2fsck 0.5a, 5−Apr−94 for EXT2 FS 0.5, 94/03/10 Pass 1: Checking inodes, blocks, and sizes Pass 2: Checking directory structure Pass 3: Checking directory connectivity Pass 4: Check reference counts. Pass 5: Checking group summary information. /dev/fd0H1440: ***** FILE SYSTEM WAS MODIFIED ***** /dev/fd0H1440: 11/360 files, 63/1440 blocks $ Si badblocks informa un bloque que ya se usó, e2fsck intentarán mover el bloque a otro lugar. Si el bloque estuviera muy dañado, no sólo marginalmente, pueden adulterarse los volúmenes del archivo. Fragmentación luchadora 24

Cuando un archivo se escribe al disco, no siempre puede escribirse en bloques consecutivos. Un archivo que no se guarda en bloques consecutivos se fragmenta. Toma para leer un archivo fragmentado más mucho tiempo, ya que el la cabeza de lectura y escritura del disco tendrá que moverse más. Es deseable evitar la fragmentación. El ext2 filesystem intenta mantener la fragmentación en un mínimo, manteniendo unido todos los bloques de archivo cercanos, aun cuando ellos no pueden guardarse en sectores consecutivos. Ext2 eficazmente siempre asigna el bloque libre que está más cercano a otros bloques en un archivo. Para ext2, es por consiguiente raramente necesario preocuparse por la fragmentación. Hay un programa por desfragmentar un ext2 filesystem, Hay muchos MS−DOS programas defragmentadores que mueven bloques alrededor en el filesystem para quitar la fragmentación. Para otro filesystems, los defragmentadores deben ser hechos copiando el filesystem, recreándolo, y restaurando los archivos del backups. Copiando un filesystem antes del defragmentado es una buena idea para todos los filesystems, ya que muchas cosas pueden salir mal durante la defragmentacion. Otras herramientas para todo los filesystems Algunas otras herramientas también son útiles para el administrador del filesystems . El df muestra el espacio del disco libre de cada filesysem; el du muestra cuánto un directorio utiliza de espacio del disco y todos sus archivos que contiene. Éstos pueden usarse para cazar los derrochadores de espacio de disco. Sync fuerza a todos los bloques no escritos en el caché a ser escrito al disco. Raramente es necesario hacer esto a mano; los demonios procesan la actualización hace esto automáticamente. Puede ser útil en catastrofes, por ejemplo si pone es actualizado o su proceso auxiliar bdflush se muere, o si usted debe apagar el poder ahora y no puede esperar por la actualización. Otras herramientas para los ext2 filesystem Además del creador del filesystem (mke2fs) y comprobador (e2fsck) accesible directamente o vía del fin frontal del tipo de filesystem, el ext2 filesystem tiene algunas herramientas adicionales que pueden ser útiles. Tune2fs ajusta parámetros del filesystem. Algunos de los parámetros más interesantes son: Cuenta máxima de montaje. e2fsck fuerza a un chequeo cuando ha sido montado un filesystem muchas veces, aun cuando la bandera limpio esta setada. Para un sistema que se usa para desarrollar o probar el sistema, podría ser una buena idea reducir este límite. Un tiempo máximo entre los chequeos. e2fsck también pueden forzar a un tiempo máximo entre los chequeos, aun cuando la bandera limpia setada, y el filesystem no ha sido muy a menudo montado. Esto puede desactivarse, sin embargo. El número de bloques que se reservó para la raíz. Ext2 reserva algunos bloques para la raíz si el filesystem se llena, todavía es posible hacer administración del sistema sin tener que anular algo. La cantidad reservada es por defecto 5 por ciento que en la mayoría de los discos no es bastante para ser malgastador. Para los discos blandos no hay ningún punto sin embargo, para reservar cualquier bloque. Vea la página del manual de tune2fs para más información. Dumpe2fs muestra información sobre un ext2 filesystem, principalmente del superblock. Alguna de la información en el rendimiento es técnico y requiere entendiender de cómo el filesystem trabaja , pero mucho 25

de él es rápidamente entendible incluso para el layadmins. dumpe2fs 0.5b, 11−Mar−95 for EXT2 FS 0.5a, 94/10/23 Filesystem magic number: 0xEF53 Filesystem state: clean Errors behavior: Continue Inode count: 360 Block count: 1440 Reserved block count: 72 Free blocks: 1133 Free inodes: 326 First block: 1 Block size: 1024 Fragment size: 1024 Blocks per group: 8192 Fragments per group: 8192 Inodes per group: 360 Last mount time: Tue Aug 8 01:52:52 1995 Last write time: Tue Aug 8 01:53:28 1995 Mount count: 3 Maximum mount count: 20 Last checked: Tue Aug 8 01:06:31 1995 Check interval: 0 Reserved blocks uid: 0 (user root) Reserved blocks gid: 0 (group root) Group 0: Block bitmap at 3, Inode bitmap at 4, Inode table at 5 1133 free blocks, 326 free inodes, 2 directories Free blocks: 307−1439 Free inodes: 35−360 Debugfs permite arreglar el filesustem. Permite un acceso directo a las estructuras guardadas del filesystem y puede ser utlizado para reparar un disco tan dañadoq ue fsck no pudo arreglar automáticamente. También es utilizado para recuperar archivos borrados. Sin embargo debugfs require un alto entendimiento de lo que se esta manejano, ya ue un error puede corromper todos sus datos. Dump and restore pueden ser utilizados como comandos de copias, que son los equivalentes de los comandos tradicionales UNIX para un filesystem ext2. Tareas Administrativas Usted tiene nuevas responsabilidades ahora como el administrador del sistema para su nueva instalación de Linux. Realmente, una vez que el sistema se instala y usted ajusta la configuración para satisfacer sus necesidades, Linux se ejecuta casi por sí sólo. Sus deberes principales serán tareas rutinarias − como las cuentas de administrador (usted puede querer crear cuentas para otros usuarios), backups (permita un trabajo del cron hacerlo), actualizando, y algún otro un tiempo o tareas ocasionales. Por supuesto, las emergencias pueden pasar y pasan. Si usted entiende algo donde estan los archivos de la configuración y lo que ellos hacen, no tendrá mayores problemas. Es cuando usted puede necesitar ese disco 26

blando del vmlinuz para bootear Linux. También, sabiendo qué archivo de configuración usted puede revisar directamente y cuál tiene que ser creado a través de un programa de utilidad lo ahorrará una cantidad enorme de stress cuando usted está presionado a poner su sistema en marcha. Después de que usted se ha booteado con éxito, podría querer echar una mirada más cuidadosamente a los mensajes del bootup. Usted puede emitir orden dmesg para desplegarlo en pantalla, o lo remite a un archivo que usa dmesg> filename. Algunos otras órdenes útiles que usted debe estar familiarizado con es: runlevel − despliuega el actual y prevo runlevel telinit − cambia runlevel du − uso del disco df − espacio libre free − memoria usada ps − procesos activos kill − termina procesos sync − escribe los filesystem buffers al disco (para asegurar la integridad de filesystem) clear − Limpia la pantalla reset − Limpia la terminal env − despliegua el actual ambiente shutdown − termina todos los procesos halt − ver la página del manual; es similar a shutdown, pero depende del runlevel y las opciones escogidas Passwd La información sobre los usuarios en /etc/passwd toma la forma: Username | password(encrypted) | UID | GID | GECOS | homedirectory | shell Sólo use este archivo para verificar para información del usuario actual. No utilize este archivo para agregar a los nuevos usuarios. Agregar una cuenta es relativamente fácil. Use el orden adduser. Anulando una cuenta está mucho más complicado, y es normalmente mejor desactivar la cuenta simplemente agregando un asterisco (*) antes de la contraseña para ese usuario en /etc/passwd. Después, cuando usted tiene tiempo, usted tendrá que quitar el directorio del home del usuario, anule al usuario de cualquier grupo, termine cualquier cron o a los trabajos del usuario que tiene corriendo, anule el archivo del correo del usuario en /etc/spool/mail y, por supuesto, quite la entrada del usuario de /etc/passwd. 27

Puesto que las contraseñas son encriptadas, olvidándose de su contraseña significarán usted tiene que bootear el sistema en un disco blando, monte una partición /root (si es necesario), quite la contraseña existiente en /etc/passwd. Reboot el disco duro, login como root, y cree una nueva contraseña que usando el comando passwd. Eche una mirada a este archivo de la contraseña básico (qué es más típico para las computadoras autosuficientes): root::0:0:root:/root:/bin/bash bin:*:1:1:bin:/bin: daemon:*2:2:daemon:/sbin: adm:*:3:4 adm:/var/adm: lp:*:4:7:lp:/var/spool/lpd: sync:*:5:0:sync:/sbin:/bin/sync shutdown:*:6:0:shutdown:/sbin:/sbin/shutdown halt:*:7:0:halt:/sbin:/sbin/halt mail:*:8:12:mail:/var/spool/mail: news:*:9:13:news:/usr/lib/news: uucp:*:10:14:uucp:/var/spool/uucppublic: operator:*:11:0:operator:/root:/bin/bash games:*:12:100:games:/usr/games: man:*:13:15:man:/usr/man: postmaster:*:14:12:postmaster:/var/spool/mail:/bin/bash nobody:*:−2:100:nobody:/dev/null: Ftp:*:404:1::/home/ftp:/bin/bash guest:*:405:100:guest:/dev/null:/dev/null henryw:Oi.UVcBA9I/Hg:501:100:Henry White:/home/henryw:/bin/bash Grupo El archivo de grupo en /etc/group toma la forma: Groupname | password | GID | user1,... ,usernn Note que si no hay ninguna contraseña, usted todavía tiene que entrar en el colon extra en el archivo. Un archivo de grupo básico se parece: root::0:root bin::1:root,bin,daemon daemon::2:root,bin,daemon sys::3:root,bin,adm adm::4:root,adm,daemon tty::5: disk::6:root,adm lp::7:p mem::8: kmem::9: wheel::10:root floppy::11:root mail::12:mail news::13:news uucp::14:uucp man::15:man users::100:games nogroup::−2: at, batch, cron Cuando usted tiene un trabajo que usted quiere correr en un momento específico, usted puede usar at si es un un procedimiento temporal. Usando la orden at es muy simple: escriba la orden at y especifique el tiempo de ejecución, presione Enter luego el comando, Enter y Ctrl−D. La orden Batch combina órdenes y corre con una prioridad más baja que ejecutándolos en el background. A diferencia de los procesos en Background que se eliminan cuando usted hace el logoff del sistema, los órdenes de batch continúan hasta el sistema se cierra. Otra diferencia importante es que esas tareas de background lo interrumpirán para mostrar sus salidas o por confirmación; el batch le enviará esto como un mensaje de correo. Para los procedimientos repetitivos, usted usará cron. Para usar cron, usted crea un archivo del texto primero (con cualquier nombre distinto a crontab) con seis campos separados por un espacio. Los primeros cinco campos son: minuto, hora, día del mes, mes, día de la semana; el sexto campo es la orden para a ser ejecutada. Usted puede usar asteriscos (*) indicar órdenes que serán corridos en cada caso del campo. También los días de la semana empiezan con 0 para el domingo, y que se especifican tiempos en 24 formato de la hora. Usted también puede especificar rangos los días bastante específicos y tiempos, usando un guión (−) si el rango es inclusivo o comas (,) si no es. Después de crear el archivo, instálelo usando la oren crontab − esto creará y 28

instalará los archivos cron y guardarán una copia del original bajo su username en /usr/lib/crontab. Si usted quiere modificar su configuración del cron, revise esta copia del archivo original, entonces instálelo usando crontab como antes. Si usted quiere quitar el archivo use crontab −r. motd Uno los scripts del sistema (/etc/rc.S) crea nuevos /etc/motd y mensajes de /etc/issue basados en el nombre que tiene el kernel que se ejecuta en el sistema. Si usted quiere usar su propio archivo de mensaje , usted tendrá que comentar fuera las líneas en este script si crea los nuevos archivos, si no sus mensajes se borrarán durante el booteo. El formato de rc.S es así: #!/bin/sh # # /etc/rc.d/rc.S: System initialization script. # # Mostly written by: Patrick J. Volkerding, # PATH=/sbin:/usr/sbin:/bin:/usr/bin # enable swapping /sbin/swapon −a # Start update. /sbin/update & # Test to see if the root partition is read−only, like it ought to be. READWRITE=no if echo −n >> "Testing filesystem status"; then rm −f "Testing filesystem status" READWRITE=yes fi # Check the integrity of all filesystems if [ ! $READWRITE = yes ]; then /sbin/fsck −A −a # If there was a failure, drop into single−user mode. if [ $? −gt 1 ] ; then echo echo echo "**************************************" echo "fsck returned error code − REBOOT NOW!" echo "**************************************" echo echo /bin/login fi # Remount the root filesystem in read−write mode echo "Remounting root device with read−write enabled." /sbin/mount −w −n −o remount / if [ $? −gt 0 ] ; then echo echo "Attempt to remount root device as read−write failed! This is going to" echo "cause serious problems... " echo echo "If you're using the UMSDOS filesystem, you **MUST** mount the root partition" echo "read−write! You can make sure the root filesystem is getting mounted " echo "read−write with the 'rw' flag to Loadlin:" echo echo "loadlin vmlinuz root=/dev/hda1 rw (replace /dev/hda1 with your root device)" echo echo "Normal bootdisks can be made to mount a system read−write with the rdev command:" echo echo "rdev −R /dev/fd0 0" echo echo "You can also get into your system by using a bootkernel disk with a command" echo "like this on the LILO prompt line: (change the root partition name as needed)" echo echo "LILO: mount root=/dev/hda1 rw" echo echo "Please press ENTER to continue, then reboot and use one of the above methods to" echo −n "get into your machine and start looking for the problem. " read junk; fi else echo "Testing filesystem status: read−write filesystem" if [ ! −d /DOS ]; then # no warn for UMSDOS (kind of a bad test, but...) cat << EOF *** ERROR: Root partition has already been mounted read−write. Cannot check! For filesystem checking to work properly, your system must initially mount the root partition as read only. Please modify your kernel with 'rdev' so that it does this. If you're booting with LILO, add a line: read−only to the Linux section in your /etc/lilo.conf and type 'lilo' to reinstall it. If you boot from a kernel on a floppy disk, put it in the drive and type: rdev −R /dev/fd0 1 If you boot from a bootkernel disk, or with Loadlin, you can add the 'ro' flag. This will fix the problem *AND* eliminate this annoying message. :^) EOF echo −n "Press ENTER to continue. " read junk; fi fi # remove /etc/mtab* so that mount will create it with a root entry /bin/rm −f /etc/mtab* /etc/nologin /var/run/utmp \ /etc/shutdownpid /var/run/*.pid # mount file systems in fstab (and create an entry for /) # but not NFS because TCP/IP is not yet configured 29

/sbin/mount −avt nonfs # Looks like we have to create this. cat /dev/null > /var/run/utmp # Configure the system clock. # This can be changed if your system keeps GMT. if [ −x /sbin/clock ]; then /sbin/clock −s fi # Setup the /etc/issue and /etc/motd to reflect the current kernel level: # THESE WIPE ANY CHANGES YOU MAKE TO /ETC/ISSUE AND /ETC/MOTD WITH EACH # BOOT. COMMENT THEM OUT IF YOU WANT TO MAKE CUSTOM VERSIONS. echo > /etc/issue echo Welcome to Linux `/bin/uname −a | /bin/cut −d\ −f3`. >> /etc/issue echo >> /etc/issue echo "`/bin/uname −a | /bin/cut −d\ −f1,3`." > /etc/motd # This loads any kernel modules that are needed. These might be required to # use your CD−ROM drive, bus mouse, ethernet card, or other optional hardware. if [ −x /etc/rc.d/rc.modules ]; then . /etc/rc.d/rc.modules fi # Initialize PCMCIA devices: if [ −x /etc/rc.d/rc.pcmcia ] ; then . /etc/rc.d/rc.pcmcia start fi # Run serial port setup script: # (CAREFUL! This can make some systems hang if the rc.serial script isn't # set up correctly. If this happens, you may have to edit the file from a # boot disk) # # . /etc/rc.d/rc.serial El motd se visualiza así: Linux 2.0.30 El scropy se visualiza así: Welcome to Linux 2.0.30. LILO Además de proporcionar la habilidad de pasar parámetros del hardware a su kernel en el momento del booteo, hechas por LILO, trabaja convenientemente con un sistema operativo múltiple. Usted está familiarizado con la sucesión del booteo en DOS. La primera cosa en la que pasa después del poder es que el BIOS toma control, inicializando la pantalla y teclado y probando la memoria principal. Hasta que esta sucesión se complete, el sistema no sabe nada sobre sus dispositivos, sistema operativo, o cómo usted lo quiere configurado. Después de este arreglo interior, empieza verificando su hardware; la fecha y tiempo, esquemas de CMOS (para poder reconocer el primer disco duro y su geometría). Entonces el sistema operativo empieza a cargar. Para cargar el sistema operativo, el sistema carga un 512−byte segmento de los datos guardado en la primera pista en el primer disco duro (master). Este 512−byte segmento contiene instrucciones para el resto del proceso de la booteo. Los primeros 446 bytes son reservados para el código del programa; los próximos 64−bytes contienen su tabla de partición; el último 2−bytes son un "número mágico" especial para verificar que estos 512−bytes son un sector de boot válido. De ahí proviene el nombre Master Boot Record. DOS le permite bootear de caulquiera de las cuatro particiones primarias − uno de los cuales es marcado activo, significando "bootable." Si algo le pasa a su disco duro, usted necesitará un disco blando bootable para cada uno y cada sistema operativo que usted haya instalado. (Usted pudo muy bien bootear Linux de un disco blando, así como usted hizo durante la instalación − pero ya que los discos blandos corren a 360 RPM y su disco duro a 5400 RPM o más, tomará bootear con un disco blando más mucho tiempo.) Usted también puede bootear Linux de un archivo batch en su partición de DOS incluso la imagen del kernel 30

usando loadlin. Esto trabaja bien, y resulta útil cuando usted no puede conseguir configurar LILO propiamente y no quiere bootear de un disco blando. Usted también puede pasar parámetros del hardware al kernel usando loadlin, simplemente tenga en cuenta que el formato usa espacios donde LILO usa una coma (,) sin los espacios. /etc/lilo.conf Usted tiene que incluir un párrafo para cada sistema operativo que usted quiere poder bootear a través de LILO. Esto es muy tedioso, y mejor dejelo a su setup program (o cualquier otro programa que usted está acostumbrando a instalar el sistema operativo de Linux desde el CD−ROM). Sin embargo, usted necesita poder leer el archivo terminado. # Linux bootable partition config begins image = /vmlinuz # Or /zImage depending on which kernel image you're using root = /dev/hda2 # Root partition for kernel read−only # Non−UMSDOS filesystem should be mounted read−only for checking label = linux # Or whatever you want to name it (15 characters max.) # Linux bootable partition config ends # Second Linux bootable partition config #image = /vmlinuz.old # this is where/how you include a working kernel # if you want to play around with the experimental # kernel and get into kernel hacking big−time # root = /dev/hda3 # read−only # label = linux # End 2nd Linux bootable partition config # DOS bootable partition config begins other = /dev/hda1 # the 'other' guys label = dos loader = /boot/chain.h table = /dev/hda # DOS bootable partition config ends Por favor note que si usted cambia cualquiera de los componentes de LILO, los modifica o tiene acceso de escritura (incluso a través de movimiento del archivo) a /etc/lilo.conf, /boot/boot.b, o /boot/map usted tendrá que reinstalar LILO ejecutando el Map Installer /sbin/lilo Siempre reboot después de instalar LILO. Recompilando el kernel Cuando usted reconstruye su kenel hay un objetivo que Maekfile nombró zlilo que mágica y automaticmente copia /vmlinuz a /vmlinuz.old y el nuevo kernel a /vmlinuz y reinstala LILO con la orden make zlilo.El truco es que usted tiene que haber ajustado /etc/lilo.conf de antemano. El nuevo y el viejo kernel dse listan inmediatamente. Quitando LILO Quitando a un manejador de booteo pueden ser una mala idea y no deben intentarse a menos que usted sepa lo que está haciendo − y si sabe recuperar si algo sale mal. Es una cosa muy simple devolverun DOS MBR. De la orden DOS fdisk/mbr Esto copiará los primeros 446−bytes en MBR y dejará las particiones intactas. Backups

31

Sus datos tienen valor. Le costarán tiempo y esfuerzo reconstruirlos, Incluso no pueden ser reconstruido a veces, por ejemplo, si se trata de los resultados de algunos experimentos. Puesto que es una inversión, usted debe protegerla y tomar medidas para evitar de perderla. Hay básicamente cuatro razones por las que usted puede ser que pierda datos: fallo de hardware, fallos de funcionamiento de software , acción humana, o desastres naturales. Aunque el hardware moderno tiende para ser absolutamente confiable, puede todavía fallar aparentemente espontáneamente. La pieza más crítica del hardware para salvar datos es el disco duro, que confía en los minúsculos campos magnéticos intactos en un mundo lleno de ruido electromágnetico. El software moderno incluso no tiende para ser confiable; un programa sólido como roca es una excepcion, no una regla. Los seres humanos no son fiables, pueden o cometer un error, o serán malévolos y destruirán datos a propósito. La naturaleza puede no ser malvada, pero puede causar estragos incluso al ser buena. Los backups son una manera de proteger la inversión en datos. Teniendo varias copias de los datos, no importa tanto si se destruye uno (el coste es solamente el de la restauración de los datos perdidos de el backup). Es importante hacer backups correctamente. Como todo que se relacione con el mundo físico, los backups fallarán más pronto o más adelante. Parte de hacer backups bien cerciorarse de que trabajan. puede ser que tenga una falla apenas cuando usted está haciendo el backup; si usted tiene solamente un medio de backup, pudo quedar destruido también, dejándole las cenizas del trabajo duro. O usted puede ser que note, al intentar restablecer, que se olvidó de guardar algo importante, como la base de datos del usuario en un sitio de 15000 usuarios. Lo mejor de todo: todos sus backups pudieron trabajar perfectamente, pero el ultimo tape drive sabido que leía la clase de cintas que usted utilizó era el ya no se usa y no se vende Seleccionar el medio de backup La decisión más importante con respecto a backups es la opción del medio de backup. Usted necesita considerar coste, confiabilidad, velocidad, disponibilidad, y utilidad. El coste es importante, puesto que usted debe preferiblemente tener almacenaje varias veces más de backup que el que usted necesitará para los datos. La confiabilidad es extremadamente importante, puesto que un backup malo puede hacer llorar un hombre. Un medio de backup debe poder llevar datos sin corrupción por años. La manera en que usted utiliza el medio afecta su confiabilidad como medio de backup. Un disco duro es típicamente muy confiable, pero como un medio de backup no es muy confiable, si está en el mismo ordenador que el disco está siendo salvaguardado. La velocidad no es generalmente muy importante, si los backups se pueden hacer sin supervision continua No importa si una backup toma dos horas, mientras no necesita ninguna supervisión. Por otra parte, si el backup no puede ser hecho cuando el ordenador esta ocupado la velocidad se convierte en un problema La disponibilidad es obviamente necesaria, puesto que usted no puede utilizar un medio de backup si no existe. Menos obvia es la necesidad del medio de estar disponible en el futuro, y en ordenadores distintos .En caso contrario usted no podra restablecer sus backups después de un desastre. La utilidad es un factor grande en cómo los backups se hacen. Cuanto más fácil es hacer los backups, mejor. Un medio de backup no debe ser duro de utilizar. Las alternativas típicas son discos blandos y cintas. Los discos blandos son muy baratos, bastante confiables, no muy rápidos, muy disponibles, pero no muy útiles para las cantidades grandes de datos. Las cintas son de costo medio, bastante confiables, bastante rápidas, absolutamente disponibles, y, dependiendo de la talla de la 32

cinta, absolutamente cómodas. Hay otras alternativas. No son generalmente muy buenas en disponibilidad . Seleccionar la herramienta de backup Hay muchas herramientas que se pueden utilizar para hacer backups. Las herramientas tradicionales de UNIX usadas para los backups son tar , cpio , y dump . Además, hay un número grande de paquetes complementarios (freeware y comerciales) que pueden ser utilizados. La elección del medio de backup puede afectar sobre la elección de la herramienta. tar y cpio son similares, y equivalentes desde un punto de vista de backup. Ambos son capaces de salvar archivos en las cintas, y de extraer archivos de ellas. Ambos son capaces de usar casi cualquier medio, desde que los manejadores de dispositivos del kernel se encargan de lidiar con los dispositivos a nivel bajo todos ellos(los dispositivos) tienden a parecerse a los programas del nivel de usuario.En algunas versiones de UNIX tar y cpio pueden tener problemas con los archivos inusuales (links simbólicos, archivos de dispositivo, archivos con pathnames muy largos, etcétera), pero las versiones de Linux deben manejar todos los archivos correctamente. dump es diferente en que lee el filesystem directamente y no vía el filesystem. Esta hecho específicamente para los backups; tar y cpio están realmente para guardar archivos, aunque trabajan para los backups también. La lectura directa del filesystem tiene algunas ventajas. Permite guardar sin afectar fecha/hora; para tar y cpio , usted tendría que montar primero el filesystem para solo lectura . La lectura del filesystem es más eficaz, si todo necesita ser guardado, puesto que puede ser hecha con mucho menos movimiento de la pista del disco. La desventaja principal es que hace el programa de backup específico a un tipo de filesystem; el programa dump de Linux entiende el filesystem ext2 solamente. dump también utiliza directamente los niveles de backup (discutidos despues); con tar y cpio esto tiene que ser puesto en ejecución con otras herramientas. Backups simples Un esquema de backup simple es guardar todo de una vez,y despues guarda rtodo que se ha modificado desde el backup anterior. El primer backup se llama full backup , las subsecuentes se llaman incremental backups . Un backup completo es a menudo más laborioso que los incrementales, puesto que hay mucho mas datos a escribir a la cinta y un backup completo no podria caber sobre una sola cinta (o el disco blando). El restablecer de backups incrementales puede ser muchas veces más trabajoso que de uno completo. La restauración puede ser optimizada de modo que usted guarde siempre todo desde el backup completo anterior; de esta manera, hacer backups es más trabajoso, pero nunca debe haber necesidad de restablecer más que un backup completo y un backup incremental. Fabricación de backups con tar Una backup completa se puede hacer fácilmente con tar : # tar −− create −− file / dev/ftape / usr/src tar: removing leading / from absolute path names in the archive 33

# El ejemplo arriba utiliza la versión tar de GNU y de su opcion de nombres largos. La versión tradicional tar entiende solamente opciones de caracteres solos. La versión de GNU puede también manejar los backups que no caben en una cinta o floppy, y también los paths muy largos; no todas las versiones tradicionales pueden hacer estas cosas. (Linux utiliza solamente tar de GNU .) Si su backup no cabe en una cinta, usted necesita utilizar la opcion − multi−volume ( − M ) : # tar − cMf / dev/fd0H1440 / usr/src tar: removing leading / from absolute path names in the archive Prepare volume #2 for / dev/fd0H1440 del volumen #2 and hit return # Observe que usted debe formatear los discos blandos antes de comienzar el backup, o bien utilizar otro Window o terminal virtual y hacerlo cuando tar pide un disco nuevo. Después de que usted haya hecho un backup, usted debe controlar que este bien, usar la opcion −− compare ( −d) # tar −− compare −− verbose − f / dev/ftape usr/src / usr/src/linux usr/src/linux−1.2.10−includes / .... # El no controlar el estado un backup significa que usted no notará que sus backups no están trabajando hasta después que se han perdido los datos originales. Una backup incremental se puede hacer con usar la opcon tar −− newer ( − N ) # tar −− create −− newer ' 8 sep 1995 ' −−file / dev/ftape / usr/src −− verbose tar: removing leading / from absolute path names in the archive usr/src / usr/src/linux−1.2.10−includes /

34

usr/src/linux−1.2.10−includes/include / usr/src/linux−1.2.10−includes/include/linux / usr/src/linux−1.2.10−includes/include/linux/modules / usr/src/linux−1.2.10−includes/include/asm−generic / usr/src/linux−1.2.10−includes/include/asm−i386 / usr/src/linux−1.2.10−includes/include/asm−mips / usr/src/linux−1.2.10−includes/include/asm−alpha / usr/src/linux−1.2.10−includes/include/asm−m68k / usr/src/linux−1.2.10−includes/include/asm−sparc / usr/src/patch−1.2.11.gz # Desafortunadamente, tar no puede notar cuando la información del inode de un fichero ha cambiado, por ejemplo, que se cambien los bits de permiso, o cuando se ha cambiado su nombre. Esto se puede corregir usando find y comparando el estado actual del filesystem con las listas de archivos que se han guardado previamente. Los scripts y los programas para hacer esto se pueden encontrar en sitios del ftp de Linux. Restablecer archivos con tar la opción − extract ( − x ) para tar extrae archivos: # tar −− extract −same−permissions −− verbose −−file / dev/fd0H1440 usr/src / usr/src/linux usr/src/linux−1.2.10−includes / usr/src/linux−1.2.10−includes/include / usr/src/linux−1.2.10−includes/include/linux / usr/src/linux−1.2.10−includes/include/linux/hdreg.h usr/src/linux−1.2.10−includes/include/linux/kernel.h... # También puede extraer solamente archivos o directorios específicos (que incluye todos sus archivos y 35

subdirectorios) nombrando la línea de comando: # tar xpvf / dev/fd0H1440 usr/src/linux−1.2.10−includes/include/linux/hdreg.h dtar usr/src/linux−1.2.10−includes/include/linux/hdreg.h # Utilice la opcion −− list ( − t ) si desea ver qué archivos están en un volumen de backup: # tar −− list − file / dev/fd0H1440 usr/src / usr/src/linux usr/src/linux−1.2.10−includes / usr/src/linux−1.2.10−includes/include / usr/src/linux−1.2.10−includes/include/linux / usr/src/linux−1.2.10−includes/include/linux/hdreg.h usr/src/linux−1.2.10−includes/include/linux/kernel.h... # Observe que tar lee siempre el volumen de backup secuencialmente, así que para los volúmenes grandes es algo lento. No es posible, sin embargo, utilizar técnicas de de acceso aleatorio de base de datos al usar un bobinador o un otro medio secuencial. tar no maneja archivos borrados correctamente. Si usted necesita restablecer un filesystem de una backup completa e incremental, y usted ha suprimido un fichero entre las dos backups, existirá otra vez después de que usted haya hecho el restore. Esto puede ser un problema grande, si el fichero tiene datos sensibles que no deban estar disponibles. Backups de niveles múltiples El método de backup simple tratado en la sección anterior es a menudo adecuado para el uso personal . Para un uso más pesado, los backups de niveles múltiples son más apropiadas. El método simple tiene dos niveles de backup: backups completas e incrementales. Esto se puede generalizar a cualquier número de niveles. Una backup completa sería el nivel 0, y los diversos niveles de backups incrementales nivelan 1, 2, 3, el etc. En cada nivel de backup incremental usted graba todo que ha cambiado desde el backup anterior. El propósito para hacer esto es que permite una historia de backup larga y barata. Cuadro . Un horario de backup de niveles múltiples de la muestra.

36

Los niveles de backup se pueden también utilizar para guardar tiempo de la restauración del filesystem a un mínimo. Si usted tiene muchas backups incrementales con monotonia en el crecimiento de niveles, necesita restablecer todos si usted necesita reconstruir el filesystem entero. En lugar puede utilizar los números de niveles que no son monótonos, y guarda el número de backups para restablecer. Backups comprimidos Los backups toman mucho espacio, que puede costar mucho dinero.Para reducir el espacio usado, los backups puede ser comprimidos. Hay varias maneras de hacer esto. Algunos programas tienen soporte para la compresión ; por ejemplo la opción −− gzip ( − z ) para tar de GNU transmite el backup al programa gzip, antes de la escritura al medio de backup. Desafortunadamente, los backups comprimidos pueden causar problemas. debido a la naturaleza de cómo la compresión trabaja, si un solo dígito binario es incorrecto, todo el resto de los datos comprimidos serán inutilizables. Algunos programas de backup tienen correccion de errores incluida, pero ningún método puede manejar una gran cantidad de errores. Esto significa que si se comprime el backup de la manera que al tar de GNU la hace, con toda la salida entera comprimida como unidad, solo con un error todo el resto de el backup queda perdido Una manera alternativa es comprimir cada fichero por separado. Esto todavía significa que si un fichero está perdido,el resto de los archivos quedan ilesos. El fichero perdido habría sido corrompido de todos modos, así que esta situación no es mucho peor que no usando la compresión . El programa e afio (una variante cpio ) puede hacer esto. La compresión toma una cierto tiempo,lo que puede hacer al programa de backup incapaz escribir los datos rápidamente en una cinta. Esto puede ser evitado poniendo la salida en un buffer , pero incluso ése puede no trabajar bien. Esto debe solamente ser un problema en los ordenadores lentos.

Índice

A Índice 1, 1 Índice 1, 1 Índice 1, 1 Índice 2, 2 Índice 3, 3 37

Índice 1, 1 Índice 1, 1 B Índice 1, 1 Índice 1, 1 Índice 1, 1 Índice 2, 2 C Índice 1, 1 Índice 1, 1 Índice 1, 1 Índice 2, 2 Índice 1, 1 Índice 1, 1 Índice 1, 1 D Índice 1, 1 Índice 1, 1 Índice 1, 1 Índice 1, 1 E Índice 1, 1 Índice 1, 1 Índice 1, 1 Índice 2, 2 Índice 1, 1

38

Índice 1, 1 Índice 1, 1 G Índice 1, 1 Índice 1, 1 Índice 1, 1 Índice 1, 1 Índice 1, 1 Índice 1, 1 H Índice 1, 1 Índice 1, 1 Índice 1, 1 Índice 1, 1 Índice 2, 2 Índice 1, 1 Índice 1, 1 Índice 1, 1 Índice 1, 1 Índice 1, 1 Índice 1, 1 K Índice 1, 1 L Índice 1, 1 Índice 2, 2

39

Índice 1, 1 Índice 1, 1 Índice 2, 2 Índice 1, 1 Índice 1, 1 Índice 1, 1 Índice 1, 1 Índice 1, 1 M Índice 1, 1 Índice 1, 1 Índice 1, 1 Índice 2, 2 N Índice 1, 1 Índice 1, 1 Índice 1, 1 Índice 2, 2 Índice 1, 1 Índice 1, 1 Índice 1, 1 R Índice 1, 1 Índice 1, 1 S Índice 1, 1

40

Índice 1, 1 Índice 1, 1 Índice 2, 2 Índice 1, 1 Índice 1, 1 Índice 1, 1 T Índice 1, 1 Índice 1, 1 Índice 1, 1 Índice 1, 1 Índice 2, 2 W Índice 1, 1 Índice 1, 1 Índice 1, 1 Índice 2, 2 Índice 1, 1 Índice 1, 1 Índice 1, 1 Índice

1 [email protected]. 2.1 En estos días (2000) esta disponible la version 2.2.7 del Kernel 6 En Linux, un bloque son 1024 bytes. 7 De nuevo, algunas distribuciones de Linux preparan el área de intercambio automáticamente, o bien medionte un menú de instalación. 41

8 Este tamaño es dado por fdisk, utilizando la opcion p. Un bloque en Linux son 1024 bytes. Sistemas operativos 2 ii LInux linux 1 Sistemas operativos 2 Linux Sistemas operativos 2 2 Sistemas operativos 2 6 Sistemas operativos 2 45 46

42

Get in touch

Social

© Copyright 2013 - 2024 MYDOKUMENT.COM - All rights reserved.