En la primera parte Hemos compilado busybox y el kernel de Linux. En esta sección, crearemos la imagen initramfs.
Creando initramfs
Initramfs es el primer archivo que se carga en la memoria al arrancar el sistema. contenido en este archivo /en eso El proceso de arranque se inicia ejecutando el archivo de nuestro kernel. Vamos a crear una imagen initramfs usando el archivo busybox que compilamos como estático en el ejemplo anterior.
Para esto, abramos un nuevo directorio y copiemos nuestro archivo busybox en él. próximo init Escribamos nuestro archivo de la siguiente manera.
#!/busybox ash /busybox mkdir -p /bin /busybox --install -s /bin export PATH=/bin exec /bin/ash
Aquí, la primera línea es la línea shebang y especifica con qué se debe ejecutar el archivo.
segunda linea /compartimiento Se utiliza para crear el directorio.
La tercera línea se usa para instalar el archivo busybox mediante un enlace simbólico a /bin.
en la cuarta linea TRAYECTORIA La variable ambiental está configurada. De esta forma especificamos dónde buscar los comandos de busybox.
En la última línea escribimos para reemplazar el proceso actual con un nuevo shell de cenizas.
Embalaje Initramfs
init Hagamos nuestro archivo ejecutable y generemos nuestra imagen initramfs con el siguiente comando.
encontrar ./ | cpio -H nuevoc -o > ../initrd.img
Si queremos, podemos comprimirlo para reducir el tamaño de nuestra imagen initramfs.
gzip -9 initrd.img
Probando initramfs y kernel
Podemos probar nuestra imagen kernel e initramfs usando qemu con el siguiente comando.
qemu-system-x86_64 --enable-kvm -kernel bzImage -initrd initrd.img -append "silencioso" -m 1024
Si no hay problema, aparecerá la pantalla del terminal y podrá utilizar los comandos de busybox.

Siguiente en la sección Se explicará cómo crear nuestro propio sistema rootfs mínimo a partir de código C simple.