Solaris 11(SPARC)で次のコマンドを使用してCPIOアーカイブを作成しました。
find . | cpio -ov >/tmp/myarchive.cpio
IntelベースのSolaris11マシンにコピーし、次のコマンドを使用して抽出しようとしました
cpio -icvdu < myarchive.cpio
次のエラーが発生します。
cpio: Not a cpio file, bad header.
1 errors
MD5SUMハッシュが一致し、別のSPARCマシンで抽出できます。
私の質問ですが、CPIOはプラットフォームに依存する出力を生成しますか?それを変換する方法はありますか?
アーカイブしているディレクトリにTARコマンドでスキップされる長いシンボリックリンクがあるため、現時点ではTARを使用できません。
引用されたコマンドが正しくコピーされて貼り付けられている場合、これはフラグの選択の間違いのようです-「-c」オプションを使用してアーカイブを作成していません(ASCIIポータブル形式を使用) )しかし、アーカイブを読み取るためにその形式を期待するように指示しています。
アーカイブの作成中にGNU CPIOと-c(古いASCIIポータブル形式を使用)オプションを使用)を使用して問題を解決しました。-cオプションも想定しています。 SolarisCPIOで動作します。