Por que a ação restart inittab está me pedindo um id?

2

Estou seguindo o tutorial atualização do firmware NAND para tentar fazer com que o meu sistema seja executado a partir da RAM para que eu possa exibi-lo. Eu já tinha meu script em execução, mas por algum motivo desconhecido para mim está me dando:

INIT: /etc/inittab[44]: missing id field

Funcionou perfeitamente bem antes e parece que não consigo entender por que o inittab só recentemente começou a me pedir um campo de ID para a ação de reinicialização.

Alguma idéia de por que eu recebi essa mensagem de erro? Qualquer insight seria muito apreciado!

NOTA: Quando kill -HUP 1 é executado, recebo o erro nesta linha no meu inittab :

::restart:/reS

O seguinte é o meu script que estou tentando usar para atualizar meu flash

NEWROOTDIR=/tmp/newroot
mkdir -p ${NEWROOTDIR}
mount -t tmpfs none ${NEWROOTDIR}

cd /
echo Copying existing file system ...
echo Copying bin ...
cp -a bin ${NEWROOTDIR}
echo Copying dev ...
cp -a dev ${NEWROOTDIR}
echo Copying etc ...
cp -a etc ${NEWROOTDIR}
echo Copying lib ...
cp -a lib ${NEWROOTDIR}
echo Copying sbin ...
cp -a sbin ${NEWROOTDIR}
echo Copying usr ...
cp -a usr ${NEWROOTDIR}
echo Copying home ...
cp -a home ${NEWROOTDIR}
echo Done copying existing file system


echo Creating folders
mkdir ${NEWROOTDIR}/root
mkdir ${NEWROOTDIR}/proc
mkdir ${NEWROOTDIR}/sys
mkdir ${NEWROOTDIR}/oldroot

echo Killing all system processes
killall5 -9
echo Rebinding /proc to the new root
mount --bind /proc ${NEWROOTDIR}/proc

echo Pivoting to new root
cd ${NEWROOTDIR}
/sbin/pivot_root . oldroot
cd /
echo Cleaning up inittab
grep -v restart /oldroot/etc/inittab > /etc/inittab

echo Inserting the restart command into inittab
echo "::restart:/reS" >> /etc/inittab 
echo "umount /oldroot" >> /reS
echo "/usr/sbin/ubiformat ${mtd_fs} -f /oldroot/var/volatile/tmp/fs.img  -O 2048" >> /reS
chmod 777 /reS
echo Killing HUP
kill -HUP 1
sleep 1
echo killing QUIT
echo Restarting
kill -QUIT 1
sleep 5
    
por TopGunCoder 19.11.2013 / 17:55

1 resposta

3

Você está recebendo o erro sobre a linha que está faltando no campo id porque, bem, está faltando o campo id.

Na inittab(5) página de manual:

An entry in the inittab file has the following format:

 id:runlevels:action:process

Lines beginning with '#' are ignored.

 id     is a unique sequence of 1-4 characters which identifies an entry
        in inittab […]

É possível que você tenha adicionado recentemente a linha malformada ou que você tenha executado anteriormente uma versão do init que não tenha percebido. Ou que você não percebeu a mensagem ou possivelmente que a mensagem não foi registrada corretamente.

Em qualquer caso, a correção é simples: adicione um ID.

[Nota: sua linha também tem outros problemas. Seus runlevels ausentes. Eu não tenho certeza do que é a ação "restart", talvez deva ser "respawn". E é realmente "reS" em vez de "rcS"? ]

    
por 19.11.2013 / 18:05