Ir al contenido

Buscar en La Comunidad

Mostrando resultados por etiquetas 'initrd'.

  • Buscar Por Etiquetas

    Añade etiquetas separadas por comas.
  • Buscar Por Autor

Tipo de Contenido


Foros

  • Contacto con el staff
    • Novedades / Anuncios del foro
    • Sugerencias
    • Problemas relacionados con el foro
  • Zona general de charla
    • Presentaciones
    • Charla
    • Zona de Humor, Curiosidades y Otros
    • Mascotas Vagos
    • Noticias del Mundo
    • Tecnología
    • Ayuda y consultas de carácter general
  • Zona GNU/Linux
    • Ayuda, consultas y soporte GNU/Linux
    • Distribuciones GNU/Linux
    • Repositorios. Software GNU/Linux
    • Personalización
    • Raspberry Pi
    • Arduino
    • Manuales / Tutoriales / Guías GNU/Linux
    • Programación
    • Noticias GNU/Linux
    • Hablando de GNU/Linux
  • Zona Gaming
    • Juegos GNU/Linux
    • Noticias Gamer
    • Charla Gamer
  • Zona Móvil
    • Ayuda y soporte para dispositivos móviles
    • Apps Móviles
    • Manuales / Tutoriales / Guías Móviles
    • Roms para dispositivos Móviles
    • Noticias sobre dispositivos Móviles
    • Hablando sobre dispositivos Móviles
  • Zona Mozilla
    • Ayuda, consultas y soporte Mozilla
    • Aplicaciones Mozilla
    • Roms Firefox OS
    • Manuales / Tutoriales / Guías Mozilla
    • Noticias Mozilla
    • Hablando de Mozilla
  • Microsoft
    • Papelera del Foro

Encontrar resultados en...

Encontrar resutados que...


Fecha de Creación

  • Start

    Fin


Última Actualización

  • Start

    Fin


Filtrar por numero de...

Joined

  • Start

    Fin


Grupo


Página Web


Diaspora


Pump


GNU Social


Google +


Twitter


Facebook


Xmpp


Skype


Steam


Desura


MediaGoblin


Youtube


Vimeo


Picasa


Flickr


Email


Lugar


Intereses

Encontramos 1 resultado

  1. Hacía tiempo que quería escribir algo parecido, pero he de reconocer que me había olvidado por completo y hasta hoy no me ha venido de nuevo a la memoria y viendo que hay por ahí quien ya se me ha adelantado ¿Por qué no? El initrd (Init Ram Disc) o, en la actualidad, initramfs, es un sistema temporal de archivos utilizado durante el arranque del sistema y tiene como misión cargar en ram aquellos módulos y otros elementos necesarios para el arranque del sistema y que son necesarios antes de que haya sido montado el directorio raíz. Es decir, suministra al kernel aquellos módulos que no han sido incluido en él pero que son necesarios para poder arrancar el equipo. Sin embargo, puede ocurrir que las imágenes de arranque por defecto de un disco de instalación, en este ejemplo Debian, no tengan los módulos que necesitamos para que el sistema arranque o que no lo haga como es debido, así que no nos queda otra que remangarnos y poner manos a la obra No me voy a parar a describir el proceso de compilación de módulos del kernel, eso es otro tema, sólo la parte que corresponde a la modificación de la imagen y posterior "reempaquetado". COmpilar Kernels y módulos ya lo hemos tratado antes: Como era de esperar, necesitaremos la imagen o imágenes de arranque para poder trabajar con ellas. Lo habitual es que estén incluidas en la imagen iso de Debian, pero la versión más reciente y actualizada la encontraremos también en la ftp de Debian junto con dichas imágenes de instalación. En este caso me interesan las imágenes de arranque de una Debian Testing Amd64, por lo que me voy a buscar las imágenes del installer-amd64 actuales http://ftp.debian.org/debian/dists/testing/main/installer-amd64/current/images/ Vemos que aquí tenemos 3 opciones distintas Neetbot Cdrom Hd-media Depende de la imagen de instalación que queramos modificar, nos decantaremos por una o por otra. Yo me iré a por la Netboot, que me hace ilusión axel http://ftp.de.debian.org/debian/dists/testing/main/installer-amd64/current/images/netboot/debian-installer/amd64/initrd.gz axel http://ftp.de.debian.org/debian/dists/testing/main/installer-amd64/current/images/netboot/debian-installer/amd64/linux Vemos que me he descargado ambas, tanto la imagen de Linux como la initrd.img Descomprimirla para trabajar con ella no requerirá demasiado esfuerzo, pero puede no resultar tan intuitivo como cabría esperar, ya que se trata de una archivo cpio comprimido y teniendo en cuenta que nos va a descomprimir un gran número de directorios separados, lo mejor que podemos hacer es trabajar dentro de una carpeta aislada para no volvernos locos después. mkdir initrd cp initrd.gz initrd cd initrd gzip -cd initrd.gz | cpio -id El resultado de descomprimir la imagen será parecido al directorio raíz de un sistema instalado root@Shiba:/home/shiba/initrd# ls -la total 24240 drwxr-xr-x 17 shiba shiba 4096 abr 21 12:35 . drwxr-xr-x 36 shiba shiba 24576 abr 21 12:34 .. drwxr-xr-x 2 root root 4096 abr 21 12:35 bin drwxr-xr-x 2 root root 4096 abr 21 12:36 dev drwxr-xr-x 12 root root 4096 abr 21 12:35 etc -rwxr-xr-x 1 shiba shiba 456 abr 21 12:35 init drwxr-xr-x 2 root root 4096 abr 21 12:35 initrd -rw-r--r-- 1 shiba shiba 24719513 abr 21 12:34 initrd.gz drwxr-xr-x 14 root root 4096 abr 21 12:35 lib drwxrwxr-x 2 root root 4096 abr 21 12:35 lib64 drwxr-xr-x 2 root root 4096 abr 21 12:35 media drwxr-xr-x 2 root root 4096 abr 21 12:35 mnt drwxr-xr-x 2 root root 4096 abr 21 12:35 proc drwxr-xr-x 2 root root 4096 abr 21 12:35 run drwxr-xr-x 2 root root 4096 abr 21 12:35 sbin drwxr-xr-x 2 root root 4096 abr 21 12:35 sys drwxrwxr-x 2 root root 4096 abr 21 12:35 tmp drwxrwxr-x 6 root root 4096 abr 21 12:35 usr drwxrwxr-x 6 root root 4096 abr 21 12:35 var En este punto ya estaríamos en disposición de compilar los módulos que necesitamos incluir y colocarlos en los directorios correspondientes, que como cualquier sistemas debería ser /lib/modules/Versión-arquitectura/kernel. Eso sí, tengamos en cuenta precisamente lo que he marcado en rojo, la versión y arquitectura del kernel en el que está basado la imagen. Por ejemplo, sustituir el módulo ath9k para una tarjeta wifi muy nueva que blablabla no nos interesa la historia... root@Shiba:/lib/modules# find . -name ath9k.ko ./4.9.0-1-amd64/kernel/drivers/net/wireless/ath/ath9k/ath9k.ko ./4.9.0-2-amd64/kernel/drivers/net/wireless/ath/ath9k/ath9k.ko Pues compilamos por separado la versión funcional del módulo y lo sustituimos ahí para que luego sea cargado por el instalador. Así de sencillo cp ath9k.ko ~/initrd/lib/modules/4.9.0-2-amd64/kernel/drivers/net/wireless/ath/ath9k/ath9k.ko Puede ocurrir y ocurre que cuando nos enfrentamos a la tarea de compilar un módulo para una versión de Linux concreta, el sistema desde el que lo hacemos trabaja con otra diferente y las cosas se ponen un poco complicadas. Una forma un poco bruta pero funcional de lidiar con esto e modificar el archivo make para modifica o añadir la opción de compilar para la versión concreta a la que apuntamos: Si no se trata de sustituir sino de incluir un módulo que no está incluido en la imagen initrd original, el proceso es idéntico, copiaríamos el módulo en el lugar que le correspondería dentro de /lib/modules, creando los directorios necesarios, pero tendríamos también que modificar el archivo init para que sea tenido en cuenta y cargado durante el arranque. Dicho archivo lo encontraremos en lo que sería el directorio raíz de la imagen initrd, en mi caso: root@Shiba:/home/shiba/initrd# nano init #!/bin/sh -e # used for initramfs export PATH . /lib/debian-installer/init-debug debugshell "just booted" mount /run mkdir -p /run/lock mount /proc mount /sys /lib/debian-installer/start-udev init='/bin/busybox init' for i in $(cat /proc/cmdline); do case $i in init=/init|init=init) # Avoid endless loop : ;; init=*) init=${i#init=} ;; noshell) sed -i '/^tty[23]/s/^/#/' /etc/inittab ;; esac done debugshell "before init" exec $init Y no nos complicamos en absoluto, simplemente cargamos dicho módulo, con la ruta recién creada bien definida, haciendo uso de modprobe Pero como ya he dicho, mi intención es no pararme a describir el proceso de compilar un módulo para el kernel sino otros menesteres y ya que estoy metido en faena y era una tarea que tenía pendiente, voy a modificar los banners que se muestran en el instalador de Debian para ajustarlos a GNU/Linux Vagos y que todo se vea más bonito ¿Qué les parece? Que por cierto, se encuentra dentro del directorio install o install-arquitectura y ya que los banners que quiero cambiar son para la versión gráfica, será la imagen initrd GTK, la otra es para el modo texto. Y sí, así de complicado es esto Una vez descomprimida, para encontrar los banners del instalador debemos mirar dentro de /usr/share/graphics y sustituirlos por los que queremos incluir con el nombre de logo_debian.png o logo_debian_dark.png, depende de si luego fijamos el tema claro u oscuro Los he hecho deprisa y corriendo, tampoco se pongan muy exigentes Evidentemente, los temas gtk2 los encontraremos, como es de esperar, en /usr/share/themes y por defecto habrán dos, Clearlooks y Dark. Quien quiera ponerse con el aspecto de la ventana del instalador, tiene vía libre para modificar los archivos gtrkc como si no hubiera mañana para que luzca como mejor le parezca. Yo me limitaré a poner el oscuro por defecto y poco más, que saben que a mí las cuestiones de personalización no me atraen mucho que digamos Y una vez nos hayamos quedado a gusto añadiendo y modificando módulos y poniendo paras arriba el instalador ha llegado la hora de volver a comprimir la imagen de arranque para incluirla en la imagen iso de instalación de Debian. En definitiva, comprimamos la imagen initrd que es a lo que venimos find . | cpio -o -H newc | gzip > ../initrd.gz Y reempaquetamos la imagen iso de instalación de Debian, que también está perfectamente descrito en el foro, as que no me hagan repetirme Si no la he cagado demasiado ahora, cuando arranque la imagen de instalación de Debian, se cargarán los banners y el tema que he definido en la imagen de arranque y el instalador de Debian que dará precioso y cuco O bueno... que conste yo ya avisé que las cuestiones de personalización no eran precisamente mi fuerte Vamos a intentar arreglarlo como buenamente se pueda, pero no prometo nada
×
×
  • Crear Nuevo...