Ediciones ENI
LINUX
Domine la administraci贸n del sistema
Colecci贸n Recursos Inform谩ticos
Extracto del Libro
Capítulo 5
A. Proceso de inicio 1. La BIOS a. Papel La BIOS (Basic Input Output System) es un software de interfaz entre el hardware y el software a un nivel muy básico. Proporciona el conjunto de las instrucciones básicas utilizadas por el sistema operativo. Provee el nivel de interfaz más bajo a los drivers y periféricos. La BIOS está presente en una memoria EEPROM (Electrical Erasable Programmable Read-Only Memory) del ordenador. Cuando se enciende el ordenador, o tras un reseteado, se manda una señal llamada powergood al microprocesador. Éste activa entonces la ejecución de la BIOS. La BIOS efectúa un autochequeo del encendido (POST), luego busca los periféricos, en particular los utilizados para iniciar el sistema. A continuación se almacena la información relativa al hardware de manera permanente en una pequeña memoria CMOS alimentada por una batería. Al final de proceso, se selecciona el periférico de inicio. La BIOS lee y ejecuta el primer sector físico del soporte físico de inicio. Suele tratarse de los 512 primeros bytes del primer disco duro (el MBR) o de la partición activa (la PBR), como se describió en el capítulo Los discos y el sistema de ficheros.
b. Ajustes básicos Cada BIOS es diferente según los fabricantes de tarjetas madre y los editores (AMIBios, Phoenix, Award, etc.). Sin embargo, muchos de los ajustes son idénticos o, en todo caso, se parecen mucho. La detección de los discos duros y la elección del soporte de inicio se efectúan desde la BIOS. Linux soporta discos IDE, SATA y SCSI. No obstante, es posible que su juego de chips no reconozca el disco SATA. En este caso, la mayoría de las BIOS tienen como opción emular un IDE modificando el controlador de la SATA. Linux los reconocerá como tales. Es recomendable, sin embargo, probar una primera instalación con el soporte nativo de los discos SATA activado. En principio, Linux gestiona correctamente el soporte de los chipsets SATA compatibles AHCI (Advanded Host Controller Interface), un estándar para las especificaciones públicas. Active esta opción en la BIOS siempre que pueda. En ocasiones aparece con este nombre y, en otras, en modo nativo. Si nada funciona, intente el modo combined, y luego legacy IDE. Encontrará ayuda relativa al SATA en el sitio siguiente: http://linux-ata.org/faq.html Para ejecutar la instalación de Linux desde un CD-Rom o un DVD-Rom, debe modificar el orden de ejecución de manera que arranque primero desde el lector de CD o DVD.
294
Linux - Domine la administración del sistema
Inicio de Linux, servicios, núcleo y periféricos Si su teclado es de tipo USB, o sin cable pero con un adaptador sin cable USB, debe activar el USB legacy support (a veces esta función se llama USB DOS function o USB keyboard enable). Permite activar en el momento del inicio el soporte de los teclados, pero también los soportes de almacenamiento (claves, discos duros, tarjeta de memoria). Esto no impide que el sistema se encargue del USB: una vez iniciado el OS, los drivers USB del núcleo y de los módulos se encargan del USB. En principio, no tiene por qué tocar la configuración. Evite jugar al aprendiz de hechicero modificando la configuración avanzada del chipset y de otros recursos cuya utilidad no entiende. Sin embargo, con el fin de de ahorrar recursos, puede desactivar los puertos de la placa base que no utiliza: puerto paralelo, puerto serie, etc.
© Editions ENI - All rights reserved
Pantalla de la BIOS Phoenix que modifica el orden de boot El overclocking necesita un hardware especial: procesador, placa base, memoria y alimentación deben ser de alta calidad y el PC debe estar bien aireado. El overclocking es fuente de inestabilidad y cuelgues, tanto en Windows como en Linux. En particular, pone a prueba la memoria. Es la principal causa de inestabilidad. Incluso sin overclocking, resulta útil invertir en componentes de calidad.
Linux - Domine la administración del sistema
295
Capítulo 5 2. El gestor de arranque La BIOS activa el gestor de arranque inicial (Initial Program Loader, IPL) a partir de los primeros 512 bytes del soporte de arranque. En Linux, el cargador está compuesto de dos partes. El cargador inicial de los 512 bytes no contiene bastante código para proponer menús y ejecutar el sistema operativo. Carga un segundo gestor basado en un fichero de configuración. Este segundo gestor está provisto de una interfaz para ejecutar un sistema operativo de entre una selección dada. Puede aprovechar este gestor para pasarles parámetros al núcleo Linux y al proceso init. La BIOS sólo interviene en el inicio de la máquina, durante la utilización del cargador de inicio y en las primeras etapas del carga del núcleo. Luego, no sirve para nada más. El núcleo dispone de sus propias funciones de detección, aunque se apoye en la configuración de la BIOS. En efecto, ésta, bajo la plataforma Intel, se ejecuta en modo real, y Linux, en modo protegido.
3. GRUB a. Configuración En la mayoría de las distribuciones Linux, el cargador por defecto se llama GRUB (Grand Unified Bootloader). Se puede configurar en gran medida, en particular la protección mediante contraseña encriptada. Cuenta con un intérprete de comandos y con una interfaz gráfica. GRUB guarda las configuraciones en un fichero de texto y no es necesario volver a instalar GRUB tras cada modificación. A continuación presentamos un ejemplo de configuración a partir del supuesto de que la primera partición del primer disco es /boot y que la segunda contiene una instalación de Windows. timeout=10 default=0 title Red Hat root (hd0,0) kernel /vmlinuz-2.6.12-15 ro root=LABEL=/ initrd /initrd-2.6.12-15.img title Windows XP rootnoverify (hd0,1) chainloader +1
Esta tabla le muestra la sintaxis general de un fichero GRUB: Parámetro GRUB timeout default n
296
Significado Número de segundos antes del arranque por defecto. Arranque por defecto (0=1º título, 1=2º título, etc.).
Linux - Domine la administración del sistema
Inicio de Linux, servicios, núcleo y periféricos Parámetro GRUB gfxmenu title xxxx root(hdx,y)
kernel
initrd
rootnoverify chainloader +1
Significado Ruta hacia un menú gráfico. Principio de una sección, entrada del menú de GRUB. Se especificarán todos los accesos más abajo a partir de esta partición (ver el significado más adelante). Aquí, hd0,0 representa la primera partición del primer disco detectado por la BIOS. Es la partición /boot. El nombre de la imagen del núcleo de Linux, seguido de sus parámetros. La / no indica la raíz del sistema de ficheros, sino la de (hd0,0), por lo tanto /boot/vmlinuz... Initial ramdisk. Imagen de disco en memoria que contiene la configuración y drivers iniciales y que el sistema sustituirá cuando cargue los discos definitivos. La raíz especificada. No debe montarse con GRUB (no soporta NTFS). Inicia el primer sector de la raíz especificado más arriba.
Damos el significado de los nombres de periféricos en GRUB.
- (fd0): primer lector de disquetes detectado por la BIOS (/dev/fd0 en Linux). - (hd0,0): primera partición en el disco duro detectado por la BIOS, ya sea IDE o SCSI (/dev/hda1 o /dev/sda1 según los casos).
- (hd1,4): quinta partición en el segundo disco duro detectado por la BIOS (/dev/hdb5 o /dev/sda5).
b. Instalación La configuración de GRUB reside en /etc/grub.conf o /boot/grub/menu.lst (el primero es un vínculo al otro). El binario GRUB puede estar instalado en el MBR (Master Boot Record, los primeros 512 bytes de un disco) o un PBR (Partition Boot Record, los primeros 512 bytes de una partición).
© Editions ENI - All rights reserved
Para instalar o desinstalar GRUB en caso de que MBR esté corrompido, por ejemplo en /dev/sda, utilice el comando grub-install: # /sbin/grub-install /dev/sda
c.
Arranque y edición
En el momento del inicio de GRUB, se visualiza un menú. Puede ser gráfico o textual, según la configuración. Tiene que elegir una imagen de inicio entre las propuestas con las flechas de dirección. Pulsando la tecla [Intro], ejecuta la imagen seleccionada. Puede editar los menús directamente para modificar por ejemplo los parámetros pasados al núcleo de Linux o init. En este caso, seleccione una entrada de menú y pulse la tecla e (edit). Aquí se visualizan todas las líneas de la sección. Puede pulsar:
- e: para editar la línea (completarla); Linux - Domine la administración del sistema
297
Capítulo 5 - d: para suprimir la línea; - o: para añadir una línea; - b: para iniciar la imagen (booter). Por ejemplo, para iniciar en modo emergencia (emergency):
k Vaya a la línea Linux o Red Hat y pulse e. k Vaya a la línea kernel y pulse e. k Al final de la línea añada 1 o Single y pulse [Intro]. k Teclee b.
Puede acceder también a un intérprete de comandos pulsando [Esc]. ¡Cuidado! Sólo se reconocen los comandos GRUB.
4. Inicialización del núcleo Durante la carga del núcleo, el monitor le mostrará una tonelada de información. El sistema no la registra en esta etapa, pero en la siguiente, la etapa del init, Linux comienza a escribir registros en el fichero /var/log/dmesg.
-
Se detecta e inicializa el hardware. initrd está cargado, los módulos presentes se han cargado si es preciso. El núcleo monta el sistema de ficheros raíz en modo de sólo lectura. Crea la primera consola. Se ha iniciado el primer proceso (en general init).
Esquema de la secuencia de inicio
298
Linux - Domine la administración del sistema
Inicio de Linux, servicios, núcleo y periféricos Existen otros cargadores, entre los cuales el más usado hasta ahora era LILO (Linux Loader). Sin embargo, estos últimos años, GRUB lo ha sustituido casi por completo como consecuencia de sus numerosas limitaciones.
B. init 1. Función de init El programa init es el primer proceso iniciado y el último que se para dentro del sistema, y tiene como misión ejecutar todas las demás tareas. El papel inicial de init consiste en iniciar y parar todos los servicios. init ejecutará las diferentes tareas iniciales necesarias para el buen funcionamiento de Linux mediante la ejecución de varios comandos y scripts. Una vez iniciado el sistema y ejecutados los servicios, init sigue activo para gestionar los cambios de estado de los procesos que controla y de los niveles de ejecución. El programa init puede cambiar de una distribución a otra. En la mayoría de las distribuciones profesionales o mayores (Mandriva, Red Hat/Fedora, openSUSE, Debian, etc.), el principio sigue siendo más o menos el mismo: init de tipo System V (basado en la noción de niveles de ejecución). La distribución Ubuntu utiliza Upstart, que gestiona las prioridades, los eventos y dependencias entre los servicios, pero respeta el mismo principio. La distribución Slackware utiliza otro mecanismo inspirado en BSD. El proceso init es el padre de todos los procesos. Siempre tiene el PID 1. Su configuración está en el fichero /etc/inittab. Si este fichero está corrompido o es inutilizable, habrá que arrancar el sistema en modo single (S, s, 1 Single) y arreglarlo, o a lo peor arrancar desde un soporte externo o un disco de emergencia. Es un fichero central del sistema operativo.
© Editions ENI - All rights reserved
2. Nivel de ejecución Un nivel de ejecución, o runlevel, corresponde al estado en el cual se encuentra Unix/Linux. Init controla este estado. Cada estado dispone de su propia configuración (o por inittab, o por scripts llamados initscripts). Por ejemplo, se puede utilizar un nivel de ejecución para arrancar Unix en modo monousuario, en multiusuarios, con o sin red, con o sin modo gráfico. El administrador puede personalizar todos los niveles. Por convención, en las distribuciones Red Hat/Fedora, Mandriva, openSUSE y asociadas, se suelen definir estos niveles como a continuación: Nivel 0 1 2 3 4
Efecto Halt: para el sistema operativo, apaga la máquina. Modo monousuario utilizado para el mantenimiento, modo consola. Multiusuario, sin red, consola. Multiusuario, con red, consola. ídem que el 3, a conveniencia del administrador.
Linux - Domine la administración del sistema
299
Ediciones ENI
LINUX
Practique para administrar el sistema
Colección Prácticas Técnicas
Extracto del Libro
Gestión de los discos y sistemas de ficheros ENUNCIADOS DEL CAPÍTULO 4
33
Capítulo 4: Gestión de los discos y sistemas de ficheros X Duración: 2 horas 40 X Palabras clave:
montaje, cuotas, discos, particiones, sistema de ficheros, formateo, ext2, ext3, ReiserFS, RAID, LVM
X Objetivo Al final de este capítulo, usted será capaz manipular las unidades de almacenamiento y los sistemas de ficheros bajo Linux. Los ejercicios versan sobre: : el particionamiento con fdisk ; : las tecnologías RAID; : los volúmenes LVM; : la creación de sistemas de ficheros ext2, ext3 y ReiserFS ; : los montajes predefinidos y los automontajes; : los cuotas.
X Material necesario Estos ejercicios necesitan diferentes discos para implementar las tecnologías RAID y LVM. Respecto a la máquina virtual utilizada en el capítulo 2 de este libro, los discos sdb y sdc de 2 GB se utilizarán para los volúmenes LVM y los discos sdd, sde y sdf de 1 GB para las matrices RAID. En total será necesario un espacio libre de 5 GB para poder crear todas las particiones de los ejercicios según los tamaños indicados. En el marco de ejercicios y de pruebas, es posible modificar estos ejercicios utilizando el espacio de un único disco duro.
A
Requisitos previos Para validar los conocimientos necesarios antes de empezar con la práctica, conteste a las preguntas siguientes: 1. ¿Cuál es el número máximo de particiones primarias o extendidas que se puede crear en un disco duro? 2. ¿Qué representa el fichero /dev/hdb6? a. La segunda partición lógica del segundo disco SCSI. b. La segunda partición lógica del disco maestro en el segundo controlador IDE. c. Un fichero ordinario. d. La segunda partición lógica del disco esclavo en el primer controlador IDE. © Editions ENI - Reproducción prohibida
34
Linux - Practique para administrar el sistema PRÁCTICAS TÉCNICAS
3. Nombrar diferentes unidades de tipo bloque. 4. ¿Qué tecnología(s) RAID permite(n) aumentar la fiabilidad de las unidades de almacenamiento? a. RAID Linear. b. RAID 0. c. RAID 1. d. RAID 5. 5. ¿En qué consiste LVM? 6. Un sistema de ficheros Unix puede estar saturado por culpa de: a. sólo por falta de bloques de datos. b. sólo por falta de inodos. c. sólo por falta de bloques de datos o inodos. d. no se puede saturar. 7. ¿Cómo visualizar el contenido de un disquete DOS bajo Linux? a. mdir a:. b. dir a:. c. mount -t vfat /dev/fd0 /mnt/floppy ; ls /mnt/floppy ; umount /dev/fd0. d. lsdos /mnt/floppy. Respuesta pág. 137
B
Enunciado 4.1: fdisk Duración estimativa: 20 minutos 1. Conectarse como root en una consola de texto. 2. Lanzar la herramienta de particionamiento fdisk. 3. Visualizar la lista de los comandos integrados a fdisk. 4. Visualizar la lista de las particiones actualmente definidas en el disco duro. 5. Pasar a modo experto y visualizar la lista de los comandos adicionales. 6. Visualizar de nuevo la tabla de particiones. 7. Volver al modo normal (menú principal). 8. ¿Cuáles son los códigos asociados a las particiones de tipo Linux, Intercambio Linux, Linux LVM y Detección auto RAID Linux? © Editions ENI - Reproducción prohibida
Gestión de los discos y sistemas de ficheros ENUNCIADOS DEL CAPÍTULO 4
35
9. Crear una nueva partición de tipo Linux de 300 MB en el segundo disco SCSI. 10. Modificar el tipo de la nueva partición en Linux LVM. 11. Suprimir la partición creada previamente. 12. Salir de fdisk sin guardar los cambios.
Pistas para el enunciado 4.1 2. Hay que especificar la unidad de disco al comando fdisk. 9. Utilizar el comando fdisk con el disco /dev/sdb. Respuesta pág. 138
C
Enunciado 4.2: RAID Duración estimativa: 20 minutos 1. Crear una nueva partición Non-FS data en los discos SCSI /dev/sdd, /dev/sde y /dev/sdf utilizando el conjunto del espacio disco presente para cada una. 2. Para que las nuevas particiones se tengan en cuenta en determinados sistemas, puede ser necesario reiniciar el sistema. Reiniciar y volver a conectarse como root en una consola texto. 3. Consultar la página de manual del comando mdadm, en particular la sección que detalla la creación de la matriz del RAID. 4. Crear un volumen RAID /dev/md0 de nivel 5 utilizando las tres particiones creadas previamente. 5. Visualizar el contenido del fichero /proc/mdstat varias veces hasta la reconstrucción total del volumen RAID.
Pistas para el enunciado 4.2 1. Crear las particiones con fdisk cambiando el tipo por defecto a da. 2. Esta etapa puede resultar necesaria para tener en cuenta las modificaciones realizadas en la tabla de las particiones. También se puede hacer utilizando la herramienta partprobe, eventualmente facilitada con la distribución. 4. Utilizar el comando mdadm.
© Editions ENI - Reproducción prohibida
36
Linux - Practique para administrar el sistema PRÁCTICAS TÉCNICAS
5. Durante la creación de un volumen RAID de nivel 5, mdadm genera un volumen "deteriorado" que será reconstruido de manera automática para acelerar esta operación de creación. Respuesta pág. 141
D
Enunciado 4.3: LVM Duración estimativa: 20 minutos 1. Crear una nueva partición Linux LVM en los discos SCSI /dev/sdb y /dev/sdc utilizando el conjunto del espacio disco presente para cada una. 2. Para que las nuevas particiones se tengan en cuenta en determinados sistemas, puede ser necesario reiniciar el sistema. Reiniciar y volver a conectarse como root en una consola texto. 3. Volver a detectar si necesario los volúmenes LVM ya existentes en el sistema. 4. Preparar las particiones creadas previamente para poder integrarlas luego a un grupo de volúmenes. 5. Visualizar los datos relativos al primer volumen físico creado. 6. Componer con estas dos particiones un grupo de volúmenes llamado VG0. Los campos físicos que constituyen este grupo de volúmenes deben tener un tamaño de 8 MB. 7. Visualizar los datos relativos al grupo de volúmenes VG0. 8. Crear un volumen lógico de 3 GB llamado LV0 a partir del grupo de volúmenes VG0. 9. Visualizar los datos relativos al volumen lógico LV0.
Pistas para el enunciado 4.3 1. Crear las particiones con fdisk cambiando el tipo por defecto en 8e. 2. Esta etapa puede resultar necesaria para que las modificaciones aportadas a la tabla de las particiones se tengan en cuenta. Se puede efectuar también usando la herramienta partprobe eventualmente facilitada con la distribución. 3. El comando vgscan permite detectar los volúmenes LVM existentes, revisando los diferentes discos conectados a la máquina. Además, este comando permite volver a construir los ficheros "cache" asociados a la gestión de LVM.
© Editions ENI - Reproducción prohibida
Gestión de los discos y sistemas de ficheros ENUNCIADOS DEL CAPÍTULO 4
37
4. Es necesario formatear las particiones con el comando pvcreate antes de integrarlos a un grupo de volúmenes. 5. Utilizar el comando pvdisplay. 6. Utilizar el comando vgcreate con la opción adecuada. 7. Utilizar el comando vgdisplay. 8. Utilizar el comando lvcreate con la opción adecuada. 9. Utilizar el comando lvdisplay. Respuesta pág. 144
E
Enunciado 4.4: Sistemas de ficheros ext2, ext3 y ReiserFS Duración estimativa: 40 minutos 1. Formatear la matriz RAID /dev/md0 en ext2 posicionando el tamaño de los bloques de datos a 1 KB y la relación bytes por inodo a 4 KB. 2. ¿Para qué sirve la opción -T del comando mke2fs? 3. Crear el directorio /mnt/raid. 4. Montar el sistema de ficheros creado previamente /mnt/raid. 5. Listar todos los montajes activos. 6. ¿Cómo se utiliza el espacio (bloques de datos e inodos) en /dev/md0? 7. Listar de manera detallada la arborescencia a partir del directorio /mnt/raid. 8. ¿Cuál es la utilidad del directorio lost+found? 9. Copiar el contenido del directorio /etc en /mnt/raid. 10. Desmontar el sistema de ficheros /dev/md0. 11. Convertir el sistema de ficheros /dev/md0 en ext3. 12. Montar el sistema de ficheros /dev/md0 en ext2. ¿Es posible? 13. Desmontar y volver a montar el sistema de ficheros /dev/md0 en ext3. 14. ¿Por qué los ficheros copiados previamente siguen presentes? 15. Crear ahora un sistema de ficheros ext3 en el volumen lógico LVM LV0. 16. Crear el directorio /mnt/lvm. 17. Montar el sistema de ficheros creado previamente /mnt/lvm. 18. Copiar el contenido del directorio /bin en /mnt/lvm. © Editions ENI - Reproducción prohibida
38
Linux - Practique para administrar el sistema PRÁCTICAS TÉCNICAS
19. Visualizar el tamaño del espacio utilizado por los bloques de datos en /mnt/lvm en MB. 20. Desmontar el sistema de ficheros y ampliar el volumen lógico LVM LV0 en 500 MB adicionales. 21. Volver a montar el sistema de ficheros LV0 y mirar de nuevo las estadísticas de utilización de los bloques de datos. ¿Ha cambiado? 22. Desmontar de nuevo, ampliar y volver a montar el sistema de ficheros LV0. 23. Comprobar las estadísticas de utilización de los bloques de datos. ¿Los ficheros copiados previamente siguen presentes? 24. Crear un nuevo volumen lógico LV1 en VGO de un tamaño de 400 MB, formatearlo en ReiserFS y montar el sistema de ficheros que resulta en el directorio /mnt/reiser.
Pistas para el enunciado 4.4 1. El tamaño de los bloques de datos y la relación bytes por inodo pueden ser fijados respectivamente con las opciones -b y -i del comando mke2fs. 2. Consultar la página de manual del comando. 4. Utilizar el comando mount con la opción adecuada. 5. Utilizar el comando mount. 6. Utilizar el comando df. 10. Utilizar el comando umount. 11. Utilizar el comando tune2fs con la opción adecuada. 15. Utilizar el comando mke2fs con la opción adecuada. 19. Utilizar el comando df con la opción adecuada. 20. Utilizar el comando lvextend con las opciones adecuadas. 22. Puede resultar necesario efectuar una comprobación del sistema de ficheros con el comando fsck antes de volver a dimensionarlo. Utilizar los comandos resize2fs y e2fsck. 24. Hace falta instalar el paquete software reiserfs-utils para poder utilizar el comando mkreiserfs. Respuesta pág. 146
© Editions ENI - Reproducción prohibida