Busybox + pivot_root initrd parece não conseguir parar o init

0

Estou tentando criar um sistema de arquivos raiz temporário para atualizar o sistema de arquivos em execução.

Meu sistema é construído a partir do buildroot, usando o Busybox como meu sistema init e initrd. Meu kernel Linux é construído separadamente. Estou tentando fazer isso com pivot_root , mas parece que não consigo desmontar o sistema de arquivos raiz antigo.

Meus passos são:

  • criando sistema de arquivos temporário (para novo sistema de arquivos)
  • interromper todos os softwares em execução
  • parando todas as coisas em execução em /etc/init.d/S*
  • movendo /proc , /sys , /dev (e /dev/pts /dev/shm )
  • fazendo um tmpfs /tmp/new-filesystem/tmp
  • altere o diretório para o novo sistema de arquivos e o pivot root lá

Usando lsof, parece que meu processo final para fechar é /bin/busybox usando um PID de 1, que obviamente é o processo init do sistema de arquivos raiz antigo. Parece que, uma vez com sucesso, não consigo reiniciar o init. Eu tentei executar o comando init u , telinit não está instalado e chroot . /linuxrx < /dev/console > /dev/console 2>&1 para reiniciar o init.

Saída do lsof:

1 /bin/busybox /dev/console 3 # (x3)

/linuxrc é um link simbólico para /bin/busybox

    
por d4r3llo5 12.06.2017 / 22:57

0 respostas

Tags