¿Por qué falla el arranque con mi kernel personalizado en el paso mknod?

¿Por qué falla el arranque con mi kernel personalizado en el paso mknod?

Quiero crear un kernel personalizado en Ubuntu. Configuré y construí el nuevo kernel. El nuevo kernel no tiene inicio y proviene de una fuente vainilla. Construyo este nuevo núcleo monolítico sólo con los controladores que necesita.

Cuando intento iniciar el nuevo kernel, me quedo atascado en el mknodpaso. Intenta con mknodnuevos dispositivos como /dev/sda1 /dev/vca4. Falla porque la partición raíz está montada como de solo lectura.

Creo que el problema es que perdí algo de mi hardware. Si inicio con el kernel predeterminado de Ubuntu, no tengo ningún problema. ¿Alguien podría ayudarme a entender por qué sucede esto?

Respuesta1

Al arrancar, el sistema de archivos raíz casi siempre está montado en modo de solo lectura, para que pueda ejecutarlo fsck. Una vez que haya terminado, es habitual volver a montar el sistema de archivos raíz de lectura y escritura usando algo como:

mount / -o remount,rw

Aunque, dado que estás usando Ubuntu, compilar un kernel debería ser mucho más simple que esto. Si aún no lo estás usando, te recomiendo usarlo kernel-packagepara compilar el kernel. Simplemente obtenga el paquete y las fuentes del kernel, descomprímalo y diga algo como

make-kpkg -j3 --initrd binary

Esto luego creará .debpaquetes que podrá instalar de la forma habitual ( dpkg -i SOME-FILE.deb).

Respuesta2

Deberías tener un devtmpfso tmpfsmontado en /devy administrado por udev; por lo tanto, se puede escribir en el directorio independientemente del estado de /. En Ubuntu, esto normalmente lo configura initramfs; ¿Construiste y cargaste uno con tu kernel?

información relacionada