#1 Tuto Linux Capitulo 4/9 (Nivelador)
Módulo IV
(Nivelador)
Introducción
En este módulo se estudiará Linux entrando a un nivel más avanzado, donde se verán ciertos aspectos del sistema operativo, que nivelan al asistente para permitirle comprender más fácilmente los módulos siguientes.
Servicios del sistema operativo
Linux, como todos los Unix, es un sistema multi tarea, esto le permite mantener corriendo varios procesos simultáneamente. Los servicios del sistema operativo son generalmente demonios o procesos que están corriendo "en background" (sin interactuar directamente con un usuario o terminal). Estos demonios brindan diferentes servicios. Todos estos servicios se pueden activar y desactivar sin tener que apagar o reiniciar el equipo. Esto es una característica esencial en equipos que debe estar encendidos las 24 horas del día, los 365 días del año.
Linux nos da diferentes formas de activar y desactivar estos servicios. La forma que esta en todos los Linux (y también en la mayoría de los UNIX) es via shell scripts de rc.
Scripts de "rc"
Los scripts de "rc", son shell scripts que permiten al administrador activar y desactivar servicios que brinda el sistema operativo. Cada uno de estos scripts representa un servicio específico.
Jerarquía de directorios ("rc")
En RedHat Linux encontraremos la siguiente jerarquía de directorios. Esta jerarquía es muy parecida a todas las distribuciones de Linux, pero existen algunas diferencias.
/etc/rc.d/
/init.d
/rc0.d
/rc1.d
/rc2.d
/rc3.d
/rc4.d
/rc5.d
/rc6.d
Como se puede observar la mayoría de los directorios contienen un número, este número representa el "run-level" o nivel de corrida. Como se ha visto en el módulo I de este curso, cada run-level define los servicios que se levantarán en esa sesión.
Los scripts que hay dentro de cada uno de estos directorios definen estos servicios.
El directorio /etc/rc.d/init.d es el que contiene todos los scripts
de "rc". En este directorio generalmente se encontrarán nombres de archivos que hagan referencia al servicio que activan/desactivan. Por ejemplo "network" (script para activar el servicio de red).Por otro lado, en cada directorio "rc<número>.d" se encontrarán nombres de archivos con una connotación especial. En la mayoría de los casos los servicios dependen de que este corriendo alguno otro, para que trabajen normalmente. Por ejemplo el servicio de "web-server" no puede funcionar si el servicio de red no esta corriendo. Para resolver esta problemática, se estipulo una forma de lograr que los scripts se ejecuten en un orden específico. Esto se logra con los nombres de los archivos. Por ejemplo, el script S01network se ejecutará antes que el S34httpd (alfabéticamente, el nombre de archivo S01network es anterior al S34httpd).
Uso
Todos los scripts de "rc" reciben como parámetro un argumento "start" o "stop" dependiendo si se desea activar o desactivar el servicio.
Ejemplo:
•/etc/rc.d/init.d/httpd start (activa el servicio de httpd)
•/etc/rc.d/init.d/httpd stop (desactiva el servicio de httpd)
Existen algunos scripts que se les puede pasar como argumento (además de "start" y "stop"), "restart", que reinicia el servicio. Esto es especialmente util cuando hacemos un simple cambio en un archivo de configuración y solamente queremos hacerlos efectivos. (y de paso, ahorrarnos un comando).
Administración de crontbs
El servicio de crontab permite definir tareas para que sean ejecutadas en un momento especifico en el tiempo (por ejemplo a las 14:00 hrs., todos los Martes).
Este servicio es muy útil para realizar tareas de mantenimiento como copias de respaldo (backups), verificación del equipo o estadísticas de uso.
Cada usuario puede definir sus propias tareas, y dichas tareas se ejecutaran con los privilegios del usuario que las definió.
Comando crontab
Las tareas que se activarán en el crontab se realizan a través de un comando llamado "crontab".
Comando: crontab
Uso: crontab [opciones] [usuario]
Descripción:
Permite ver o editar las tareas del crontab
Opciones:
"-l": lista el contenido de la tabla de tareas
"-e": edita el contenido de la tabla de tareas
"-u": Requiere la especificación de un usuario y permite modificar las tareas del usuario referencia (siempre y en cuanto se tengan permisos)
Cuando se ejecute "crontab -e" podremos modificar la tabla de tareas, para editarla se invocará al comando que existe en la variable $EDITOR o al editor "vi".
Formato de la tabla de tareas (crontab)
Minutos (0-59) Hora (0-23) Día del Mes (1-31) Mes (1-12) Día de la semana (0-7) Comando
Se pueden utilizar asteriscos (*) para especificar "todos" (ejemplo: todos los días de la semana), guiones para especificar rangos (ejemplo: de Domingo a Miércoles, 0-3) o comas para momentos exactos (ejemplo: a los 0, 10 y 30 minutos, "0,10,30")
Ejemplos:
0 * * * * /usr/local/bin/updatedb.sh (cuando el reloj maque minutos en 0, ejecutar el shell script /usr/local/bin/updatedb.sh, todas las horas, todos los días del mes, todos los meses y todos los días de la semana)
0 0 * * 1 /usr/local/bin/mail-stat.sh (a las doce de la noche, todos los Lunes se ejecuta el programa que saca estadísticas de correos enviados)
Directorios de crontab
El usuario "root" tiene la posibilidad de utilizar ciertos directorios para ejecutar tareas de cron, además de trabajar con el comando "crontab -e".
•/etc/cron.hourly
En este directorio se pueden ubicar shell scripts que serán ejecutados a cada hora ("hourly": del inglés "todos las horas"). Los shell scripts que se copien a este directorio deberán tener permisos de ejecución.
•/etc/cron.daily
En este directorio se pueden ubicar shell scripts que serán ejecutados diariamente ("daily": del inglés "todos los días"). Los shell scripts que se copien a este directorio deberán tener permisos de ejecución.
•/etc/cron.weekly
En este directorio se pueden ubicar shell scripts que serán ejecutados una vez por semana ("weekly": del inglés "todos las semanas"). Los shell scripts que se copien a este directorio deberán tener permisos de ejecución.
•/etc/cron.monthly
En este directorio se pueden ubicar shell scripts que serán ejecutados una vez por mes ("monthly": del inglés "todos los meses"). Los shell scripts que se copien a este directorio deberán tener permisos de ejecución.
A decir verdad, en el crontab de root estan las definiciones para ejecutar las tareas contenidas en estos directorios. No es una funcion interna del crontab, sino una simple definición.
Filtros
Los filtros son muy utilizados en Linux y sirven para acotar o cambiar texto plano. Con los filtros, se puede atrapar la salida estándar de un comando y manipularla con mucha flexibilidad. Esto se utiliza mucho cuando se administra un equipo, ya que generalmente se necesita cambiar la información que devuelven los comandos estándares a algo más comprensible para el usuario final.
Algunos ejemplos podrían ser:
•Revisar el archivo /var/log/maillog (archivo de monitoreo del servicio de correo electrónico) para armar una estadística de cuantos correos se envían o reciben diariamente, semanalmente y por mes.
•Monitorear constantemente el archivo /var/log/secure para avisar al administrador cuando se produce algún ataque externo.
•Manipular la salida del comando "ps" (listado de procesos) para hacer un reporte de carga diaria del sistema.
•Etcétera.
Grep
Comando: "grep"
Uso: grep <patrón> [archivos...]
Descripción:
El comando grep examina los archivos nombrados o la entrada estándar y muestra en pantalla cada línea que contenga un caso de <patrón>. grep es de gran utilidad para encontrar ocurrencias de variables en programas o palabras en documentos; también sirve para seleccionar partes de la salida de un programa:
Opciones:
"-i": trata mayúsculas y minúsculas como caracteres iguales
"-l": muestra en pantalla el nombre del archivo donde se encontró el patrón (en vez de la línea que contiene este patrón)
"-v": muestra en pantalla todas las líneas (excepto las que contengan el patrón buscado, modo inverso al default).
Ejemplos:
# grep "From:" $MAIL (muestra en pantalla todos los remitentes de los correos que haya en nuestra casilla)
# grep "From:" $MAIL | grep -v pedro (muestra en pantalla los remitentes de todos los correos que tengamos en nuestra casilla, excepto los que los envió pedro)
# who | grep "root" (Comprueba si el usuario "root" está logueado en el sistema)
# ps aux | grep "root" | grep -v grep (muestra en pantalla el listado de procesos del usuario root, sin mostrar la ejecución de nuestro comando grep (util si somos root y no queremos falsos resultados).
Existen más filtros en Linux, entre ellos se destacan "awk" y "sed", pero dada la complejidad de los mismos, no se verán en este curso. Existe una versión de grep diseñada para redes: es el ngrep.
Compilación
La compilación es el proceso que se le aplica a los archivos de texto que escribió un programador (con una sintaxis específica llamada "lenguaje de programación") para que los mismos se conviertan en archivos "binarios" (formato que entiende la computadora).
Comando: "make"
Uso: make [opciones] [seccion-Makefile]
Descripción:
Este comando se utiliza para compilar, linkeditar e instalar un programa que requiera de la compilación de varios fuentes (archivos .c).
Generalmente, un programa medianamente grande, se integra de una biblioteca de funciones propias, y varios fuentes. El make conoce en qué orden de secuencia debe compilar todos estos fuentes y dónde debe instalarlos para que el usuario utilice el programa recién compilado.
Comando: "gcc"
Uso: gcc [opciones] <archivo.c>
Descripción:
Este comando compila y linkedita los programas.
Opciones:
"-I": directorio que utilizará para buscar los archivos .h (headers)
"-L": directorio donde buscará las bibliotecas para linkeditar
"-l": nombre de la biblioteca a utilizar (sin las primeras 3 letras "lib")
Ejemplo:
# gcc -I /usr/local/include -L /usr/local/lib -lmath *.c
Kernel
Introducción
El kernel o núcleo es el corazón del sistema operativo, más bien es el sistema operativo en sí mismo. Todo lo que no sea el kernel se lo llama aplicación, en el caso de Linux, el 95% de las aplicaciones son GNU.
El núcleo se encarga de manejar una infinidad de cosas, entre ellas están, manejo de memoria, periféricos, procesos, paquetes de red, todo el hardware en general, etc., etc.
Generalmente, los núcleos que vienen pre-compilados en las distribuciones más grandes, se adaptan a la mayoría de las instalaciones, pero existen casos donde se hace necesario compilar e instalar un núcleo nuevo. Las razones pueden ser variadas, pero la mayoría de las veces es porque se necesita una versión más modera del núcleo (con problemas solucionados) o se instala un nuevo hardware que no esta contemplado en el núcleo de la distribución.
Compilando el Kernel
En caso de querer compilar sobre Red Hat 7.0 ver la aclaración al final del documento.
Poner la tarball (linux-2.4.0.tar.gz) en el directorio /tmp
cd /usr/src
rm linux
tar xzvf /tmp/linux-2.4.0.tar.gz
mv linux linux-2.4.0
ln -s linux-2.4.0linux
cd /usr/src/linux
make mrproper
make xconfig # si estamos en entorno gráfico (recomendado!)
# puede usarse make menuconfig o make config (NO recomendado)
make dep
make clean
make bzImage
# ir a tomar cafe (mucho cafe)
make modules
make modules_install
cp /usr/src/linux-2.4.0/arch/i386/boot/bzImage /boot/vmlinuz-2.4.0
# ojo, en la línea anterior es vmlinuz (con z al final)
cp /usr/src/linux-2.4.0/System.map /boot/System.map-2.4.0
cd /boot
rm System.map
ln -s System.map-2.4.0System.map
RAMDISK inicial (NO es requerido usualmente en Red Hat Linux)
mkinitrd /boot/initrd-2.4.0.img 2.4.0
Setup del LILO
Agregar lo siguiente a /etc/lilo.conf
image=/boot/vmlinuz-2.4.0label=new
root=/dev/hda1 # reemplazar por la partición root correcta en tu sistema
# ver la parte del lilo.conf correspondiente al kernel ACTUAL para
# saber cuál es la partición root que se está utilizando
#
# en caso de haber creado el RAMDISK inicial
# eliminar el comentario de la siguiente línea
#initrd=/boot/initrd-2.4.0.img
read-only
Ejecutar lilo -t
y si no tira ningún error ejecutar lilo -v
y rebootear la máquina.
OPCIONAL: crear un nuevo rescue disk (RECOMENDADO!!!)
mkbootdisk --device /dev/fd0 2.4.0
- - - - -
En Red Hat 7.0 es necesario modificar el archivo Makefile luego de descompactar la tarball, en la siguiente línea, que es la que se encarga de indicar el compilador a utilizar:
CC =($CROSSCOMPILE)gcc ... etc ... etc ...
Debe quedar así (es todo la misma línea):
CC :=$(shell if which $(CROSS_COMPILE)kgcc > /dev/null 2>&1; then echo $(CROSS_COMPILE)kgcc; else echo $(CROSS_COMPILE)gcc; fi) -D__KERNEL__ -I$(HPATH)
Parches. Instalación de "Parches" Patch.
zcat /tmp/patch-2.4.1 | patch - pØ
Para ver los mensajes que aparecen durante el booteo.
Tenes que escribir el siguiente comando:
dmesg | less (less es una version de more que permite moverse hacia atrras)
Indice
Módulo IV (Nivelador) 1
Introducción 1
Servicios del sistema operativo 2
Scripts de "rc" 2
Filtros 4
Grep 5
Compilación 5
Kernel 6
Introducción 6
Parches. Instalación de "Parches" Patch. 8
Que lo disfruten!!!!!!!!!
Saludos
Sir Tingal0
UIN:92565677
(Nivelador)
Introducción
En este módulo se estudiará Linux entrando a un nivel más avanzado, donde se verán ciertos aspectos del sistema operativo, que nivelan al asistente para permitirle comprender más fácilmente los módulos siguientes.
Servicios del sistema operativo
Linux, como todos los Unix, es un sistema multi tarea, esto le permite mantener corriendo varios procesos simultáneamente. Los servicios del sistema operativo son generalmente demonios o procesos que están corriendo "en background" (sin interactuar directamente con un usuario o terminal). Estos demonios brindan diferentes servicios. Todos estos servicios se pueden activar y desactivar sin tener que apagar o reiniciar el equipo. Esto es una característica esencial en equipos que debe estar encendidos las 24 horas del día, los 365 días del año.
Linux nos da diferentes formas de activar y desactivar estos servicios. La forma que esta en todos los Linux (y también en la mayoría de los UNIX) es via shell scripts de rc.
Scripts de "rc"
Los scripts de "rc", son shell scripts que permiten al administrador activar y desactivar servicios que brinda el sistema operativo. Cada uno de estos scripts representa un servicio específico.
Jerarquía de directorios ("rc")
En RedHat Linux encontraremos la siguiente jerarquía de directorios. Esta jerarquía es muy parecida a todas las distribuciones de Linux, pero existen algunas diferencias.
/etc/rc.d/
/init.d
/rc0.d
/rc1.d
/rc2.d
/rc3.d
/rc4.d
/rc5.d
/rc6.d
Como se puede observar la mayoría de los directorios contienen un número, este número representa el "run-level" o nivel de corrida. Como se ha visto en el módulo I de este curso, cada run-level define los servicios que se levantarán en esa sesión.
Los scripts que hay dentro de cada uno de estos directorios definen estos servicios.
El directorio /etc/rc.d/init.d es el que contiene todos los scripts
de "rc". En este directorio generalmente se encontrarán nombres de archivos que hagan referencia al servicio que activan/desactivan. Por ejemplo "network" (script para activar el servicio de red).Por otro lado, en cada directorio "rc<número>.d" se encontrarán nombres de archivos con una connotación especial. En la mayoría de los casos los servicios dependen de que este corriendo alguno otro, para que trabajen normalmente. Por ejemplo el servicio de "web-server" no puede funcionar si el servicio de red no esta corriendo. Para resolver esta problemática, se estipulo una forma de lograr que los scripts se ejecuten en un orden específico. Esto se logra con los nombres de los archivos. Por ejemplo, el script S01network se ejecutará antes que el S34httpd (alfabéticamente, el nombre de archivo S01network es anterior al S34httpd).
Uso
Todos los scripts de "rc" reciben como parámetro un argumento "start" o "stop" dependiendo si se desea activar o desactivar el servicio.
Ejemplo:
•/etc/rc.d/init.d/httpd start (activa el servicio de httpd)
•/etc/rc.d/init.d/httpd stop (desactiva el servicio de httpd)
Existen algunos scripts que se les puede pasar como argumento (además de "start" y "stop"), "restart", que reinicia el servicio. Esto es especialmente util cuando hacemos un simple cambio en un archivo de configuración y solamente queremos hacerlos efectivos. (y de paso, ahorrarnos un comando).
Administración de crontbs
El servicio de crontab permite definir tareas para que sean ejecutadas en un momento especifico en el tiempo (por ejemplo a las 14:00 hrs., todos los Martes).
Este servicio es muy útil para realizar tareas de mantenimiento como copias de respaldo (backups), verificación del equipo o estadísticas de uso.
Cada usuario puede definir sus propias tareas, y dichas tareas se ejecutaran con los privilegios del usuario que las definió.
Comando crontab
Las tareas que se activarán en el crontab se realizan a través de un comando llamado "crontab".
Comando: crontab
Uso: crontab [opciones] [usuario]
Descripción:
Permite ver o editar las tareas del crontab
Opciones:
"-l": lista el contenido de la tabla de tareas
"-e": edita el contenido de la tabla de tareas
"-u": Requiere la especificación de un usuario y permite modificar las tareas del usuario referencia (siempre y en cuanto se tengan permisos)
Cuando se ejecute "crontab -e" podremos modificar la tabla de tareas, para editarla se invocará al comando que existe en la variable $EDITOR o al editor "vi".
Formato de la tabla de tareas (crontab)
Minutos (0-59) Hora (0-23) Día del Mes (1-31) Mes (1-12) Día de la semana (0-7) Comando
Se pueden utilizar asteriscos (*) para especificar "todos" (ejemplo: todos los días de la semana), guiones para especificar rangos (ejemplo: de Domingo a Miércoles, 0-3) o comas para momentos exactos (ejemplo: a los 0, 10 y 30 minutos, "0,10,30")
Ejemplos:
0 * * * * /usr/local/bin/updatedb.sh (cuando el reloj maque minutos en 0, ejecutar el shell script /usr/local/bin/updatedb.sh, todas las horas, todos los días del mes, todos los meses y todos los días de la semana)
0 0 * * 1 /usr/local/bin/mail-stat.sh (a las doce de la noche, todos los Lunes se ejecuta el programa que saca estadísticas de correos enviados)
Directorios de crontab
El usuario "root" tiene la posibilidad de utilizar ciertos directorios para ejecutar tareas de cron, además de trabajar con el comando "crontab -e".
•/etc/cron.hourly
En este directorio se pueden ubicar shell scripts que serán ejecutados a cada hora ("hourly": del inglés "todos las horas"). Los shell scripts que se copien a este directorio deberán tener permisos de ejecución.
•/etc/cron.daily
En este directorio se pueden ubicar shell scripts que serán ejecutados diariamente ("daily": del inglés "todos los días"). Los shell scripts que se copien a este directorio deberán tener permisos de ejecución.
•/etc/cron.weekly
En este directorio se pueden ubicar shell scripts que serán ejecutados una vez por semana ("weekly": del inglés "todos las semanas"). Los shell scripts que se copien a este directorio deberán tener permisos de ejecución.
•/etc/cron.monthly
En este directorio se pueden ubicar shell scripts que serán ejecutados una vez por mes ("monthly": del inglés "todos los meses"). Los shell scripts que se copien a este directorio deberán tener permisos de ejecución.
A decir verdad, en el crontab de root estan las definiciones para ejecutar las tareas contenidas en estos directorios. No es una funcion interna del crontab, sino una simple definición.
Filtros
Los filtros son muy utilizados en Linux y sirven para acotar o cambiar texto plano. Con los filtros, se puede atrapar la salida estándar de un comando y manipularla con mucha flexibilidad. Esto se utiliza mucho cuando se administra un equipo, ya que generalmente se necesita cambiar la información que devuelven los comandos estándares a algo más comprensible para el usuario final.
Algunos ejemplos podrían ser:
•Revisar el archivo /var/log/maillog (archivo de monitoreo del servicio de correo electrónico) para armar una estadística de cuantos correos se envían o reciben diariamente, semanalmente y por mes.
•Monitorear constantemente el archivo /var/log/secure para avisar al administrador cuando se produce algún ataque externo.
•Manipular la salida del comando "ps" (listado de procesos) para hacer un reporte de carga diaria del sistema.
•Etcétera.
Grep
Comando: "grep"
Uso: grep <patrón> [archivos...]
Descripción:
El comando grep examina los archivos nombrados o la entrada estándar y muestra en pantalla cada línea que contenga un caso de <patrón>. grep es de gran utilidad para encontrar ocurrencias de variables en programas o palabras en documentos; también sirve para seleccionar partes de la salida de un programa:
Opciones:
"-i": trata mayúsculas y minúsculas como caracteres iguales
"-l": muestra en pantalla el nombre del archivo donde se encontró el patrón (en vez de la línea que contiene este patrón)
"-v": muestra en pantalla todas las líneas (excepto las que contengan el patrón buscado, modo inverso al default).
Ejemplos:
# grep "From:" $MAIL (muestra en pantalla todos los remitentes de los correos que haya en nuestra casilla)
# grep "From:" $MAIL | grep -v pedro (muestra en pantalla los remitentes de todos los correos que tengamos en nuestra casilla, excepto los que los envió pedro)
# who | grep "root" (Comprueba si el usuario "root" está logueado en el sistema)
# ps aux | grep "root" | grep -v grep (muestra en pantalla el listado de procesos del usuario root, sin mostrar la ejecución de nuestro comando grep (util si somos root y no queremos falsos resultados).
Existen más filtros en Linux, entre ellos se destacan "awk" y "sed", pero dada la complejidad de los mismos, no se verán en este curso. Existe una versión de grep diseñada para redes: es el ngrep.
Compilación
La compilación es el proceso que se le aplica a los archivos de texto que escribió un programador (con una sintaxis específica llamada "lenguaje de programación") para que los mismos se conviertan en archivos "binarios" (formato que entiende la computadora).
Comando: "make"
Uso: make [opciones] [seccion-Makefile]
Descripción:
Este comando se utiliza para compilar, linkeditar e instalar un programa que requiera de la compilación de varios fuentes (archivos .c).
Generalmente, un programa medianamente grande, se integra de una biblioteca de funciones propias, y varios fuentes. El make conoce en qué orden de secuencia debe compilar todos estos fuentes y dónde debe instalarlos para que el usuario utilice el programa recién compilado.
Comando: "gcc"
Uso: gcc [opciones] <archivo.c>
Descripción:
Este comando compila y linkedita los programas.
Opciones:
"-I": directorio que utilizará para buscar los archivos .h (headers)
"-L": directorio donde buscará las bibliotecas para linkeditar
"-l": nombre de la biblioteca a utilizar (sin las primeras 3 letras "lib")
Ejemplo:
# gcc -I /usr/local/include -L /usr/local/lib -lmath *.c
Kernel
Introducción
El kernel o núcleo es el corazón del sistema operativo, más bien es el sistema operativo en sí mismo. Todo lo que no sea el kernel se lo llama aplicación, en el caso de Linux, el 95% de las aplicaciones son GNU.
El núcleo se encarga de manejar una infinidad de cosas, entre ellas están, manejo de memoria, periféricos, procesos, paquetes de red, todo el hardware en general, etc., etc.
Generalmente, los núcleos que vienen pre-compilados en las distribuciones más grandes, se adaptan a la mayoría de las instalaciones, pero existen casos donde se hace necesario compilar e instalar un núcleo nuevo. Las razones pueden ser variadas, pero la mayoría de las veces es porque se necesita una versión más modera del núcleo (con problemas solucionados) o se instala un nuevo hardware que no esta contemplado en el núcleo de la distribución.
Compilando el Kernel
En caso de querer compilar sobre Red Hat 7.0 ver la aclaración al final del documento.
Poner la tarball (linux-2.4.0.tar.gz) en el directorio /tmp
cd /usr/src
rm linux
tar xzvf /tmp/linux-2.4.0.tar.gz
mv linux linux-2.4.0
ln -s linux-2.4.0linux
cd /usr/src/linux
make mrproper
make xconfig # si estamos en entorno gráfico (recomendado!)
# puede usarse make menuconfig o make config (NO recomendado)
make dep
make clean
make bzImage
# ir a tomar cafe (mucho cafe)
make modules
make modules_install
cp /usr/src/linux-2.4.0/arch/i386/boot/bzImage /boot/vmlinuz-2.4.0
# ojo, en la línea anterior es vmlinuz (con z al final)
cp /usr/src/linux-2.4.0/System.map /boot/System.map-2.4.0
cd /boot
rm System.map
ln -s System.map-2.4.0System.map
RAMDISK inicial (NO es requerido usualmente en Red Hat Linux)
mkinitrd /boot/initrd-2.4.0.img 2.4.0
Setup del LILO
Agregar lo siguiente a /etc/lilo.conf
image=/boot/vmlinuz-2.4.0label=new
root=/dev/hda1 # reemplazar por la partición root correcta en tu sistema
# ver la parte del lilo.conf correspondiente al kernel ACTUAL para
# saber cuál es la partición root que se está utilizando
#
# en caso de haber creado el RAMDISK inicial
# eliminar el comentario de la siguiente línea
#initrd=/boot/initrd-2.4.0.img
read-only
Ejecutar lilo -t
y si no tira ningún error ejecutar lilo -v
y rebootear la máquina.
OPCIONAL: crear un nuevo rescue disk (RECOMENDADO!!!)
mkbootdisk --device /dev/fd0 2.4.0
- - - - -
En Red Hat 7.0 es necesario modificar el archivo Makefile luego de descompactar la tarball, en la siguiente línea, que es la que se encarga de indicar el compilador a utilizar:
CC =($CROSSCOMPILE)gcc ... etc ... etc ...
Debe quedar así (es todo la misma línea):
CC :=$(shell if which $(CROSS_COMPILE)kgcc > /dev/null 2>&1; then echo $(CROSS_COMPILE)kgcc; else echo $(CROSS_COMPILE)gcc; fi) -D__KERNEL__ -I$(HPATH)
Parches. Instalación de "Parches" Patch.
zcat /tmp/patch-2.4.1 | patch - pØ
Para ver los mensajes que aparecen durante el booteo.
Tenes que escribir el siguiente comando:
dmesg | less (less es una version de more que permite moverse hacia atrras)
Indice
Módulo IV (Nivelador) 1
Introducción 1
Servicios del sistema operativo 2
Scripts de "rc" 2
Filtros 4
Grep 5
Compilación 5
Kernel 6
Introducción 6
Parches. Instalación de "Parches" Patch. 8
Que lo disfruten!!!!!!!!!
Saludos
Sir Tingal0
UIN:92565677
0