Necesito aplicar un parche para el kernel y por eso me puse a construir un kernel. Primero busqué el código fuente y construí dependencias con
# apt-get source linux-image-`uname -r`
# apt-get build-dep linux-image-`uname -r`
Al ingresar al directorio fuente, apliqué mi parche, luego tomé la configuración actual del kernel y realicé la compilación con
# cp -vi /boot/config-`uname -r` .config
# make-kpkg --initrd --append-to-version=-test kernel-image kernel-headers
Finalmente instalé el kernel recién construido a partir de los DEB creados en ../
# dpkg -i linux-image-3.13.11.4-test_3.13.11.4-test-10.00.Custom_i386.deb
# dpkg -i linux-headers-3.13.11.4-test_3.13.11.4-test-10.00.Custom_i386.deb
Al reiniciar encontré mi kernel en el menú de Grub, pero al intentar iniciarlo terminé con
Gave up waiting for root device
...
ALERT! /dev/disk/by-uuid/[my-correct-disk-uuid-here] does not exist.
En el mensaje de BusyBox resultante, intenté buscar en /dev/ y no hay unidades de disco presentes, lo que parece indicar que el módulo del kernel para mi controlador de disco no se ha cargado (no está en /proc/modules). ¿Cómo puede ser esto, cuando he usado la misma versión del kernel que estoy ejecutando mientras escribo esto, ycon la misma configuracion? Construir kernels no es algo que haga a diario ni por placer, por lo que agradecería cualquier ayuda con esto.
Editar:Debo agregar que intenté usar la sintaxis /dev/sd** root=
en la línea de comando de Grub, con el mismo resultado. Entonces no es que la búsqueda de UUID falle; el controlador de disco ni siquiera existe. En caso de que sea relevante, la máquina es una Thinkpad X32 con el chipset Intel 855PM (PATA HDD).
Respuesta1
Ahora, debido al error de UUID, creo que es necesario verificar la información en /etc/fstab porque aquí es desde donde se monta la información del sistema de archivos (UUID).
Primero, inicie en un kernel anterior o en una sesión de disco activo.
Ejecute el siguiente comando para encontrar el UUID de su partición raíz.
sudo blkid -o list
El resultado debería ser similar a este ejemplo:
/dev/sda1 ext4 home / bac7229a-e019-5679-931d-5e14f15ff4bc
/dev/sda2 ntfs c (not mounted) 40Ajghyr-65uB-EA5C-7y8y9t6g54j5
/dev/sda3 ext4 (not mounted) 640565a9-310b-5d6r-8d8v7-e887do893f80
/dev/sda5 ext4 (not mounted) e777547b-3a3a-7tgd-9a12-2769wsrbd92
/dev/sda6 swap <swap> d72b694e-4976-3333-hso5-7894e6s9d2
Ahora, use 'nano', 'vi', 'gedit', 'mousepad' o cualquiera que sea su editor de texto favorito para editar o confirmar el UUID listado para su partición raíz en /etc/fstab. Para este ejemplo, usaré nano:
sudo nano /etc/fstab
Ahora, de acuerdo con nuestra información, nuestra información de /etc/fstab debería verse así, suponiendo que esté utilizando una configuración de partición única no cifrada montada en " / ":
# / was on /dev/sda1 during installation
UUID=bac7229a-e019-5679-931d-5e14f15ff4bc / ext4 errors=remount-ro 0 1
# swap was on /dev/sda6 during installation
UUID=d72b694e-4976-3333-hso5-7894e6s9d2 none swap sw 0 0
Si la información en /etc/fstab era incorrecta y la ha actualizado en consecuencia,todo lo que necesitas hacer ahora es reiniciarporque /etc/fstab se carga después de grub y no está asociado directamente con la configuración de su initrd.img.
(El sistema leerá la información en /etc/fstab y cargará automáticamente las particiones correctas desde allí)
Si esto no soluciona su problema o si la información en /etc/fstab es precisa, es posible que deba ejecutar:
sudo update-initramfs -v -c -k all
Es posible que desees sustituir "todos" por una versión específica del kernel.si no desea actualizar todas las imágenes initrd existentes (de esta manera puede actualizar solo la imagen que no arranca). Vea aqui para mas informacion:https://stackoverflow.com/questions/9645073/how-to-make-an-initrd-img-in-ubuntu
Si todo va bien, no olvides ejecutar:
sudo update-grub2
antes de reiniciar.
Por favor publique cualquier error.