Kitabı oku: «El gran libro de Debian GNU/Linux», sayfa 4
1.10.6. El argumento hd
Hace referencia al controlador estándar de discos duros, el cual acepta tres argumentos, “C/H/S”, lo cual se traduce en cilindros, cabeceras y sectores. Usted debe saber que este argumento no acepta ni más ni menos opciones, es decir, si usted necesitara pasar este argumento al núcleo (kernel) es preciso que indique las tres informaciones, de lo contrario no funcionará y, lo que es peor, el sistema no reportará ningún error.
La sintaxis de este argumento es la siguiente:
hd=cils,cabrs,sects
1.10.7. El argumento reserve
En algunas máquinas es necesario prevenir que los controladores de los dispositivos realicen chequeos en regiones específicas, debido a un mal diseño del hardware (dispositivo físico), lo que hace que el proceso de arranque presente fallas o hasta la congelación. Un ejemplo de estos dispositivos podrían ser las tarjetas de red. También para dispositivos mal identificados o simplemente los que no son deseables inicializar por el núcleo (kernel).
Este argumento permite identificar esa región y así indicarle al núcleo que la misma no debe probarse o inicializarse. Esta opción es muy poco usada ya que sólo es necesaria en casos especiales. A continuación, un ejemplo de un posible uso de este argumento:
reserve=0x300,32 expc=0x300
1.10.8. El argumento VGA
Otra opción importante que vale la pena destacar es el argumento VGA que también se muestra en el menú de opciones y parámetros especiales. Como ya sabemos no todos los ordenadores son iguales, tampoco lo son las pantallas, algunas poseen resoluciones especiales para programadores, donde la altura de la pantalla es más grande que la anchura porque es más cómodo para los programadores estudiar largos documentos de código con estos dispositivos. Pasando el parámetro correcto de VGA al momento del arranque nos aseguramos de que se pueda visualizar correctamente todo el contenido que se muestra por pantalla.
A continuación, en la Tabla 1.2 se muestran los respectivos códigos para distintas resoluciones de pantalla:
Tabla 1.2: Códigos para el ajuste de la resolución de pantalla a bajo nivel
De esta manera, podemos obtener la resolución deseada al momento del arranque. A pesar de que no es altamente necesario, si deseamos obtener la mejor resolución posible es muy útil, en caso de que no se detecte correctamente de manera automática. Distribuciones de Linux como Elive han hecho trabajos estupendos con su proceso de arranque creando un acabado bastante pulido en sus terminales lo que da una apariencia profesional y limpia, por supuesto la distribución previamente mencionada también está basada en Debian GNU/Linux.
1.10.9. El argumento console
El siguiente parámetro mencionado en el menú es “console”. Este parámetro permite fijar una consola serial de manera tal que si se llegara a presentar el caso de que necesitemos realizar tareas de mantenimiento, reparación o administración en un equipo que no disponga de teclado ni monitor, podamos accesar a él desde una consola remota, de la misma manera como se realizaría, por ejemplo, en enrutadores y conmutadores. La sintaxis de este argumento es la siguiente:
console=dispositivo,opciones
A continuación, en la Tabla 1.3 se le presentan posibles valores para el campo “dispositivo” de este argumento:
Tabla 1.3: Descripción de opciones para el argumento console
Dispositivo | Descripción |
tty0 | Para la consola virtual de primer plano. |
ttyX | Para cualquier otra consola virtual. |
ttySx | Para el puerto serial. |
lp0 | Para su primer puerto paralelo. |
ttyUSB0 | Para su primer dispositivo serial USB. |
Las opciones dependerán del dispositivo. Para el puerto serial puede declarar la velocidad de transmisión, la pariedad y el control de flujo del puerto en el siguiente formato “BBBBPNF”, donde “BBBB” es la velocidad, la “P” es la pariedad, “N” para el número de bits y la “F” es el control de flujo (‘r’ para RTS). La velocidad de transmisión máxima es de 115.200 baudios.
Por ejemplo:
console=ttyS1,9600 console=tty0
De esta manera, los mensajes del núcleo aparecerán en ambas, la consola VGA y en el puerto serial (ttyS1 o COM2) a 9600 baudios. Tenga en cuenta que sólo puede definir una sola consola por dispositivo de tipo serial. Pero no nos quedemos solo en palabras, aprendamos cómo crear una consola virtual en caso de que no queramos usar las que se encuentran disponibles.
De esta manera, podemos crear terminales virtuales y realizar las pruebas sin necesidad de correr riesgos. Cabe destacar que también existe un módulo en el núcleo de Linux (Kernel) llamado “netconsole” con este argumento podemos hacer lo mismo que con “console” sólo que vía red. Este módulo tiene la funcionalidad de la creación de registros (logs) y captura la mayor parte del proceso de arranque. La sintaxis de este módulo es la siguiente:
Observemos la Tabla 1.4 donde podremos apreciar una breve explicación sobre estas opciones:
Tabla 1.4: Descripción de opciones para el argumento netconsole
Opciones | Descripción |
src-port | Puerto UDP fuente (por defecto 6665). |
src-ip | Dirección IP de origen (dirección de interfaz). |
Dev | Nombre de la interfaz de red. |
tgt-port | Puerto objetivo (por defecto 6666). |
tgt-ip | Dirección IP para el programa de registro |
tgt-macaddr | Dirección MAC para el programa de registro (difusión) |
Ejemplo:
Pero no ha de contar con este argumento en la versión del núcleo (kernel) que se empaca con la imagen de sistema tipo “netinstall”, sólo luego de instalar el sistema base y de haber actualizado el núcleo (Kernel) podrá disponer de este módulo.
1.10.10. El argumento all_generic_ide
Este parámetro le indica el núcleo (kernel) que al cargar debe usar el controlador genérico para los dispositivos tipo IDE, se habilita igualando el argumento a “1”.
1.10.11. Los argumentos noapic/nolapic
Controlador avanzado de interrupciones programable (APIC). El argumento “noapic” hace referencia al uso de IO-APIC, mientras que el argumento “nolapic” se refiere al uso de APIC locales (alias para la compatibilidad con la arquitectura i386).
1.10.12. El argumento nousb
Como su nombre lo indica, desactiva todo soporte USB del núcleo (kernel), por lo tanto no es recomendable implementarla a menos que se le presenten errores con módulos como “usbcore”, “nls_cp437”, debido a que estos son necesarios para el uso de llaves USB, entre otros dispositivos que utilicen esta tecnología.
1.10.13. El argumento irqpoll
Antes de hablar sobre este parámetro entendamos primero de qué estamos hablando. ¿Qué es IRQ?, es un acrónimo que hace referencia a una petición de interrupción de un dispositivo. Esta petición puede ser recibida como un pin o como un paquete. Recordemos que varios dispositivos pueden estar conectados a un mismo pin y por ende comparten una IRQ.
Entonces, cuando una interrupción no es manejada o producida, “irqpoll” habilita la búsqueda en todos los controladores de interrupción para solventar el problema detectado, así como también comprobar todos los controladores en cada interrupción del reloj. Con ello se pretende detectar firmwares con problemas y así lograr una corrida limpia.
Con esto cubrimos la parte de opciones especiales que nos son presentadas en el menú del instalador de Debian en su versión “Netinstall”. Pero que esto no lo engañe, ya que existen muchas más opciones. A continuación mostraremos algunas de las más interesantes.
1.10.14. El argumento panic
Con este argumento podemos definir el número de segundos que deben pasar para que luego de un error en el núcleo de nivel “Kernel Panic” el computador pueda reiniciarse sin ninguna intervención. Esto también puede indicarse fuera del parámetro de arranque de la siguiente manera.
Ejemplo:
echo 10 > /proc/sys/kernel/panic
1.10.15. El argumento max_cpus
Con este argumento podemos especificar el número máximo de CPUs que un núcleo de tipo SMP puede usar, aun si hay más procesadores presentes en el sistema.
Ejemplo:
maxcpus=n
1.10.16. El argumento root
Este argumento le indica al núcleo qué dispositivo contiene el sistema de ficheros raíz. En otras palabras, digamos que usted posee otra instalación de Debian GNU/Linux, la cual cuenta con otro sistema de fichero raíz, usted puede indicar el nombre del dispositivo que contiene esa otra imagen, por ejemplo “/dev/sdaN”. Actualmente, en las últimas versiones del núcleo de Linux, se incorpora el uso de etiquetas para enmascarar los dispositivos, como por ejemplo:
root=UUID=ef51590a-0e4a-42bc-a6ac-25a38d6
En el capítulo 7 de este libro estudiaremos con un poco más de profundidad estas etiquetas y conoceremos el porqué de su existencia. Cabe destacar que usted puede cambiar el nombre de las etiquetas de sus dispositivos mediante el comando “e2label” o “tune2fs”.
1.10.17. El argumento rootdelay
Este argumento tiene la capacidad de fijar un número de segundos antes de que el sistema intente montar el punto raíz (/). Esto puede llegar a ser muy útil cuando dicho sistema de archivos se encuentra, por ejemplo, en una llave USB.
Ejemplo:
rootdelay=n
1.10.18. El argumento ro
Cuando el núcleo (kernel) realiza su proceso de arranque, necesita un sistema de archivos raíz para leer datos de suma importancia, de manera tal que monta dicho sistema de archivos en modo de solo lectura (read only) con la finalidad de que programas, como por ejemplo “fsck”, puedan arrancar y proceder de manera segura. Es altamente peligroso hacer esto en modo de lectura y escritura ya que podría ocasionar daños severos en el sistema de ficheros y, por ende, pérdida de datos. Usted podrá notar que una vez instalado su sistema, este parámetro es automáticamente establecido en la línea de arranque de “Grub” el gestor de arranque por defecto de Debian en la ruta y archivo “/boot/grub/menu.lst”.
Ejemplo:
1.10.19. El argumento quiet
Este argumento va de la mano con el “loglevel”, desactiva todos los mensajes que el núcleo del sistema está capacitado para reportar al momento del arranque y lo limita a sólo enviar mensajes realmente serios y críticos. El valor por defecto de este parámetro es el número 4, usted puede chequear en caliente el valor del “loglevel”, visualizando el archivo “printk” en la ruta “/proc/sys/kernel/”.
Ejemplo:
Como puede ver se encontrará con “4” dígitos, vamos a definirlos para alcanzar la mejor comprensión posible:
El primer dígito define el nivel de registro de la consola (console_loglevel) mientras más alto es el número, más cantidad de información recibirá en el arranque, el valor por defecto es “4”, sólo mensajes importantes serán mostrados.
El segundo dígito hace referencia a los mensajes por defecto (default_mesage_loglevel).
El tercer dígito es el valor mínimo (minimum_console_level) de la prioridad más alta que se puede fijar al registro de la consola de arranque.
El cuarto dígito es la prioridad por defecto para el registro de la consola (default_console_loglevel).
Para cambiar estos valores en caliente podemos ejecutar el siguiente comando:
#echo 7 7 7 7 > /proc/sys/kernel/printk
Y si queremos aún más información no olvidemos el argumento “earlyprintk” que muestra mensajes del núcleo que preceden a los de la tradicional “console”. Estos mensajes nunca son vistos a menos que se use esta opción, pueden ser mostrados vía VGA o en un dispositivo serial pero no al mismo tiempo. Quizás todo esto le suene muy abstracto y trivial, permítame ejemplificarlo de manera más sencilla, imagine lo siguiente, usted termina la instalación del sistema Debian o termina una actualización, llega el momento de arrancar o reiniciar y cuando lo hace incontrolables mensajes de error de detección de un dispositivo USB aparecen frente usted, los mismos no se detienen y no le permiten ver nada de lo que está pasando, no sólo eso, el sistema termina de cargar al punto de que llega el momento de introducir el usuario y contraseña para ingresar al sistema pero los mensajes no se detienen, de alguna manera usted logra introducirlos correctamente, entra al sistema y los mensajes continúan persistiendo sin parar, comienza el pánico y la frustración. En ese momento es donde el comando “echo 0 0 0 0 > /proc/sys/kernel/printk” acaba con la locura y restablece el orden natural de las cosas, es la forma de erradicarlos y volver al trabajo. Créame cuando le digo que no olvide este comando, podría ahorrarle muchas molestias.
1.10.20. El argumento initrd
El disco RAM inicial “initrd” es un sistema de archivos raíz que se monta antes de que el sistema de archivos raíz real esté disponible. El “initrd” se une al núcleo y se carga como parte del procedimiento de arranque. El núcleo entonces monta este “initrd” como parte de un proceso de dos etapas, para poder cargar los módulos necesarios para que, a su vez, los sistemas de archivos reales puedan ser cargados.
Este argumento es muy importante, digamos que más adelante usted decide que el kernel empaquetado en el disco de instalación de red de Debian no es suficiente o no detecta parte de sus dispositivos y decide que debe compilar un núcleo de sistema, el más nuevo disponible, deberá generar un disco RAM inicial para ese nuevo núcleo y con este parámetro usted podrá especificar la ubicación del mismo.
Ejemplo:
initrd /boot/initrd.img-2.6.26-2-686
Con esto es más que suficiente para cubrir esta área, pero no olvidemos que estos parámetros no son todos los disponibles, existen muchos más, sin embargo con los mencionados previamente usted ya está manejando información avanzada. Para conocer más sobre esto es recomendable acudir a la documentación del núcleo (kernel) de Linux.
Continuando con la revisión del menú de instalación, al presionar la tecla “F7” se nos muestra un menú con más opciones que se pueden pasar al arranque, esta vez netamente dedicadas a los controladores sobre discos duros, veamos más sobre estos argumentos. Estas opciones aplican a discos tipo IDE usted debe saber que en Linux los discos IDE son identificados mediante la nomenclatura “hdx” donde “x” puede ser “a”, “b”, “c” hasta la letra “h” mientras que los discos tipo SATA - SCSI son identificados bajo la nomenclatura “sdx” (sda, sdb, sdc), esto lo estudiaremos en profundidad más adelante, por ahora concentrémonos en los argumentos que podemos usar con respecto a estos dispositivos. En la Tabla 1.5 detallaremos las opciones con su respectiva descripción.
Tabla 1.5: Opciones de arranque para el tratado de discos duros tipo IDE
Opción | Descripción |
hdx=noprobe | El disco puede estar presente pero se indica que no se desea su prueba. |
hdx=none | El dispositivo no está presente, se ignoran indicaciones enviadas por el CMOS y no se comprueba la unidad. |
hdx=cdrom | El dispositivo está presente y es una unidad de CDROM. |
hdx=cilindros,cabeceras,sectores | El disco está presente y posee la siguiente geometría. |
hdx=autotune | Indica al controlador de la unidad que intente ajustar la velocidad óptima. |
Aunque sabemos que hoy en día los computadores no utilizan discos tipo IDE es importante saber estos parámetros ya que lo familiarizan con la forma de trabajo y el estilo de los sistemas basados en UNIX y Linux. Pasemos a la siguiente pantalla. Presionando la tecla “F8” podremos ver más opciones que se pueden pasar al núcleo al momento del arranque, esta vez dedicadas a la propia instalación del sistema.
1.10.21. El argumento fb
Este argumento hace referencia a la capa independiente de abstracción de vídeo de Linux (framebuffer), este parámetro le permite hacer uso de una interfaz genérica de vídeo a través de muchos dispositivos. En otras palabras, le permite tener una consola más rica en gráficos como, por ejemplo, el uso de colores, despliegue de imágenes, entre otros. Este argumento por defecto está habilitado, así que puede desactivarlo mediante:
fb=false
1.10.22. El argumento hw-detect/start_pcmcia
Este argumento le permite desactivar el intento de detección de sus dispositivos de tipo PCMCIA. Mediante:
hw-detect/start_pcmcia=false
1.10.23. El argumento netcfg/disable_dhcp
Permite desactivar el descubrimiento del servidor DHCP de su proveedor de Internet o red interna, si habilita esta opción el instalador le proporcionará una serie de diálogos donde se le solicitará que asigne una dirección IP, la máscara de subred, la puerta predeterminada de enlace, además del nombre del dominio y las direcciones del servidor DNS. Tenga toda esta información a la mano, si decide pasar este argumento al núcleo.
Ejemplo:
netcfg/disable_dhcp=true
1.10.24. El argumento bootkbd
Fija el mapeo del teclado, esto en realidad no es necesario que sea tratado en su línea de instalación ya que el mapa del teclado por defecto (ingles) le servirá sin problemas, luego podrá ser cambiado dentro del mismo instalador. Ejemplo:
bootkbd=es
1.10.25. El argumento desktop
Le permite fijar el entorno gráfico que desea instalar, las opciones “KDE”, “Lxde”, “Xfce” y el entorno gráfico “Gnome” el cual está seleccionado por defecto.
El resto de las opciones en el menú son para personas con impedimentos físicos, pero no indagaremos sobre estas opciones debido a que asumo que el lector no los posee.
Procedemos a revisar la siguiente pantalla, presionemos la tecla “F9”, esta pantalla nos informa dónde podemos conseguir ayuda. El proyecto Debian cuenta con muchísima documentación sin mencionar que muchas otras distribuciones de Linux están basadas en el sistema Debian, por ende puede que mucha de la documentación generada por esas otras distribuciones aplique también a Debian.
Siéntase libre de experimentar con todos los parámetros que sean necesarios para su sistema, tenga en mente que el instalador de Debian es bastante estable y maduro y lo más probable es que usted no necesite pasar argumentos al núcleo.
Muy bien, no más teoría es hora de la acción, vamos a instalar el sistema base. Para comenzar podría sugerirle la siguiente línea para disparar el instalador:
/install.386/vmlinuz vga=789 initrd=/install.386/initrd.gz –quiet
Esta línea aplica a la imagen de sistema diseñada para la arquitectura i386, disparará el instalador en modo texto a nivel normal y con una agradable resolución de “800x600”. Si lo desea simplemente presione la tecla de entrada en la opción del menú principal “Install”.