Configuração do ambiente Linux initrd - Falha ao executar / init

2

Estou procurando ajuda para colocar em funcionamento um ambiente initrd básico. Meu objetivo é aprimorar meu conhecimento sobre como criar um ambiente Linux básico. Idealmente, gostaria de migrar para os sistemas Linux embarcados mais tarde e este parece ser o melhor ponto de partida.

Eu ainda não encontrei um bom tutorial básico sobre o assunto, como tal, eu acabei seguindo uma série de tutoriais incompletos ou incompletos sobre o assunto.

Abaixo estão os links para os procedimentos para sua referência sobre o que eu fiz até agora.

No momento, quando eu inicializo o ambiente recebo um prompt do GRUB, eu tentei adicionar um arquivo grub.cfg, mas ele é ignorado quando o sistema inicializa e vai direto para o prompt do grub.

Para inicializar o ambiente initrd atualmente, eu tenho que fornecer os seguintes comandos:

set root=(hd0,msdos1)
linux /boot/bzImage
initrd /boot/rootfs.cpio.gz
boot

Isso inicializa o mini OS, mas dá um erro sobre não conseguir localizar um arquivo init (que faz parte do meu arquivo rootfs.cpio.gz na raiz de sua estrutura)

.

Como posso resolver os problemas com este ambiente initrd?

    
por Kristiaan 02.01.2015 / 16:44

1 resposta

2

Quando o kernel do linux é inicializado no sistema de arquivos initramfs, ele não executa /sbin/init , mas /init . A solução é ligar simbolicamente o / sbin / init em / init.

ATUALIZAÇÃO: Tentei recriar seus problemas e descobri que você provavelmente compilou o busybox de 64 bits e o kernel Linux de 32 bits. Portanto, o kernel do linux não sabe como executar o programa /init porque ele é de 64 bits. Recompile o linux com a opção de 64 bits ativada e substitua a versão antiga por ela. Além disso, você precisará criar um link simbólico para o / init para / sbin / init como eu lhe disse antes

    
por 14.04.2016 / 18:52

Tags