私のcpioコマンドのエラーはどういう意味ですか?

私のcpioコマンドのエラーはどういう意味ですか?

私の組み込みターゲットデバイスのinitramfsを生成するために、私のシステムで次のコマンドを使用して.cpioアーカイブを作成しました。

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

これはいつも問題なく私に効果的でした。昨日、新しいアーカイブの作成中に次のエラーが発生しました。

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

私は過去にこのようなエラーが発生したことがなく、開けられないと言われたファイルに触れていなかったので、なぜこれが起こるのか理解できません。 Ubuntuパッケージマネージャを使用してホストシステムを更新したため、パッケージも更新された可能性がありcpioます。明らかに、私はすべてのエラーが私を非常に混乱させるので、ここで生成されたinitramfsについて確信はありません。私が考えることができる唯一のオプションは、私のバージョンが変更されたかどうかを調べ、変更されたcpio場合は削除して以前のバージョンに置き換えることです。私のシステム(Ubuntu 12.04)でこの情報を見つける方法はありますか?それともこの問題を解決する他の方法はありますか?

ベストアンサー1

-H newc最初のエラーは、とをすべて通過したために発生します-c。作成するアーカイブの形式を決定する必要があります。これ「作業は許可されていません」このエラーメッセージを出力する関数に無効な引数を渡し、そこで終了する必要があるGNU cpioのバグです。

他のエラーは、スーパーユーザーでコマンドを実行していないか、正しい場所でコマンドを実行していないために発生します。スーパーユーザーだけが/etc/shadow機密情報を含むファイルを読み取ることができます。また、作成したアーカイブはスーパーユーザーのみが読み取れるようにする必要があります。initramfsあなたが作っているものが完全なオペレーティングシステムを含まない限り、ビジネスはおそらくない/etc/shadowでしょう。initramfs

おすすめ記事