nella prima parte Abbiamo compilato busybox e il kernel Linux. In questa sezione, creeremo l'immagine initramfs.
Creazione di initramfs
Initramfs è il primo file caricato in memoria all'avvio del sistema. contenuto in questo file /dentro Il processo di avvio viene avviato eseguendo il file dal nostro kernel. Creiamo un'immagine initramfs usando il file busybox che abbiamo compilato come static nell'esempio precedente.
Per questo, apriamo una nuova directory e copiamoci dentro il nostro file busybox. Prossimo init Scriviamo il nostro file come segue.
#!/busybox ash /busybox mkdir -p /bin /busybox --install -s /bin export PATH=/bin exec /bin/ash
Qui la prima riga è la riga shebang e specifica con cosa deve essere eseguito il file.
seconda linea /bidone Utilizzato per creare la directory.
La terza riga viene utilizzata per installare il file busybox tramite un collegamento simbolico a /bin.
sulla quarta riga PERCORSO La variabile ambientale è impostata. In questo modo specifichiamo dove cercare i comandi busybox.
Nell'ultima riga abbiamo scritto di sostituire l'attuale processo con un nuovo guscio di cenere.
Imballaggio Initramfs
init Rendiamo eseguibile il nostro file e generiamo la nostra immagine initramfs con il seguente comando.
trova ./ | cpio -H newc -o > ../initrd.img
Se vogliamo, possiamo comprimerlo per ridurre le dimensioni della nostra immagine initramfs.
gzip -9 initrd.img
Testare initramfs e kernel
Possiamo testare il nostro kernel e l'immagine initramfs usando qemu con il seguente comando.
qemu-system-x86_64 --enable-kvm -kernel bzImage -initrd initrd.img -append "quiet" -m 1024
Se non ci sono problemi, apparirà la schermata del terminale e potrai usare i comandi busybox.

prossimo nella sezione Verrà spiegato come creare il nostro sistema rootfs minimo partendo da un semplice codice C.