Qual é o significado dos erros do meu comando cpio?

3

Eu tenho usado o seguinte comando no meu sistema para criar o arquivo .cpio para criar um initramfs para o meu dispositivo de destino incorporado

sudo find . | cpio -H newc -oc > ~/initramfs.cpio

Isso sempre funcionou para mim sem nenhum problema. Ontem eu estava gerando um novo arquivo e recebi o seguinte erro:

cpio: Archive format multiply defined: Operation not permitted
cpio: ./etc/shadow: Function open failed: Permission denied
cpio: ./usr/lib/ssh-keysign: Function open failed: Permission denied
64842 blocks

Eu nunca recebi esses erros no passado, as menções de arquivos com falhas de abertura não foram tocadas, então não consigo entender por que isso começou a acontecer. Eu atualizo meu sistema host com o gerenciador de pacotes do Ubuntu, então é possível que meu pacote cpio tenha sido atualizado também. Eu obviamente não tenho fé nos initramfs gerados aqui devido a todos os erros que me confundem muito. A única opção que posso pensar é tentar descobrir se a minha versão cpio mudou e, se assim for, remover e substituir a versão mais antiga que eu tinha. Existe alguma maneira de descobrir essas informações no meu sistema (Ubuntu 12.04)? Ou há alguma outra maneira que eu possa contornar este problema?

    
por mathematician1975 31.07.2013 / 11:46

1 resposta

4

O primeiro erro é porque você está passando os dois -H newc e -c . Você precisa se decidir sobre o formato do arquivo que deseja gerar. A "Operação não permitida" é um bug no GNU cpio, está passando argumentos errados para a função que gera a mensagem de erro e deve sair dela.

Os outros erros são porque você não está executando esse comando como o superusuário ou, mais provavelmente, não o está executando no local correto. Somente o superusuário pode ler arquivos como /etc/shadow , pois contém informações confidenciais. Você também deve se certificar de que o arquivo gerado por você só pode ser lido pelo superusuário. Se você está criando initramfs , há chances de que /etc/shadow não esteja presente, a menos que initramfs contenha um sistema operacional completo.

    
por 31.07.2013 / 11:56