puede ser fácil (si entendemos de qué se trata)
Fernando J. Pisani
fjpisani@intercol.org.ar
Hola
Dos son los temas más problemáticos para
el que intenta una instalación de GNU/Linux: el proceso de particionado y la
configuración del entorno gráfico.
En la actualidad ambos procesos se han simplificado y automatizado bastante,
por lo que una persona que haya instalado Windows no tendrá mayores inconvenientes
en hacerlo con Linux.
De los dos puntos, el que presenta mayor dificultad es el primero, pero más
que nada porque estamos en presencia de un modelo distinto de cómo es el sistema,
aunque el usuario común, acostumbrado al entorno gráfico, no note mayor diferencias,
pero estas existen y es muy bueno conocer cómo funcionan las cosas
Seguramente esta ponencia puede ser algo
ardua para quienes no vieron nunca Linux, pero espero que no lo sea tanto. Y
no es por GNU/Linux, sino porque hay ciertos temas que son algo abstractos.
Por ejemplo si me pusiera ahora a hablar de la estructura de directorios de
DOS/Windows, y me pusiera a explicar los distintos subdirectorios y otros temas,
seguramente podría asustar a una persona que si bien usa Windows todo los días,
no sabe bien qué ocurre adentro.
Pero bueno, GNU/Linux hoy no es para los que quieren limitarse a seguir los
dictados de la moda en la apretada de botoncitos, ni para los medrosos :-)
Así que espero que me tengan un poquito
de paciencia y si no entienden algo, sigan leyendo...
No se necesita saber lo que vamos a ver para usar Linux.
Aviso: la ponencia está divida en dos,
en parte para mejor envío, en parte para separar los temas y que si esta es
dura, la otra pueda resultar menos dura. Pueden leerse independientemente, pero
es mejor seguir el orden
Ingresando
Cuando ustedes ingresan al sistema, luego de prender la computadora, hay que poner el nombre del usuario y la clave. Si no no se puede ingresar. GNU/Linux es un sistema seguro.
Bajo el DOS/ Windows los diversos soportes de la información (discos rígidos, diskettes, CD) se identifican como unidades (A:, C:, D:). Además existen otros periféricos -impresoras, modem, joystick- que se accesan mediante puertos (lpt1, lpt2, com1, com2). Tenemos archivos, directorios. Y los archivos tienen un nombre, y se caracterizan por un conjunto de datos (lugar donde empiezan, fecha de modificación, algunos atributos -de protección de lectura, escritura, sistema y oculto), etc.
En Linux ese desordenado panorama es muy distinto, en cierta manera parece más complejo pero es más simple, más poderoso y eficiente.
Por empezar, todo en Linux son archivos, hasta los propios subdirectorios son archivos. Todo lo que mencionamos antes (hd, modem, mouse, disquetera, impresoras, todo) se van a referenciar en una estructura de subdirectorios y archivos. No hay C: no hay A: todo lo vamos a ver como si fueran archivos, en una estructura de directorios que arranca de una única raíz, representada por una /
(en Unix el símbolo separador de subdirectorios es la / común, no la invertida como en el DOS)
(En DOS/Windows cada unidad tiene su propia raíz, la del A:\, la del C:\, etc)
Esto que parece confuso, y es difícil de entender, no lo es si nos desestructuramos un poco de lo que veníamos conociendo y repensamos la idea "todos son archivos"".
Si por ejemplo si queremos copiar algo en la disquetera, no encontraremos el A: por ninguna parte. Para poder copiar algo en ella por empezar deberemos crear un subdirectorio donde referenciarla y luego montar el dispositivo en él. Por ejemplo donde vamos a montar la disquetera se llama /floppy y va a aparecer como un subdirectorio más, por lo que si queremos ver su contenido haremos un ls (equivalente a dir, o con el explorador desde el entorno gráfico a ) /floppy o si queremos copiar algo a la disquetera mandaremos ese archivo a /floppy. Y si quiero imprimir, o mandar algo por un modem el procedimiento será similar, todo lo vamos a ver como archivos, en una cierta estructura de directorios.
Cuando esto se entiende, se va a ver qué buena idea tuvieron en inventar los de Unix las cosas así, cómo se simplifica el trabajo de redes, la seguridad, la facilidad del uso, todo, porque todos los recursos, no importa qué son ni dónde están, en una red vecina tal vez, todo se presenta de igual manera como un archivo, en algún subdirectorio. Y todo lo vemos con un mandato simple como ls (el dir de Unix) con con el explorador de archivos.
Como este es uno de los temas más difíciles de entender empezamos por aquí. Porque una buena base en esta parte permite posicionarse dentro de todo ese lío de cientos de directorios y archivos.
Cuando ustedes en DOS hacen un dir, o cuando miran las cosas desde el Explorador de Windows, ¿qué ven?: subdirectorios (hoy llamados carpetas) y archivos.
Aclaración: cuando nos refiramos a directorios, subdirectorios, carpetas, los usamos como sinónimos y en el sentido que lo conocen ustedes: una "caja" virtual, un "archivador" creada para guardar cosas en él (o ella) sin que se mezclen con otras cosas que ya están en el hd (o en el CD o en el disquete).
Bien: Acá viene lo importante. Cuando ustedes recorren ese árbol de subdirectorios, cuando entran (abren) carpetas y miran sus contenidos, ¿qué ven?: archivos y subdirectorios.
En Linux es igual.
Pero, y aquí un punto fundamental y absolutamente distintivo: ustedes no ven con el dir o con el Explorador al modem, o la impresora como si fueran archivos. En Linux sí, se ven igual que cualquier archivo. Tampoco ven con el dir o el Explorador las particiones que pueda tener el disco rígido (cuando más podemos ver un C:, un D;), pero en Linux sí (o podemos no verlas si no la hemos montado -presten atención a esta palabra, montar, pero no pregunten ahora que es, ya volveremos).
Ahora bien, supongamos que en el DOS o en el Windows ejecutamos cualquier aplicación: el Word, el Corel, el Autocad1.
Si hacemos un dir o miramos por el Explorador no vamos a ver en esa estructura de directorios y archivos que estamos ejecutando tal o cual aplicación: en Linux sí. Todo en Linux lo vamos a ver como archivos, todo en Linux son archivos. Diseñar las cosas así es de una simplicidad fabulosa y fabuloso todo lo que podemos hacer gracias a que la pensaron así. Ya lo van a ver. Ahora sigamos analizando la estructura de archivos de Linux.
Por ej. supongamos que he ingresado al
sistema con el nombre sherlock, reproduzcamos lo que se ve en nuestro subdirectorio
con el mandato ls -l:
drwxr-sr-x 2 sherlock sherlock 1024 jun 19 13:41 .
drwxrwsr-x 137 root staff 3072 jun 18 20:18 ..
-rw-r--r-- 1 sherlock sherlock 68 jun 18 20:18 .bash_profile
-rw-r--r-- 1 sherlock sherlock 55 jun 18 20:18 .bashrc
-rw-r------ 1 root root 15662 mar 21 18:12 prueba
-rwx--x--- 1 root root 5662 mar 21 21:14 respaldo
Si miran bien ese listado, verán que en él, en el lado izquierdo, hay una seguidillas de letras, a veces intercaladas o precedidas por guiones (-)
Unix/Linux tiene un sistema muy simple y poderoso de establecer la seguridad de los archivos (hay varias otras cuestiones de la seguridad, pero aquí veremos sólo este aspecto)
Yo estuve ese día 21 haciendo una prueba con un procesador de texto y como no estaba muy imaginativo a ese archivo lo llamé prueba. Aislemos esa frase e interpretemos la información que me está dando
-rw-r------ 1 root root 15662 mar 21 18:12 prueba
De derecha a izquierda: Se llama prueba, fue creada a las 18:12 del 21 de marzo, (si no tiene año es que fue creado este año, si fuera del año pasado u otro figuraría el año) tiene un largo de 15662. Hasta aquí es obvio, ya lo deberían saber por la similitud del DOS/Windows (aunque en el DOS está de izquierda a derecha). Pero hay otra información en esa línea.
Empecemos ahora desde la izquierda: el guión - nos indica que se trata de un archivo común, no de un directorio u otra cosa. (Si fuera un directorio habría una d). Salteando las letras, luego nos dice que el propietario (owner) de ese archivo es el root, (de allí puedo deducir que es cuando hice ese texto estaba usando el procesador de texto como superusuario, si lo hubiera estado haciendo como fjpisani aparecería este nombre como owner). Ahora interpretemos esas rw: Dice que como root puedo leer, modificar y borrar ese archivo. También señala que el archivo pertenece al grupo de trabajo (group) del root (donde estarían los usuarios que el root permite que formen parte de su grupo). Ellos pueden solamente leerlo. Finalmente la información nos dice que el resto de los usuarios del sistema no pueden leerlo, ni modificarlo ni borrarlo.
Antes de pasar a ver mejor esto, analicemos otra línea.
Fíjense en
-rwx--x--- 1 root root 5662 mar 21 21:14 respaldo
Allí está diciendo que ese archivo es del root, que él puede leerlo, modificarlo/borrarlo, y ejecutarlo. En cambio los miembros del grupo del root puede sólo ejecutarlo (sin leerlo ni modificarlo/borrarlo, y el resto de los usuarios no pueden hacer nada con él.
Finalicemos la lectura con otra línea
drwxr-sr-x 2 sherlock sherlock 1024 jun 19 13:41 .
Allí vemos que el primer carácter, en
vez de ser un - es una letra d lo que significa que no es un archivo
común sino un directorio (o subdirectorio, o carpeta, nombres que indican lo
mismo). También notemos que por allí hay una s, pero por ahora dejémoslo
sin ver de qué se trata o qué significa.
¿Qué tenemos entonces?. Todo
archivo (incluyendo también los directorios) tienen atributos, que se representan
en tres trios: el primer trio (exceptuando el primer carácter antes del
trio, que puede ser un - o una d u otra letra que veremos más adelante), identifican
los derechos del propietario del archivo, los tres siguientes representan los
derechos del grupo y finalmente los tres últimos son los derechos de todos los
demás, en el siguiente orden: rwx
La r (read) significa que se puede leer, la ausencia de ella representa que no se puede leer. La w (write) significa que se puede escribir (y borrar), si no está significa que no se puede escribir ni borrar, y finalmente la x significa que se puede ejecutar (obviamente si es el contenido es ejecutable). Si no tiene la x no se puede ejecutar aunque tenga un contenido ejecutable. (Recuerden que en la anterior clase les dije que en Unix/Linux no existen las extensiones tal cual las conocemos en el DOS. Aquí un ejecutable es el programa que termina en .com, .exe o .bat, en Unix/Linux es ejecutable si tiene el atributo de ejecución. Veremos que esto nos da la oportunidad de controlar qué ejecutables puede ejecutar alguien y quién no.
Algo parecido ocurre con los subdirectorios, pero con algunas pequeñas diferencias.
Por ejemplo la x. En un archivo la x
significa que es ejecutable, su ausencia que no lo es. En un directorio la r
permite que leamos lo que hay en él, la w que podamos crear nuevos archivos
o borrar los existentes y la x que es posible cambiar a ese subdirectorio, meternos
en él diríamos, con la orden cd. Sin esa x no podemos hacer cd a ese subdirectorio.
Esto nos lleva a reflexionar sobre varios puntos. Linux es un sistema operativo multiusuario, es decir que pueden acceder a él varios usuarios, incluso simultáneamente. Los que trabajamos en las escuelas sabemos que si nuestros alumnos hacen algún documento o proyecto, no es garantía que en la próxima clase esté, alguien puede haberlos borrado. Y ni hablar de la privacidad. Cualquiera puede leer lo que escribimos y dejamos grabado en la computadora.
En Unix/Linux no. Cada uno es dueño de
sus archivos (y de sus propios subdirectorios) y puede otorgar a los demás los
derechos que desee (o negárselos), y nadie puede leer, modificar o borrar un
archivo si lo deseamos (excepto el Superusuario, el root, que puede hacer todo
eso con cualquier archivo, por lo que si queremos un nivel más elevado de seguridad
tenemos que recurrir a otros ingredientes que Linux también presenta)
El otro punto que es interesante destacar es que incorporamos algo nuevo: por un lado existe una figura que se llama owner (dueño, propietario) y algunas veces user. Por otro lado hay otra figura que se llama grupo (group) y finalmente están los otros, todo el resto.
Si yo me logueo, ejecuto un editor de texto y escribo una carta y la grabo, esa carta automáticamente tendrá como owner a mi nombre de usuario (el nombre con que ingresé al sistema) o mejor dicho el nombre que tenía al momento de ejecutar ese procesador de texto. Y como group tendrá al grupo de usuarios que tengo definido (ya veremos dónde), en particular será mi grupo.
Ahora bien, si quiero usar el editor de texto que se llama joe (hay muchos editores de texto en GNU/Linux ), y que todos los usuarios lo pueden usar, si miran adonde está ese archivo, van a ver que tiene en la parte de "otros" una x, es decir, permiso de ejecución.
-rwxr-xr-x 5 root root 174020 abr 19 1998 joe
Si al root se le ocurre borrar esa x y yo -como usuario común- llamo a joe, el sistema me dirá en inglés "permiso denegado".
(joe está guardado en /usr/bin, ya veremos por qué)
Yo puedo poner en mi grupo a otros usuarios u con ellos darle permisos. Pongamos que tenemos un usuario llamado sherlock. Supongamos que incorporamos a al grupo de sherlock a otros usuarios, por ej.
fjpisani, fenix, juan. ¿Para qué sirve esto? Si creamos como sherlock una carta y la llamamos nota y miramos sus derechos con la orden ls -l y vemos que allí dice:
-rw-rw----- 1 sherlock sherlock 15662 mar 21 18:12 nota
Está diciendo que si me logeo como sherlock puede leer y modificar esa carta. Pero también podrían modificar esta carta ¿quiénes?: los integrantes de ese grupo: fjpisani, fenix y juan.
Yo podría haber puesto que esa carta tuviera estos atributos:
-rw-rw----- 1 sherlock clase1 15662 mar 21 18:12 nota
y en el archivo group defino un grupo que se llama clase1 y allí pongo la lista de todos ustedes (suponiendo que ustedes tuvieran cuenta en mi computadora), bueno, todos ustedes podrían leerla, modificarla y borrarla. Si suprimo la w del segundo trio sólo la podrían leer, por ej.:
-rw-r------ 1 sherlock clase1 15662 mar 21 18:12 nota
¿Se entiende?
Ahora miren lo sencillo que es definir
el uso/no uso de cualquier periférico. Supongamos que tenemos una impresora
láser color conectada a la red, y el costo de la impresión es muy cara. ¿Recuerdan
que dijimos que todo en Unix/Linux son archivos?: también lo es una impresora.
Si a esa impresora le ponemos un dueño y un grupo, y le damos permiso de la
misma manera que lo vimos, podemos regular perfectamente quién la puede usar
(también hay otras maneras de definir esto, Linux permite muchos caminos para
arribar a un fin).
Pongamos otro ejemplo, donde vamos a mencionar nuevamente la palabra montar, que la vamos a ver sobre el final de este escrito. Supongamos que a la disquetera que tengo en mi computadora quiero referenciarla con el nombre TresyMedio, porque tengo ganas. Bien, creo un subdirectorio que se llame así, con la orden
mkdir /TresyMedio
(la / inicial es para que se cree colgado directamente desde el raíz, si no pusiera esa barra, se crearía donde estoy metido en este momento, en este sentido funciona igual que el DOS/Windows (este último con la barra invertida, por supuesto).
Si hacemos un ls del raíz veremos que está allí. Si hacemos un cd /TresyMedio entraremos a ese subdirectorio (igual que con el DOS2), hacemos un dir y veremos que no hay nada. Salimos con el cd .. (igual que con el DOS)
Luego damos la orden de montar en ese subdirectorio un disquete en la disquetera que en el DOS llamamos A: y le damos la orden
mount /dev/fd0 /TresyMedio
(de nuevo hablo de montar, ya llegaremos)
Veremos que se prende la lucecita de la disquetera y si luego hacemos un cd /TresyMedio y hacemos un ls veremos todo el contenido del disquete.
¿Qué es ese /dev/fd0?
/dev es un directorio, donde generalmente se agrupan todos los "devices", todos los dispositivos: discos rígidos, modem, disquetera, cdrom, impresoras, mouse, todo.
Si ustedes hicieran un ls de /dev verían
una muy larga lista de nombres cortos y raros hasta que entiendan su lógica.
El fd0 es un archivo que está dentro de ese directorio que sería la disquetera A. La B: sería fd1 (floppy disk cero, uno).
El primer disco rígido, es decir, el maestro de la primer IDE se va a llamar /dev/hda. La primera partición de ese disco rígido se llamará hda1, la segunda hda2, etc ¿Recuerdan que dijimos que todos eran archivos en Linux?. Bien. Fíjense que fácil es determinar quién puede usar la disquetera A: (que no se llama A:).
El archivo /dev/fd0 tiene permisos de owner, group y otros que cualquier otro archivo, si yo digo que /dev/fd0 es del root y root y que tiene los permisos -rwx-w-r-x estoy diciendo que el root puede leer y escribir sobre el disquete que se monte, que el grupo del root sólo puede escribir sobre el disquete, pero no puede leer el contenido, y todos los demás, pueden sólo leer pero no pueden escribir (o borrar, el borrar no lo menciono pero cuando hablamos de escribir está incluido el borrar)
Y si al final, en el tercer terceto pongo
--- , nadie de los demás puede ni leer ni escribir en esa disquetera ¿vieron
que fácil es administrar un sistema así y el poder de esa sencillez?
¿Cómo le damos los permisos a los archivos?. Con un comando que se llama chmod (ch de change y mod de modo, cambia el modo). Ahora no nos detendremos en ese comando porque en este momento lo importante es que sepan que existe, y eventualmente consultan el manual, pero es muy simple de usar. Y más simple todavía de cambiar de modo con el mc (midnight commander, comandante de la media noche), o con algún utilitario de x-windows.
También podemos cambiar quién es el dueño de un archivo, con la orden chown, (cambia owner), y del grupo ¿cómo creen que será la orden?: chgrp
Por supuesto que sólo el dueño de un archivo (o el root) puede hacer los cambios.
Nota: el root es el nombre del administradore del sistema, el superusuario, puede hacer todo y tienen permiso para todo.
Por ej. si como root hacemos un archivo
que lo llamamos algo. Bien. Trabajamos en él, y luego entramos en el
sistema como sherlock y queremos leerlo: no podremos. Como en realidad no es
un archivo para el sistema, es una carta que estoy haciendo yo, sherlock, y
me gustaría que fuera mía, como corresponde (porque por error la hice desde
el root), necesitamos cambiar el dueño de ese archivo y que pasara del root
a sherlock..
Primero vemos que ese archivo está dentro del subdirectorio del root (/root), pues cuando entré al sistema automáticamente nos posicionamos dentro de subdirectorio del que entra. Por lo que primero debería pasarlo al subdirectorio de sherlock, ya que como sherlock, aunque el archivo sea de sherlock, no podríamos hacer nada con él al no poder entrar al subdirectorio del root. (Les recuerdo que no se puede entrar al subdirectorio de otro usuario, salvo que expresamente lo indiquemos, que no es la conducta por defecto)
Como root3 damos la orden
mv /root/algo /home/sherlock/algo
y el archivo ya ha pasado de un lugar a otro
(mover el archivo algo que está en root al subdirectorio /home/sherlock y llamarlo algo)(con el MidNight Commander, que es parecido al Comandante Norton, lo hacemos desde el menú, de una pantalla dividida a otra, y desde el entorno gráfico: click sobre el archivo arrastrar y soltar, por ej, pero en esta parte preferimos estar trabajando con la línea de comandos)
Ahora el archivo está dentro del subdirectorio sherlock, pero él no tiene los derechos de dueño todavía.
Luego escribimos (siempre como root, que es el dueño en este caso, de archivo)
chown sherlock /home/sherlock/algo
y ese archivo ya es de sherlock (escribimos todo el recorrido por las dudas, si estamos adentro del mismo subdirectorio subdirectorio tal vez no hubiéramos tenido necesidad de hacerlo y sólo alcanzaba
chown sherlock algo
De paso vemos que hay una orden para mover, mv (en Unix se ha tendido a los nombre cortos de los comandos, en general suprimiendo vocales y consonantes poco significativas) para ahorrar tipeo, más que esto viene de la época de las comunicaciones muy lentas, e incluso de no ver lo que se hacía.
Si lo hubiéramos querido copiar en vez de copy del DOS ¿cuál creen que es la orden en Unix?
Acertaron: cp (y ¿borrar, remover? rm)
Naturalmente desde el entorno gráfico ya saben como hacerlo, es igual que en la mac, y que en msw
Si llegasen a hacer un ls verían
que ese archivo entonces ha dejado de ser del root y es ahora de sherlock, pero
el grupo sigue siendo del root, porque no hemos cambiado el grupo
Resumamos algunas cosas: una idea central a tener en cuenta es que en Unix/Linux todos son archivos. Como para ir pensándolo
Cada archivo que se crea nace con un dueño y un grupo (generalmente será el grupo del dueño)
Y los archivos tienen (o no tienen) atributos (rwx) en tres trios, correspondiendo cada uno a dueño, grupo y los demás.Retomemos la frase
""Luego damos la orden de montar en ese subdirectorio un disquete en la disquetera que en el DOS llamamos A: y le damos la orden mount /dev/fd0 /TresyMedio""
Ocurre lo siguiente. Todos los sistemas operativos, lo digan explícitamente o no, tienen su propio sistema de archivos. Los datos en el disco rígido o en el disquete no se guardan como en un long-play o en un cassette de música, uno detrás de otro. Si fuera así, sería muy engorroso modificar un archivo. Piensen qué pasaría si en un cassette de música quisieran cambiar una canción, agregarle medio minuto, por ej. Obviamente se superpondría con la que sigue, borrándole el principio. Para que no pasara eso habría que levantar todas las siguientes canciones (grabándolas en otro cassette) y regrabarlas luego de terminar de editar la primera (sea más corta o más larga).
Para evitar eso con la información que se graba en los HD, disquetes, etc. se inventaron varios procedimientos, muchos de ellos tienen algo en común, algo de azar, porque los datos se guardan azarosamente (incluso los pedazos de un mismo archivo pueden estar muy alejados unos de otros, en diversos sectores y caras del hd o disquete. ¿Y cómo se encuentran?: Mediante un sistema localización de los archivos, que buscan las cosas de x maneras (por ej el DOS se lee un lugar del sector del disco donde está el dir, allí se busca el nombre del archivo, allí hay un número que da en qué lugar de la FAT (FILE ALLOCATION TABLE, tabla de localización de archivos), y allí en la FAT, mediante un sistema en apariencia complejo, pero en realidad simple, una tabla, se referencian los distintos lugares donde está el archivo, se juntan los pedazos hasta encontrar un EOF (un fin de archivo) o se calcula por el largo que figura en el lugar del dir, y finalmente aparece en nuestra pantalla todo completo (o lo copiamos a x lugar sin problemas), sin que nos hubiéramos dado cuenta de lo que pasó.
Es decir, en todo sistema computacional tenemos por un lado un medio físico, por ej el disco rígido, que luego debe ser particionado de alguna forma (todo el disco en una partición o en dos, tres, etc.), con especificaciones de qué tipo de partición estamos haciendo (primarias, lógicas, etc.), un cierto formato (no es el mismo formato en una PC IBM, que en una Mac, que en una Solaris, por ej), un cierto sistema de archivos (basado en la FAT en DOS, VFAT en Windows 95, etc.).
¿Estamos hasta aquí?: una cosa es el medio físico y otra el sistema de archivos.
Cuando queremos acceder a los datos en un disquete o en un HD o en un CD-ROM, primero el sistema tiene que reconocer si el soporte/medio existe y puede ser accedido, luego debe montar el sistema de archivos que tiene ese medio físico y finalmente pasa a leer los datos (o a grabar, etc.).
Pero ocurre que bajo el DOS / Windows ese proceso de montar se hace automáticamente. No nos damos cuenta que ocurre. En Unix/Linux el proceso está separado. Si metemos un disquete en la disquetera Unix/Linux no nos va a dar bolilla, no lo va a leer. Primero tendremos que montarlo con la orden mount como en la cita puesta al principio.
Y ATENCIÓN: Eso no es todo.
Supongamos que lo montemos, grabamos
cosas en él, luego, confiadamente, sacamos el disquete, SUPONIENDO QUE LOS DATOS
YA ESTÁN GRABADOS, pero no, en una de esas los datos no están grabados. Aunque
hayamos dado la orden de copiar y el mandato se ha completado con éxito, en
una de esas los datos no se grabaron en el disquete.
NOTICIA: Si queremos sacar el disquete de la disquetera deberemos primero desmontar el disquete con la orden umount (seguida del nombre de dónde montamos ese dispositivo), en el ejemplo sería umount /floppy)
Y si queremos poner otro disquete, debemos hacer lo mismo, primero montarlo, luego desmontarlo. Por supuesto que es supermolesto, una perdida de tiempo.
""¿Y ustedes nos decías que Linux es superior a Windows?, en esto DOS/Windows es mucho mejor, menos problemas, más fácil, más rápido y más seguro"" - pueden pensar, como pensamos muchos la primera vez que nos enfrentamos a este tema.
Así lo creí mientras no entendí cómo funcionaba el sistema. Luego me di cuenta que, nuevamente, de lo aparentemente irrazonable había una lógica impecable, simple y poderosa.
Pero antes de verlo entendamos bien un punto. Tenemos que pensar que en Unix/Linux todos son archivos y todos están "colgados" de una única raíz. En este caso ustedes saben que en el DOS/Windows hay muchas raíces, una por cada unidad: Si tienen un C: un D. un E: o ponen un disquete (un A:), cada una de las unidades tiene su raíz, su principio, de donde se cuelgan los subdirectorios (si los hubiera) y se guardan los archivos. En Unix/Linux no, hay sólo una única raíz donde se cuelga todo. Por lo que si queremos acceder a un disquete o a un CD-ROM tenemos que definir dónde, en qué subdirectorio queremos "montarlo". Y si ese subdirectorio no existe, crearlo antes. En el caso de ustedes, de la distribución que más probablemente instalarán, verán que hay un subdirectorio que se llama /mnt y adentro de él hay dos subdirectorios: floppy y cdrom, es decir /mnt/floppy y /mnt/cdrom en el donde se estila montar el diskette y el CD-ROM, pero pueden montarlo donde se le plazca.
Esto tiene varias ventajas:
Al darnos la posibilidad de separar el acceso de la lectura/escritura de un medio, del montaje de su sistema de archivos, nos da la posibilidad DE LEER CUALQUIER TIPO DE DISQUETE REALIZADO CON CUALQUIER SISTEMA DE ARCHIVOS.
Gracias a eso Linux/Unix lee no sólo su propio sistema de archivos, como en el caso de DOS y Windows que sólo lee su propio sistema de archivos y nada más, sino que lee muchos otros sistemas de archivos: obviamente lee el sistema propio (de Linux, que se llama ext2, también lee los del DOS, Windows 95, Windows 98, Mac, NT, etc., etc.). Sólo tenemos que decir, cuando lo vamos a montar, el tipo de sistema de archivos se montará en la estructura de directorios:
mount -t msdos /dev/fd0 /floppy
montará un disquete realizado desde una PC/DOS en el subdirectorio /floppy y podrá allí leer y grabar datos en el formato MSDOS. El usuario no se preocupará por hacer conversiones de archivos de Unix/Linux a DOS, o viceversa, el sistema lo hace sólo por nosotros y ni nos damos cuenta que estamos grabando o leyendo un disquete DOS . El parámetro -t está indicando que lo que sigue será el tipo de sistema de archivos que se montará.
Si ponemos:
mount -t vfat /dev/fd0 /floppy leerá
archivos realizados por Windows 98 y así otros casos.
El sistema de archivos de Linux es hoy
el "segundo extendido" (primero usó uno que se llama minix, luego
el extendido (ext) y ahora el ext2, seguramente en algún momento aparecerá un
ext3, aunque es probable que sea otro nombre
mout t -t ext2 /dev/fd0 /floppy monta el sistema nativo que usa Linux (el extendido 2). Si no ponemos nada supondrá que es -t ext2
Por ej para montar un CD-ROM, creamos algún subdirectorio, si no está creado, por ej /cdrom
y luego damos la orden:
mount -t iso9660 /dev/hdb /cdrom, presuponiendo que la lectora de CD sea IDE y esté como esclava en la primera IDE
Si tienen un CD SCSI probablemente el dispositivo se llame /dev/scd0
Nota. Lo que se pretende aquí es incorporar el concepto de montar, lo operativo en realidad hoy es más simple, es casi automático y muchas de esas órdenes no hay que darlas, Pueden también consultar "man mount" para más detalles.
Bien. Y aquí no terminan las bondades. Si tengo otra computadora en red, puedo montar todo su sistema de archivos (o algunos de sus directorios), con la misma orden, lo único que el tipo será -t nfs por ej. y deberemos decirle qué computadora y dónde montar.
De esta manera, el usuario común no se complica la vida, ve todo como una sola estructura de directorios, que todos arrancan de una raíz, y cuando copia o lee, no le importa si está copiando a una red lejana del otro edificio, un disquete formateado en dos, o leyendo un cd.
Así en una sola y única estructura de directorios, pueden existir los más diversos sistemas de archivos, e incluso pertenecientes a otras computadores y redes, lo que hace muy fácil de gestionar para el usuario común, no tiene que preocuparse de hacer conversiones, de pensar si puede leerlo, traducirlo, etc.
Nos queda justificar por qué es también necesaria la orden umount.
Es muy simple y vale la pena. Supongamos que en DOS queremos copiar un disquete: luego de dar la orden, buena parte de la computadora queda inmovilizada. Y peor, supongamos que queremos copiar el contenido de un CD-ROM a un disco rígido, ¿cuánto tiempo nos llevaría viéndonos impedidos casi totalmente (caso DOS) de usar la computadora para otra cosa o con una gran caída de la performance en Windows?
Unix/Linux lo hace de otra manera: cuando
damos la orden de copiar algo, podemos hacerlo que "ya esté", así
como lo oyen, y que el prompt queda liberado para hacer otra cosa. Podemos seguir
trabajando con absoluta normalidad prácticamente al instante después de dar
la orden. Incluso acceder al mismo dispositivo y copiar otra cosa o leer de
él.
Obviamente por más bueno que sean Unix/Linux no pueden hacer milagros, y hay un tiempo real en que deben leerse los datos del origen y grabarse en el destino. y que nunca puede ser "doy la orden y ya está", salvo que sea muy pequeño el archivo. Pero en Unix/Linux puede "ya está" sea poquito o mucho.
Lo que pasa es lo siguiente. Cuando damos la orden de copiado, por ej con el mandato cp, se desencadena un proceso que el núcleo controlará y irá leyendo y grabando las cosas en función de los demás procesos que estén en curso (de ese u otros usuarios), encontrando los tiempos libres o menos ocupados en el uso del microprocesador. Es decir, para el usuario que dio la orden de copiar y que puso esa copia en segundo plano, ya está, y sigue con otra cosa. El núcleo irá regulando las cosas, de acuerdo a las prioridades fijadas. Generalmente sigue con la orden hasta que termina (aunque libere el prompt al instante si terminamos el mandato con el símbolo &, como veremos más adelante) y las lucecitas de la disquetera o del CD-ROM suelen indicarnos que terminó. Pero igual para estar seguros debemos dar la orden umount. Incluso la orden de umount es una manera de decirle al núcleo, "mirá estoy apurado, no me des tiempo para otras cosas, terminá ya". La orden de desmontar es muy simple, por ej umount /floppy (o umount /nombre_del_punto_de_montaje.
¿Se entiende? ¿Comparten que a pesar de ciertas incomodidades tiene sus grandes ventajas separar la orden del montado del sistema de archivos?
Aclaremos, no obstante, que en Linux se puede planificar para que los discos se monten automáticamente, sin tener que dar esa orden tediosa, pero definiendo las cosas para cierto tipo de sistema de archivo. Es decir, si sólo trabajaremos con un sistema de archivos en la disquetera, podemos hacer el proceso automático, de manera que cada vez que querramos leer o grabar allí se monten automáticamente las cosas, si es que no están ya montadas. También podemos poner que trate de reconocer automáticamente el sistema de archivos que tiene el medio, para montarlo apropiadamente. Esto ocurre con los CD desde el entorno X (gráfico): ponemos el CD y automáticamente va a ser reconocido sin necesidad de montarlo ni de pasarle parámetros, aunque en realidad ha sido montado en ese momento, sólo que no lo vimos, oculto tras el click del mouse)
Y ya que estamos algunas aclaraciones más.
Unas páginas atrás, pusimos como ejemplo
que para poner un disquete, creamos un subdirectorio, entramos en él con la
orden cd, vimos que no había nada allí, luego salir con cd .. y finalmente montar
el disquete. Bien, lo que es necesario resaltar es que es conveniente que el
lugar a dónde vamos a montar un dispositivo, por ej un CD-ROM, esté vacío. Y
si estamos adentro del subdirectorio que queremos desmontar, puede que no nos
de bolilla y nos diga "device is busy", es decir que el dispositivo
no se puede montar(o eventualmente desmontar) porque está ocupado (el estar
nosotros "adentro" es como estar ocupado).
Si montamos un disquete, CD-ROM, etc. sobre un subdirectorio que tiene datos u otros subdirectorios, no accesaremos más esos datos o subdirectorios. No se borran, pero no podemos llegar a ellos. Sólo luego de desmontar lo que montamos, podremos verlos nuevamente. Algunos utilizan este procedimiento para ocultar información.
Recuerden un punto:
si no damos la orden de montar no podemos acceder a nada, ni al disco rígido,
ni a los disquetes, ni a los CD, etc. Claro que en ciertos casos conviene automatizar
los pasos, por ejemplo que cada vez que arranque la computadora monte automáticamente
el hd (con las distintas particiones que hemos hecho, luego veremos bien esto),
y eso es lo que ocurre cuando instalamos Linux: Se crea automáticamente un archivo
que se llama /etc/fstab (tabla de sistema de archivos, recordar
que fs es sistema de archivos, file system), donde allí se ponen las
cosas que ocurrirán automáticamente al inicializarse la computadora respecto
al montado de sistemas de archivos.
MUY IMPORTANTE:
Y esto nos lleva a una otra cosas FUNDAMENTAL: jamás hay que apagar la computadora sin desmontar el sistema de archivos, sin desmontar los discos rígidos, etc., porque pueden existir daños irreversibles, aparte de pérdida de datos.
Ocurre lo siguiente. InterCol viejo, que daba acceso a cientos de personas al correo electrónico de Internet, funcionaba en una vieja 486 con 12 megas, manejando más de 80.000 cartas al año. Para que otro sistema operativo preste un servicio similar debería ser una Pentium última con 64 o 128 megas de memoria. ¿Dónde está el milagro?: en cómo está diseñado el sistema operativo, en que Linux hace un uso muy eficiente de la memoria. Todo lo trabaja en la memoria, no tiene las limitaciones de los 16 bits de DOS, ni las limitaciones con la BIOS. Y muchas actividades que en otros sistemas se hacen sobre disco, en Linux se hacen en la memoria, y cada tanto, cuando hay menos trabajo, Linux la pasa al hd. Linux puede correr muchos procesos, realizar muchas tareas, gestionar por ej muchos correos, páginas web, redes, etc., pero no significa que esas cosas ya estén pasadas a hd. La única manera de garantizar que los datos están completamente guardados, que los procesos han terminado como corresponden, que no hay alguna tarea en curso, etc., es dándole la orden de cerrar todo:
shutdown
Podemos dar la orden por ej que se cierre todo en 5 minutos (y esa orden la recibirán automáticamente todos los que están en la red, para que tomen sus resguardos) o si sólo somos nosotros y nuestra computadora le decimos
shutdown now
Y veremos que comienzan a activar los procesos de cierre, uno de los cuales, ya por el final, será desmontar todos los dispositivos montados. Y una vez que todo está bien, nos damos cuenta por los mensajes de la pantalla y podemos apagar el equipo.
Otra alternativa al shutdown now es apretar control + alt+ del (o control + alt + supr en castellano), es decir, resetear la computadora (PERO NO CON EL BOTÓN DE RESET, SINO POR TECLADO) (hacerlo con el botón reset es lo mismo que apagar la computadora abruptamente)
Apretar esas tres teclas simultáneamente es lo mismo que escribir shutdown now, lo único que debemos estar atentos a cuando luego de todos los mensajes, se borra la pantalla y nos aparecerá el mensaje de booteando nuevamente y allí apagarla, porque si no comenzará nuevamente el proceso de carga de Linux.
Una última aclaración del mandato mount.
Generalmente es un mandato que por cuestiones de seguridad sólo puede usarlo
el superusuario. El determinará si permite que en ciertos dispositivos puedan
montarse o desmontarse disquetes, CD-ROM, etc. Lo mismo que la orden shutdown
Cuando logren ver lo que hay en una instalación GNU/Linux pueden sorprenderse y marearse con la cantidad de directorios y archivos. Pueden pensar que es un caos: nada más alejado de la realidad. Hay un orden que ayuda para el uso, las actualizaciones, los problemas, todo.
Cuando ustedes trabajan en DOS-Windows tienen muchas raíces: la raíz del A:, la del C: la del CD-ROM y las de otras particiones del hd, etc. La raíz del DOS se representa con el \ y como dijimos, hay muchas, una para cada dispositivo o partición. En Linux/Unix hay sólo una /
Nota: recuerden que la raíz y la barra de separación de directorios, al revés del DOS, en Unix/Linux se representa con la barra común /
Todos los dispositivos, sistemas, particiones, redes, etc., etc. se cuelgan de esa única raíz, que obviamente no tiene letras ni nada y se representa con un /
La estructura tradicional de la raíz de Linux (la / atrás de un nombre indica
que es un directorio4)
es más o menos la siguiente:
bin/ etc/ mnt/ tmp/
boot/ floppy/ proc/ usr/
cdrom/ home/ root/ var/
dev/ lib/ sbin/ vmlinuz
En el de instalen ustedes casi con seguridad no estará el /cdrom y el /floppy
en el raíz, pues se encuentran dentro del /mnt, como /mnt/floppy y /mnt/cdrom.
Yo prefiero ponerlos en el raíz para tipear menos, además, así lo usa (o usaba)
la distribución Debian que es mi favorita. No se instalan las cosas de
cualquier manera y en cualquier lugar. Y cuando instalan un programa,
generalmente este se instala respetando ese órden, no en cualquier lugar.
LOS DIRECTORIOS DEL RAIZ
Ahora veremos un pantallazo sobre lo
que contiene cada uno
/bin
En el directorio bin se guardan los binarios (se llama binarios a los ejecutables) de uso elemental y básico por todos los usuarios. Por ej los programas ls y man estarán allí. (man es el manual en línea que trae Unix, y hay otros sistemas de ayuda en línea)
Recordemos que los ejecutables no se
identifican por el .exe, el .com o el .bat del DOS, sino por si tienen la x
en el atributo, cualquiera que sea el nombre. Pero veremos que no están allí
todos los ejecutables, sino los elementales del sistema operativo.
/sbin
En el directorio sbin también
se guardan los binarios, pero los binarios que son de uso del administrador
del sistema, del superusuario. De esta manera pueden bloquearse fácilmente ciertos
ejecutables para que no los usen los usuarios comunes.5
Si sumamos los archivos que están en /bin y en /sbin tendríamos los archivos
imprescindibles para el funcionamiento y mantenimiento del sistema operativo
(diríamos los que tradicionalmente se guardaban en el subdirectorio \dos u hoy
en el \windows\command)
/etc
En el directorio etc estarán casi
todas las configuraciones del sistema: desde los archivos que guardan las claves
y contraseñas, hasta los nombres y números IP de las distintas computadoras
de la red, aparte de la propia. Allí estará desde el mensajes de bienvenida
del login, hasta la lista de los sistemas operativos que pueden cargarse en
el momento del booteo, los sistemas de archivos que se montan al momento de
prenderse la computadora, la configuración de la llamada al ISP, o de los que
llamarán al servidor nuestro (si ponemos ese servicio) y cientos de cosas más.
Es el subdirectorio sobre el que más trabajamos a la hora de configurar Linux
/dev
En dev estarán todos los dispositivos del sistema presentes y futuros. Los discos rígidos y posibles particiones, diskettes, cd, SCSI, modem, mouse, impresoras, etc, etc
¿Se acuerdan que en la parte anterior
dijimos que todo se ve como archivos, que todos son archivos, desde una impresora
a un modem?. Están allí, con nombres convencionales que aprenderán a reconocer.
/lib
Este directorio tiene las librerías, generalmente en "C"6, que usara el núcleo u otros programas para ejecutarse, o para compartir con otros programas. Por supuesto que habrá muchos subdirectorios porque cada programa generalmente instalará sus librerías en su propio subdirectorio. En general aquí están las librerías del sistema, encontraremos otro subdirectorio de librerías en el subdirectorio /usr/lib
Tengamos presente que en Unix/Linux está
todo ordenado, no se ensucian los subdirectorios con instalaciones de programas
de los que quedan restos cuando lo borramos ni se superponen versiones (al menos
no debería ocurrir).
/usr
En este directorio estarán los programas que instalemos. Veremos que también habrá dentro de él unos subdirectorios que se llaman bin y sbin (/usr/bin /usr/sbin) donde guardaremos los ejecutables de los programas de los usuarios, y los ejecutables del sistema que hemos instalado nosotros.
Generalmente aquí hay un subdirectorio importante /usr/scr que es el que tendrá las fuentes de Linux, donde podremos compilar el núcleo, cambiar cosas, etc si sabemos C o perl. También uno que llamamos local (/usr/local) donde pondremos cosas nuestras. Y adentro de él también veremos que hay un bin y un sbin
En este subdirectorio la mayoría de los
programas se guardan en /usr/share y dentro de él, en
/usr/share/doc está la documentación de todos los programas, incluyendo las
FAQ, los Cómo, aunque a veces está también en /usr/doc.
/home
Los subdirectorios de los usuarios están dentro de home.
Y adentro de cada propio subdirectorio uno hace lo que desea.
Verán que el superusuario, el root, no está con su propio subdirectorio allí. Como es un privilegiado no le gusta codearse con la plebe así que tiene su propia casa en /root (en realidad es entre otras una medida de seguridad)
/root
root es entonces el home del superusuario (mi subdirectorio como fjpisani es /home/fjpisani)
Si como superusuario tecleo cd sin ningún parámetro automáticamente va a su home, es decir, adentro de /root o sea es como decir cd /root
En cambio si estoy como sherlock y escribo cd voy directamente adentro de /home/sherlock
/proc
Hay un subdirectorio misterioso. Allí está lleno de nombres de archivos raros. Cuando la primera vez quise copiar ese subdirectorio al disco de respaldo que estaba haciendo se me cruzaron los cables, porque no entendía lo que estaba pasando. O no me daba bolilla o cuando ponía y arrancaba desde el respaldo no estaba lo que había copiado y aparecían otras cosas.
Finalmente, como no entendía lo que pasaba y no me daba bolilla, lo ignoré, y no hice más respaldos de ese subdirectorio, y aparentemente todo estaba perfecto sin él. Por lo tanto, si él me ignoró a mi, yo lo ignoré a él y quedamos en paz.
Luego, leyendo y posteriomente probando, aprendí que lo que allí ocurre no existe en el disco rígido, es decir no es un subdirectorio grabado en el disco rígido, son cosas que están ocurriendo en la memoria, los procesos que se desencadenan al ejecutar un programa y otras informaciones. Cuando llamo a un programa, se activan procesos, que se identifican con un número. Lo veremos luego en detalle
Bueno, allí, en esos archivos que están en /proc puedo saber lo que está pasando en el sistema. Pero son archivos del tipo que conocíamos cuando no teníamos hd y hacíamos un c: virtual para engañar a los programas que lo necesitaban, usando el "fabuloso" pedazo que quedaba entre los 640 y el mega. Si nadie pasó por esa experiencia, ignoren el comentario. Lo concreto es que lo que está allí es virtual, está en la memoria y desaparece cuando se apaga la computadora y permanentemente se va modificando según lo que hagamos, archivos aparecen, otros desaparecen, etc.
Podemos pasarnos sin él, como él se pasa sin nosotros, aunque en algún momento podemos aprovechar algo de él, lo veremos. Concretamente allí estará la información vital de nuestro hard, las interrupciones que se usan, datos de todo tipo, reales y en tiempo real.
/boot
Otro directorio de poco uso es el boot. Allí supuestamente están los archivos binarios necesarios para arrancar el sistema, el núcleo. Pero el núcleo que realmente se ejecutará dependerá de qué orden le dimos al lilo (el archivo de configuración que está el /etc) (el lilo es el Linux Loader, el que se carga cuando se bootea la computadora). Personalmente tengo el núcleo en el raíz, aunque a veces se hace un link al que está en el /boot, todo eso lo veremos en su momento. Lo único que hoy nos interesa conocer es que hay un subdirectorio tradicional que se llama /boot y que allí suelen estar los datos que se necesitan en el momento del booteo
/mnt
Y hablando de tradicionales, encontraremos un directorio que se llama mnt, que sería mount sin las vocales. Allí supuestamente deberíamos montar algún dispositivo cuando queremos acceder a él. En el ejemplo que vimos antes, supongamos que tenemos un disquete que grabamos en w95 y queremos guardar esos archivos en el hd con Linux
Damos la orden
mount -t vfat /dev/fd0 /mnt
y luego podemos dar la orden de cp /mnt/* /home/sherlock y todos los archivos en el disquete se grabarán en el subdirectorio /home/sherlock. Y si por ejemplo mi disco rígido tengo en la primer partición DOS o Windows y en las demás mi sistema Linux. Estoy en Linux y quiero leer todo el disco C:, es fácil
mount -t vfat /dev/hda1 /mnt
luego hago un cd /mnt y un ls ¿y qué veré?: todo el disco C: con sus subdirectorios, etc.
Esto lo veremos luego, ahora lo estamos
comentando.
No obstante, hablando del subdirectorio /mnt, como dije, prefiero crear otros subdirectorios, no montar las cosas en mnt a menos que sea algo muy transitorio. Por ejemplo crear un subdirectorio que se llama /msdos, otro /red1, otro /otrohd, otro /floppy, otro /cdrom, etc. y allí montar cada cosa. De esta manera no ocurrirá que quiero montar algo sobre un lugar ya montado, aparte que sé perfectamente que en /floppy tengo montado un disquete, que en /cdrom tengo un cd, en /red1 tengo tal computadora de la red, en /fer tengo montada una computadora con DOS/w3.11, etc.
La distribución Red Hat, Conectiva, Mandrake, Suse, Asware y otras, crea dentro de /mnt dos subdirectorios: floppy y CD-ROM (es decir /mnt/floppy y /mnt/cdrom) sugiriéndonos que cuando tengamos que montar algo o crear nuevos puntos de montaje, especialmente los "removibles", los pongamos allí.
Además, vienen con una orden en el archivo /etc/fstab de manera que por ejemplo para montar el disquete o el CD-ROM no tenemos que poner todos los parámetros que dijimos, sino simplemente:
mount /mnt/floppy
o
mount /mnt/cdrom y ya está. Y para desmontar lo mismo sólo que con umount y el nombre del subdirectorio.
Lo importante de todo
esto es que en Unix/Linux hay una sola raíz, y de ella se cuelga todo lo demás.
Y que existen ciertas convenciones, para que cuando guardemos algo lo hagamos
con método, lo que facilita el borrado, la desintalación, la búsqueda.7
mhtml:mid://00000012/ - sdfootnote7sym
/tmp
Bueno, está también el directorio /tmp que obviamente sirve para los archivos temporales, generalmente estará vacío y comenzarán a aparecer archivos allí a media que ejecutemos programas y se vaciará cuando cerremos Linux (por lo que nunca guardemos nada importante allí). Puede ocurrir que sigan quedando cosas luego de apagar la computadora. Varios días después miramos allí y vemos que hay archivos con fechas viejas. Es decir, no fueron borrados. ¿Por qué? porque algunas distribuciones planifican sus tareas de limpieza en ciertos horarios, por ejemplo a media noche. Por lo que para que ese tarea diferida (cron) se realice deberíamos dejar la computadora prendida todo el día, o cambiarle la hora o borrar a mano. Generalmente no hay problema de borrar archivos que están en /tmp con fecha vieja.
¿y qué nos queda de la lista
bin/ etc/ mnt/ tmp/
boot/ floppy/ proc/ usr/
cdrom/ home/ root/ var/
dev/ lib/ sbin/ vmlinuz
Nos queda
/var
En el directorio var va todo lo que no metimos en los otros :-)
Y en cierta manera es cierto. No obstante es un directorio muy importante con subdirectorios que usaremos mucho.
Dentro de var hay uno que se llama spool que tiene archivos muy útiles
Por ej en /var/spool/mail estarán todas las cartas que los usuarios reciben desde otras redes o sistemas antes de levantarla desde sus computadoras vía telefónica o por red (o antes de mandarlas a su propio subdirectorios /home/nombre-usuario, si se usa el servidor como depósito propio).
Por allí cerca estarán también todas las cartas que se están enviando, o las que no han encontrado salida y esperan el momento para el reintento, que están en cola de espera.
También estarán los trabajos de impresión que están esperando en cola.
Otro importante es log (/var/log), especialmente cuando estamos configurando las cosas o para la administración del sistema o para cuando alguna cosa no está saliendo bien. Es muy importante: allí se guardan todos los mensajes periódicos del sistema: desde el error de un programa hasta quién fue el último en entrar al sistema o cuántas veces entró este mes, a qué hora, etc, por poner ejemplos. Ya volveremos más adelante sobre él.
Dentro de /var también hay otros
subdirectorios importantísimos. Allí suele instalarse el named (var/named)
que es donde se configura el servicio de nombres de dominios para que los mensajes
se enruten correctamente, uno de los temas espinosos que veremos más adelante.
(Espinoso no por lo difícil, sin por lo difícil configurarlo para que ande bien
:-) (pero por suerte ahora es cada vez más sencillo configurar esto)
También en /var algunas distribuciones (Debian por ej) guarda el directorio
donde está la página web que sirve el servidor apache (/var/www) y lo que pongamos
allí aparecerá como página web del sitio
Red Hat y las que le siguen ahora también lo están guardando allí
Suele existir otro subdirectorios /last-fount
que es donde se guardan restos de sectores perdidos, encontrados y que no se
sabe qué hacer con ellos, cuando aplicamos alguna de las herramientas tipo scandisk
(cada vez que se prende y carga Linux se revisan los sistemas de archivos buscando
inconsistencias y uno de los programas semejante al scandisk se llama en Linux
fsck)
Con esto tenemos un panorama de la estructura
general de directorios de Linux
Sigue el escrito en la llamada segunda
parte, 2.3.10.2
1 Word, CorelDraw, Autocad son marcas registradas por sus respectivas compañías (Microsoft, Corel, Autodesk)
2 El DOS es un sistema operativo que ya casi no se usa, reemplazado por Windows 95/98/2000, pero cuyos pricipios siguen vigentes en los mencionados, por lo que muchas veces para abreviar hablamos de DOS pero en realidad estamos hablando de DOS/Windows
3 Como Sherlock no nos daría bolilla.
4 Como dijimos antes, usamos el nombre directorio para referirnos a lo que ahora se suele llamar carpetas, y que también se llaman subdirectorios (generalmente un subdirectorio presupone que está adentro de otro, pero para lo que tratamos la distinción es meramente formal)
5 En realidad la separación entre /bin y /sbin no es tan extricta. Además por binario nosotros entendemos los ejecutables que están en código máquina aunque en realidad muchos ejecutables pueden estar escrito en un lenguaje de alto nivel, como perl o de script del shell (a la manera de los archivos de lotes (.bat) del DOS
6 "C" es un lenguaje de programación y el fundamental en el mundo Linux/Unix ya que permite portabilidad, etc
7 Respecto a la estructura de directorios, no hay una convención única, ni en Unix, ni en Linux, pero nosotros trabajaremos con la convención que nos parece que se terminará aceptando como estandar y que en general es reconocida en los sistemas Linux/Unix como la más común.
Llegará el día que instalar Linux sea muy fácil, pero hoy, si bien es infinitamente
más fácil de instalar que cinco años atrás, tiene sus complicaciones que
no son pocas aunque tampoco tantas.
Ocurre que no estamos instalando un simple sistema operativo con algunas aplicaciones, al que luego deberemos instalar otros programas comprados para poder aprovechar la computadora. Estamos instalando un servidor, o mejor dicho varios servidores, con cientos de aplicaciones, muchas de ellas importantes que se activarán (o no) en el momento de arranque según las órdenes que demos.
Por otro lado, lo complicado del asunto no es tanto la instalación en sí, sino las preguntas que nos hace la instalación de temas que tal vez sabemos poco (y peor si están en inglés como ocurre con algunas distribuciones) y se nos hace difícil responder apropiadamente. Y no sólo las preguntas, sino también las decisiones que debemos tomar antes de comenzar la instalación y que cuando nos damos cuenta que nos olvidamos o nos arrepentimos, ya es tarde y deberemos recomenzar de nuevo todo (aunque hay decisiones que se pueden posponer y configurar después). Y no es por no saber Linux, a veces es por no saber redes y otros temas que no forman parte de la jerga común del usuario de los sistemas monousuarios y monotareas.
Claro que si respondemos <enter> a todas las preguntas, Linux probablemente se termine instalando y funcione, aunque no así muchos servicios que puede prestar, como por ejemplo el servidor de redes, de correo, de web, de ftp, etc, pero como simple sistema operativo y en modo texto, andará.
Señalemos que hoy se ha simplificado mucho todo, y hay instalaciones de Linux que nos ofrecen un jueguito para entretenernos mientras dura la instalación, obviamente con mínimas decisiones por parte del usuario. Avanzó mucho el tema de detección de componentes, un elemento siempre crítico de Linux, especialmente para el entorno gráfico. También avanzó en el castellano por lo que por ese lado cada vez hay menos inconvenientes. Y no es que viene una distribución para cada idioma, sino que en algún momento de la misma nos pregunta el idioma y allí elegimos de una larga lista de idiomas. Incluso hay un proyecto de traducir Linux no se a cuántos dialectos que hay en la India.
En esta entrega veremos algunas cuestiones
claves que tenemos que saber y hacer para instalar Linux, los fundamentos de
ciertas decisiones, los criterios a tener en cuenta.
Esto implica que incluso para quién ya ha instalado Linux, puede ser conveniente
una lectura rápida de este material, porque puede encontrar elementos interesantes.
Supongamos que ya tenemos el CD-ROM con alguna de las distribuciones que aparecen en la web de Cignux ¿qué hacemos? ¿qué pasos tenemos que dar?
ELECCIÓN DE DISCO, ESPACIO Y PARTICIONES
Lo primero de todo es decidir dónde lo vamos a instalar, cuánto espacio necesitaremos, qué criterios usaremos para instalarlo.
Comencemos por el tema del espacio. Linux
se puede instalar en menos de 200 Mb (el sistema operativo en sí es muy pequeño
y el kernel más chico aún, pero con varios decenas de programas imprescindibles
llegaremos a unos 150 Mb.
Pero si queremos experimentar con X-Windows (X es el ambiente de ventana de
Unix), tener programas gráficos, lenguajes de programación, unos cuantos cientos
de utilitarios para hacer cosas necesarias y superfluas (¿quiere un calendario
lunar?), bueno los espacios son otros.
Para hacernos una composición rápida: si la distribución que vamos a instalar trae un sólo CD-ROM e instalamos todo, ocupará 1,5 Gb más o menos. Por lo que tenemos que pensar en más espacio para otras cuestiones, para instalar otros programas, para nuestros archivos etc.
Si la distribución trae dos CD-ROM binarios
(no dos CD porque en realidad ninguna distribución oficial puede traer
un sólo CD-ROM, están obligados a acompañar ese CD-ROM con otro con las fuentes,
por lo que si hay dos con binarios, estaremos hablando de tres o cuatro la distribución
completa)
Bueno, resumo, un CD-ROM instalado completo ocupa más o menos 1,5 Gb y dos ocupan
2,8 Mb
Por supuesto que nosotros allí podemos seleccionar qué instalar y qué no de
acuerdo a nuestras necesidades y posibilidades y achicar esos números, ya veremos
cómo.
Lo mínimo para trabajar tranquilos es
tener un espacio mínimo de 800 Mb aunque preferentemente 1,6 Gb.
Si queremos hacer un servidor para que otra gente tenga cuentas de correo, páginas
web, etc, las cifras son mayores, ya veremos cómo calcularlas.
Y antes de seguir, una referencia. Cuando tenemos una distribución en un CD-ROM debemos pensar que está comprimida, por lo que si quisiéramos cargar todo o la mayoría de lo que está en ese CD-ROM debemos duplicar la capacidad del CD-ROM por lo menos.
Hoy las distribuciones en caja vienen con más de cuatro o seis CD-ROM, así que para instalar todo deben pensar en mucho más.
Linux necesita sus propias particiones
Linux necesita su propia partición para instalarse, es decir no puede instalarse sobre una partición DOS o Windows (salvo que sea una versión especial, hay varias, ver la página citadad). En realidad Linux necesita al menos dos particiones, una donde irá el sistema operativo y programas y otra llamada swap o partición de intercambio.
Expliquemos esto un poco más. Y antes les advierto un punto. Hay dos cosas por las cuales la instalación de Linux es temida por su complejidad: todo este asunto de las particiones, y la configuración del servidor X. Son diríamos los dos puntos claves. Los veremos en detalle a los dos.
Cuando instalan MSWindows también se necesita particionar el disco. Para ello se utiliza un programa que se llama fdisk. La mayoría de las personas ni se entera de ello ya que compran la computadora con Windows instalado, o se lo instala otra persona, o lo hacen sin darse cuenta al hacer click en el programa de instalación de Windows.
En realidad se necesita particionar y luego formatear. Cuando particionamos estamos diciendo el tipo de estructura de datos que tendrá ese disco rígido, dato este que tendrá en cuenta el programa formateador, que hará los "lugarcitos" para guardar los datos, y el "índice" (FAT) y el directorio para referenciarlos.
Por si no lo saben, en el DOS/W9x se puede hacer una sola partición primaria (el C:) y una extendida, y la extendida puede dividirse en varias lógicas (D:, E:, etc). En GNU/Linux puede haber hasta cuatro particiones primarias, o hasta tres primarias y una extendida, y esta con varias lógicas.
Pero claro, el sistema de archivos de GNU/Linux no es el basado en la FAT, sino en uno que se llama ext2, y no tiene una FAT, sino inodes, por lo que debe necesariamente tener su propia partición, con su propio formato, para guardar allí y gestionar los archivos. ¿Cómo se hace esto?, es bastante fácil, pero requiere cuidado, ya lo veremos.
¿Recuerdan que en Windows podemos crear un archivo de intercambio?. Este archivo funciona como una ampliación de la memoria. Se utiliza cuando la memoria física ya está llena y algún programa requiere más. Algo parecido ocurre con GNU/Linux, con la diferencia que no es un archivo, sino que es una partición independiente, y que tiene un formato distinto del sistema de archivos, y sirve como complemento de la memoria real. En realidad Linux podría andar sin una partición swap, especialmente si se tiene mucha memoria, pero no es recomendable.
Al mismo tiempo, veremos que con GNU/Linux puede ser conveniente crear varias particiones, veremos por qué y cuáles, lo que por supuesto complica mucho más la vida.
Justamente para que GNU/Linux pudiera
ser accesible a todo el mundo, algunas distribuciones han simplificado al extremo
el proceso de instalación, al punto que hará todas esas cosas por nosotros,
lo que no siempre es lo deseable, salvo que no querramos tener el control y
se lo dejemos al programa. Sin ir muy lejos, los otros días estaba probando
una distribución y pensaba instalarla en una partición que tengo en un disco
de 20 Gb, que ya tenía Linux, y estaba prolijamente dividido en once particiones,
cada una con una función específica. Y también tenía una partición (la primera)
con Windows.
Pues bien, estaba trabajando la computadora de al lado y de vez en cuando haciendo
click en la de la instalación, para que el programa instalador avanzara. Y me
preguntó si quería hacer una Estación de trabajo, un Servidor o Personalizado.
Me dije, pruebo a ver que instala con Estación de Trabajo, suponiendo que haría
una elección particular de paquetes. Pero hizo algo más que eso, me borró todas
las particiones (menos la de Windows), e hizo dos particiones, una pequeña de
unos 40 Mb donde montó el subdirectorio /boot, y el resto como de 16 Gb, obviamente
me hizo pelotas todo lo que tenía... (por suerte no era mi disco de trabajo,
si no estaría todavía llorando)
Esto da la pauta los peligros que tiene la simplificación de la instalación: perdemos el control, por lo que aquí, como lo diré más adelante, no elegiremos los caminos más fáciles, sino los que requieren mayores decisiones por parte del usuario, aunque se demore más e implique más conocimientos, pues justamente de eso se trata, de aprender.
Dejaremos para unas páginas más adelante qué tenemos que hacer cuando tenemos un disco con Windows y queremos que convivan W y GNU/Linux en el mismo disco. Supongamos por un momento que tenemos un disco sólo para GNU/Linux. Y hagamos una suposición más, que ya sabemos particionar ese disco, por lo que podemos comenzar a ver cuántas particiones vamos a hacer y por qué. Luego veremos cómo se particiona, pero prefiero ver primero para qué particionar y qué montar en cada partición.
Les recuerdo que así como en las particiones
del DOS/W podemos tener varias particiones y cada una de ellas es una unidad,
en GNU/Linux podemos tener una o varias particiones para meter en ellas subdirectorios.
Si tenemos una sola (aparte de la swap), obviamente toda la estructura de directorios
estará en esa partición, por lo que nosotros montaremos en ella el raíz, representado
por la /
Al decir (ya veremos cómo) que se monte en tal partición la raíz, y no decimos
nada más, obviamente todo GNU/Linux se pondrá dentro de esa partición
El disco rígido
Antes de seguir, recordemos que el nombre
del disco rígido es más o menos algo así
/dev/hda
si es el maestro de la primer ide (las computadoras comunes admiten hasta cuatro
disco rígidos, dos maestros y dos esclavos)
Si fuera el segundo maestro, su nombres sería /dev/hdc
Recordar que el /dev es el nombre del subdirectorio donde están todos los dispositivos
Y la primer partición del disco rígido, se llamará /dev/hda1 (a, o b, o c, o
d, según donde lo pongamos, pero supongamos que sea lo más común, maestro de
la primer ide, si no lo tendrán como maestro de la segunda, por lo que llamará
/dev/hdc1, y la segunda partición, un 2, etc
¿Estamos hasta aquí?
Si por otro lado miramos la estructura
de directorios de mi disco (no del que mandé en otra clase, sino de uno que
estoy usando para probar las distribuciones que les vamos a enviar), y hacemos
un ls /
veríamos:
bin/
boot/
datos/
dos/
dev/
etc/
home/
lib/
misc/
mnt/
net/
opt/
otrolinux/
proc/
root/
sbin/
tmp/
usr/
var/
Ahora bien, si miráramos qué relación
hay entre esos subdirectorios y las particiones del disco rígido que tengo hechas,
usando para ello el comando df (que sería algo así como disk free,
que me permite ver el espacio usado en el disco), veríamos lo siguiente:
Filesystem 1k-blocks
Used Available Use% Mounted on
/dev/hda1 3583472
2926460 657012
82% /dos
/dev/hda2 2925332
4 277672
80% /otrolinux
/dev/hda3 1415196
92548 1250760
7% /
/dev/hda5 3534096
2638712 715860
79% /usr
/dev/hda6 1011928
116736 843788
12% /var
/dev/hda7 3028080
5312 2868948
0% /home
/dev/hda8 1011928
80 960444
0% /usr/local
/dev/hda11 2909420
4 2761620
0% /datos
(en otro momento veremos qué pasa con los números que están faltando, el 4, el 9 y el 10)
Traten de interpretar la lectura de esa tabla. En el extremo izquierdo están las distintas particiones del disco rígido, y en el lado derecho están los subdirectorios que están montados en cada partición. Los números podemos verlos como Kb
Veremos luego cómo hacer eso, y por qué, con qué criterios, lo veremos ahora. Lo importante es que consideren que si bien toda la estructura de directorios puede montarse sobre una sóla partición que ocupe todo el disco, es preferible en ciertos casos particionar más el disco, para mejor aprovechamiento del espacio, por seguridad, por comodidad, etc. Es más, si el disco es chico, es mejor no hacer muchas particiones. Lo iremos viendo.
Rebobinemos. Con GNU/Linux necesitamos al menos dos particiones, una para el sistema de archivos y otra la swap
Partición swap
Esta partición de intercambio es muy importante porque permite compensar las limitaciones de la memoria física que tiene nuestra computadora con una memoria virtual adicional, para que cuando ya no quede más memoria física, se use la partición especial dedicada a ella, la swap
¿De cuánto hacemos esta partición?. Depende
de tres cosas: de cuánta memoria física tenemos en nuestra máquina, de qué tipo
de aplicaciones vamos a correr en Linux y de cuanto espacio en hd podemos disponer.
Si pensamos ejecutar X-windows, navegar con Netscape y tal vez instalar el StarOffice
u otros programas gráficos, cuanto más memoria, mejor.
Lo mínimo de memoria swap que recomiendo es 128 Mb, pero como hoy las capacidades de los discos son tan grandes, recomiendo hacer dos particiones swap de 128 Mb c/u
Supongamos que no tenemos problemas de espacio en disco rígido. No tiene caso hacer una partición swap mayor que 128 porque por ahora Linux no maneja más memoria que eso. (Ojo, esto creo que cambió pero como nunca lo leí oficialmente, no he tenido tiempo, me remito a lo seguro. Es decir, tal vez sea lo mismo hacer dos sawp de 128 que una de 256) . (Luego Linux las junta automáticamente como si fuera una sola).
El manejador de memoria swap de Linux hasta hace tres años atrás no direccionaba más que 127,5 Mb, por lo que todo espacio de la partición mayor que ese valor será inaccesible. Pero lo que sí puede hacer Linux es manejar varios espacios de intercambio, varias swap, 16 para ser precisos, por lo que puede tener hasta 2Gb de memoria de intercambio (esto sí sé que se cambió pero no tengo los números actuales)
Dos particiones como mínimo
Como dije, si bien se necesitan dos particiones, una la swap y otra para todo Linux, en realidad es conveniente hacer varias particiones. ¿Para qué? Por eficiencia, seguridad y para evitar que el que se llene una partición de como resultado que el sistema se caiga o decaiga en mucho su perfomance. Para este curso alcanza y sobra con dos particiones, y lo mismo para un uso común de Linux, pero este sería un curso mediocre si no enseñara que las cosas deben hacerse de otra manera cuando queremos proceder profesionalmente.
Dicho de otra forma, si hay dos maneras obtener un resultado, una fácil y otra difícil, generalmente en cualquier curso que dicto elegijo enseñar la difícil, si es esa más completa y eficaz, aunque luego hagamos la fácil: quien sabe lo más, sabe lo menos. Por eso aquí explico la más dífícil
Por lo tanto veremos que puede ser conveniente realizar cinco particiones (aunque no lo hagamos. es importante saberlo para el futuro) y tener al menos tres subdirectorios montados cada uno en su propia partición y en la restante partición todo lo demás (la quinta sería la swap).
Comencemos no por el orden que le vamos a dar a las particiones, sino con los criterios de decisión para determinar los espacios. Damos por recordada la estructura de subdirectorios que vimos en la primera parte de este trabajo
/home
En el subdirectorio llamado /home irán las cuentas de todos los usuarios del
sistema, sus subdirectorios de trabajo, etc. Por lo que para calcular su tamaño
debemos pensar cuánto espacio le asignaremos a cada usuario, y si somos solos,
cuánto necesitamos para nuestros archivos, documentos, dibujos, etc.
También podremos poner allí los archivos del servidor ftp, si queremos hacer
uno (/home/ftp), (aunque también puede ponerse en /var/ftp) y finalmente podemos
colgar de home también el espacio para las páginas web, tal cual lo venía haciendo
Red Hat y los que en le siguen (en /home/httpd/html), o preferir la alternativa
que usa Debian, poner la web en /var/www , (ahora Red Hat está usando el mismo
criterio que Debian, al menos vi que lo pone /var/www en la versión 7.2)
Si no esperamos tener muchos usuarios
(calculemos al menos cinco megas cada uno), y nuestro servidor web y ftp sólo
funcionará experimentalmente, sin que lo carguemos, podemos destinar poco espacio
a esa partición, pongamos entre 200 Mb y 600 Mb
Piensen que si un usuario baja un archivo de la web o ftp, quedará allí adentro,
por lo que si por ejemplo queremos bajar la imagen de una distribución Linux,
que ocupa unos 650 Mb, tenemos que pensar en dejar espacio para ello. Por otro
lado, allí es el lugar natural donde guardaremos nuestros documentos, trabajos,
correo, etc. Por lo que es importante dejar el espacio suficiente.
/var
En el subdirectorio /var existen algunos archivos de configuración y programas
que no ocupan mucho lugar, digamos no más de 50 Mb. Pero hay dos subdirectorios
dentro de /var que sí pueden llegar a crecer desmesuradamente /var/spool
y var/log
En /var/spool ingresan todas las cartas de los usuarios, antes de que
se la lleven a su directorio en /home o la bajen en sus computadoras si se conectan
vía telefónica. También van allí los trabajo de impresión cuando están en cola
esperando su turno.
/var/log es un subdirectorio cuyo contenido crecerá continuamente porque
allí se guardan todos los archivos de administración del sistema: ¿quién entró
hoy y a qué hora? ¿quién hace un mes? ¿qué errores produjo el sistema de correos?
¿Alguien se conectó vía ppp? ¿cuándo?
Todos los datos administrativos se guardan en ese subdirectorio (algunos sistemas
lo guardan en /usr/adm pero en realidad suele ser un vínculo simbólico a /var/log)
Por lo tanto, si bien en /var no hay muchos archivos, sí es un directorio propenso
a crecer y crecer. De acuerdo al uso que le vayamos a dar al sistema, es el
espacio que es conveniente asignarle. Por lo menos piense en un espacio de 300
Mb
Claro que si allí piensan poner el subdirectorio de la web (/var/www),
deberán agrandarlo para que entre su (o sus) sitio(s).
Como cada maestro con su librito, yo
además prefiero crear para /var dos particiones. Una para /var y otra
para /var/log. Quiero desentenderme de problemas de control y como ambas,
el /var que tiene el spool y el /var/log pueden crecer independientemente y
mucho, las trato separadamente. En particular si se propone dar acceso al e-mail
piensen que cada usuario va a ocupar al menos 1 o 2 megas transitoriamente (hay
que pedirle que cuando bajen su correo lo borren del servidor), así que multiplique
esa cifra por el número de usuarios que espera, y el /var/log fácilmente llegará
a los 150 Mg en unos meses.
Por lo tanto aconsejaría si hay espacio en el hd o hacer una sola partición
para /var de unos 600 Mb o hacer dos, dividiendo casi mitad y mitad (por ej
250 para /var/log y 350 para /var). Y si allí pondremos la web y pensamos tener
mucho, bueno, sería conveniente hacer una partición específica para ello, y
allí montar /var/www, cosa que mañana se nos llena y podemos poner un disco
rígido entero para ello, si nuestro sitio es importante.
/usr
Llegamos aquí a la consumidora de espacios por excelencia. En /usr es donde se instalan los utilitarios y aplicaciones generales, incluyendo todo lo de X. Dentro de lo posible un mínimo debe ser de 500, pero si tenemos espacio como mínimo diría 1.5 Gb, pero si queremos instalar más, pensemos de 2.5 Mb a 3Mb (o más)
Dentro de ese subdirectorio (lo veremos
más adelante, luego de que instalemos Linux) hay un subdirectorio que se llama
local y que adentro tiene otros subdirectorios,
por ejemplo en este disco tengo (lo veo hhaciendo
ls /usr/local)
bin/
doc/
etc/
games/
info/
lib/
man/
sbin
src/
Como ven, también aquí hay un bin y un sbin, donde se guardan los binarios que hacemos nosotros. Y allí también pongo los programas que instalo yo y que tal vez quiera compartir desde otro linux, por eso lo voy a montar en una partición aparte, como pueden observar en en la salida de df que les mostré antes.
/
Finalmente el raíz, representado por
la /, donde se incluirá automáticamente todo lo demás que nos quede,
y todos los subdirectorios asociados. Siguiendo con las recomendaciones, un
espacio de 250 Mb está muy bien, pero 100 Mb alcanza también.
Algunos sacan de allí dos directorios para ponerlos en particiones separadas,
el /boot donde se guardan los kernel (los núcleos) del sistema operativo
(con menos de 20 Mb alcanza y sobra) y otra para el /root (que de por
sí no necesita mucho, salvo para guardar cosas allí, pero el sistema naturalmente
no pondrá nada allí salvo los archivos que personalizan el logueo, que no ocupan
casi nada, más el correo común, pero no es conveniente hacer una separación
de ese subdirectorio de donde está la raíz, porque podríamos no acceder a él
en caso de problemas).
No obstante, creo que no se justifica
separarlos en particiones distintas, salvo tal vez el /boot, especialmente si
nuestro es muy grande y sólo queremos hacer una partición para todo, de manera
que el kernel esté lo más cerca del principio del disco
Conclusión. Dos alternativas para instalar Linux.
* hacer dos particiones: una swap y otra para el Linux propiamente dicha. Es la recomendable cuando nuestro disco es chico o tenemos poco espacio o estamos dando los primeros pasos.
* hacer al menos cinco particiones y en este orden: /, /usr, /home, /var, swap (y si quieren hacer una sexta, para /var/log)
Sobre esto volveremos con otras alternativas.
EL PROCESO DE PARTICIONAR
Como se denomina el disco rígido -
Linux y DOS/Windows.
El nombre del disco rígido
Como dijimos en otro lugar, todos los dispositivos se representan y referencian en Linux por archivos, que están en el directorio /dev.
Vimos que la disquetera A: se llama /dev/fd0, si hay una B: sería /dev/fd1
¿Y qué pasa con los discos rígidos?
Las motherboard actuales permiten hasta
4 discos rígidos IDE. Hay dos "enchufes" para conectar los cables
(IDE1 e IDE2) y a cada uno de esos cables se le pueden conectar dos discos rígidos,
llamados cada uno maestro y esclavo.
El primer disco rígido (ide 1, maestro) se llama /dev/hda, el segundo
( IDE1, esclavo) /dev/hdb, el tercero (segundo maestro, IDE2) /dev/hdc
y finalmente el cuarto, el segundo esclavo, IDE2, /dev/hdd
En alguno de esos "archivos-dispositivos" se suele poner también la lectora de CD-ROM si es IDE, por lo que el CD-ROM se llamará /dev/hdb, si está por ejemplo como esclavo de la primer ide.
Si llegaran a tener un disco SCSI, se llamaría /dev/sda la primer unidad, /dev/sdb la segunda y así sucesivamente.
Supongamos que tienen un sólo disco rígido
y que está en la IDE1.
La primer partición se llamará /dev/hda1, la segunda /dev/hda2 y así sucesivamente.
Linux y DOS/Windows.
Ya sabemos como se llaman entonces los
hd y las particiones, pero tenemos el primer inconveniente. La mayoría de ustedes
tiene un disco rígido con DOS/Windows. ¿Se puede usar para Linux?
Como dijimos, Linux necesita sus propios formatos de particiones, por lo que
si queremos instalar en ese disco Linux deberemos dejar algún espacio del hd
sin particionar desde DOS/Windows para que Linux pueda usarlo.
Si el hd que disponen para experimentar sólo tiene una partición DOS/Windows,
la C: que ocupa todo el espacio del disco, bueno, tenemos un problema y no chico.
Pero antes de verlo, supongamos que tenemos un hd con varias unidades (dos particiones)
DOS/Windows. La alternativa es meter todos las cosas importantes en la primer
partición, para conservarla y luego borrar las unidades lógicas y luego la partición
extendida que las contenía con el fdisk.
Pero tomemos el caso anterior: Sólo tenemos una partición en todo el disco, la C:
Tenemos dos alternativas.
* Una borrar toda la partición C: (naturalmente implica perder absolutamente todos los datos y tener que instalar todo de nuevo), ejecutar luego de nuevo el fdisk del DOS/Windows y crear una partición C: más chica, dejando un pedazo suficientemente grande sin particionar para que luego lo haga Linux
Como dijimos, en esta alternativa perdemos todos los datos (a menos que los hayamos pasado a otro hd o CD-ROM para luego recopiarlos) y debemos instalar DOS/Windows de nuevo, ídem sus programas
* Usar una utilidad creada para achicar la partición con grandes posibilidades de que los datos no se pierdan. Al varias en el ámbito comercial MSWindows. En el CD-ROM de cualquier distribución de Linux viene una utilidad que se llama FIPS, en el subdirectorio de utilidades de DOS, que sirve para ese propósito. Y hay ahora otras más modernas que vendrán seguramente con la distribución que elijan para instalar, que es más amable que el fdisk y el fips, pues tiene un formato más gráfico.
Si el hd está particionado con el nuevo formato de windows, el modo largo, llamado FAT de 32 (no el de windows 95 vfat ni el de dos, fat), puede que no cualquier utilidad FIPS funcione.
Si está particionado con el tradicional
formato del DOS (fat16 suelen llamarlo ahora o con el vfat), primero deberán
borrar programas y archivos del disco C: haciendo lugar (porque FIPS no hace
milagros). Luego, cuando esté con el espacio libre suficiente como el que tienen
planificado para instalar Linux, ejecutan el desfragmentador, para que se ordenen
las cosas al principio del disco. Posteriormente ejecutan el scandisk por las
dudas para corregir errores y finalmente ejecutan el FIPS. (si desfragmentador
y scandisk no le dice nada, consultenos para ampliar)
Este terminará achicando la partición C: dejando un espacio para Linux.
Importante: Si decidimos borrar el DOS/Windows
del hd ANTES DE HACERLO leer el CD-ROM con Linux y preparar el disco de instalación
de Linux porque luego podemos tener dificultad de acceder al CD-ROM (ver más
adelante cómo se hace), que no tendremos ni Windows ni Linux para hacer el disco
de arranque, en el supuesto caso de que el CD-ROM no bootee
Si arrancamos de un disco virgen, la
pregunta es:
¿dejaremos algo para DOS/Windows o usaremos todo el hd para Linux?
Si pensamos dejar espacio para DOS/Windows,
primero instalamos el DOS/Windows y con el fdisk del DOS creamos una partición
DOS/W, dejando suficiente espacio sin particionar y luego que terminamos, nos
vamos al disco de instalación de Linux para seguir con el trabajo.
HACIENDO LAS PARTICIONES DE Linux (y desde Linux)
Partiendo de la base que tenemos un hd
con un pedazo o todo sin particionar, debemos ver los pasos que tenemos que
dar.
El objetivo inmediato es particionar el disco para instalar Linux pero no podemos
particionarlo sin hacerlo desde Linux por lo que lo primero es conseguir bootear
con Linux.
Aquí vienen dos alternativas principales. Si el CD-ROM que tenemos con Linux es booteable y nuestra BIOS soporta que se pueda arrancar desde el CD-ROM (cuando arranca la computadora apretar DEL (o suprimir) hasta entrar en el setup de la computadora, allí ir a la segunda opción del menú y allí alterar el orden de booteo, para ver si admite que se inicie la computadora desde un CD-ROM. Si es así poner que comience a bootear desde allí y luego seguimos los pasos que se señalarán.
Pero supongamos que nuestro CD-ROM no
es booteable o nuestra computadora no tiene esa posibilidad o nuestra lectora
no lee bien el CD-ROM. Deberemos arrancar desde un disquete. ¿Y ese disquete
de dónde saldrá?
Si hemos comprado alguna versión que viene con caja y manuales, suelen traer
un disquete de booteo, si no, deberemos fabricarlo.
Y aquí vienen las diferencias de versiones. Según que distribución, deberemos fabricar uno, dos o incluso seis diskettes. En el caso de Red Hat (y los que le siguen, Conectiva, Mandrake) la sacaremos liviana, nos alcanzará con uno.
Si tenemos Linux instalado, podemos fabricar fácilmente el disquete desde allí, con una orden apropiada (está explicado en un archivo del CD-ROM de la instalación), pero supongamos que no tenemos Linux, que es la realidad de la mayoría de ustedes hoy.
Para simplificar la operatoria de creación
del disquete, creamos (desde Windows) un subdirectorio en el disco rígido C:
y copiamos allí los archivos que están en el subdirectorio que dice herramientas
del DOS (en RH se llama /dosutils) , y metamos
allí también los archivos que están en otro directorio que se llama /images
Una vez copiados esos archivos se ejecuta un programa que se llama
rawrite
inmediatamente de ejecutado pide el nombre de la imagen de disco que se quiere
escribir, y allí se pone boot.img, que es el nombre de una de las imágenes que
está en ese subdirectorio que copiamos último (o el nombre que le indique la
distribución que ha elegido).
(Hay que estar atentos al nombre de esta imagen, porque puede variar de una distribución a otra, lo mejor es leer la documentación que está en el CD-ROM que usarán para instalar su GNU/Linux
Luego, cuando se pide la unidad de disquete
donde se creará el disco, se escribe A:, previamente se ha puesto un disquete
formateado (en DOS, como viene de fábrica) y luego se espera hasta que termina
la tarea.
En el caso de Debian hay que mirar las instrucciones, pero son varios discos
imágenes que hay que crear: root, base1, 2, 3 y 4, etc.
En Slackware hay dos disquetes por lo menos: el "boot disk", que se
podrá primero, y es donde va el núcleo del sistema y luego deberemos poner el
segundo disquete, el "root, o "ramdisk", que incluye los programas
imprescindibles para hacer la instalación. pero todo esto puede cambiar por
lo que en realidad hay que mirar las instrucciones que trae cada distribución.
Lo único que hay que entender es que un disco de booteo tiene que tener en su sector 0 un programa de arranque y eso no se logra con un simple copiado, por eso se fabrican imágenes del disco que luego se graban en el disquete mediante programas específicos realizados a tal fin, en este caso dicho programa que se ejecuta desde el DOS se llama rawrite, que luego nos pedirá qué imagen queremos copiar y dónde.
Insistimos: Siempre hay que leer la documentación para ver cómo se hace la instalación, ya que las instrucciones que podemos dar aquí pueden no tener validez para una nueva versión, aunque los procedimientos suelen ser similares
Una vez creado este disco de arranque, procedemos a reinicializar la computadora con el disquito puesto en la disketera, en el caso de que arranquemos desde A: o con el CD-ROM puesto, si arrancamos desde el CD-ROM. No se olviden de dar la orden al Setup para que lea la disquetera antes de leer el disco rígido.
Luego de que bootemos aparecerá una pantalla que podrá variar de una distribución a otra o de una versión a otra, pero siempre aparecerán las explicaciones de lo que se espera que hagamos (aunque generalmente en inglés)
Existen otras posibilidades de instalar Linux: desde una red, desde otro hd, desde un sitio en Internet,. pero son excepciones y por lo demás, todo los pasos que veamos aquí se aplicarán en su mayoría.
Por supuesto que para experimentar tienen
otras alternativas, como por ejemplo ejecutar Linux desde un CD-ROM, con muy
poco uso del disco rígido y sin particionar. UTUTO, creada en Salta por
Diego Saravia, de quien tenemos el placer de leer su ponencia el viernes, permite
eso
Bueno, este es un panorama general, espero que haya sido útil
Espero sus preguntas y comentarios
Chau.
Fernando
Fernando J. Pisani
Rosario - Argentina
fjpisani@intercol.org.ar