差分

このページの2つのバージョン間の差分を表示します。

この比較画面にリンクする

次のリビジョン
前のリビジョン
blog:2011:2011-10-15 [2011-10-15 23:14]
Decomo 作成
blog:2011:2011-10-15 [2022-05-25 09:50] (現在)
Decomo
行 1: 行 1:
 ====== cp: Input/output errorを無理やりコピーする====== ====== cp: Input/output errorを無理やりコピーする======
  
-ファイルシステムに不具合が発生するなどして壊れたファイルをコピーしようとすると「Input/output error」になり、そこから後ろのバイトストリームがコピーされない。 +UNIX系のOSでファイルコピーをした際''cp: Input/output error''が発生することがマレにある。
-例えファイルの復旧が難しいと分かっていても、吸えるデータは可能な限り吸っておきたいのが人情というもの。+
  
-そんな時の救世主がcpioコマンドだ。+ストレージの不具合や突然の電源断でファイルシステムに不整合が発生し、データの読み書きに失敗した場合に発生するエラーである。これが発生した時点コピー処理は打ち切られ、残りのデータは一切コピーされなくなってしまう。
  
-本来の用途はファイルストリームを単一のファイルにアーカイブする事だが、以下のようにすることでInput/output errorに負けずにディレクトリを丸々コピー出来る。+たとえファイルの完全復元が難しいと分かってはいても、吸えるデータは可能な限り吸っておきたいのが人情というもの。残りの正常かもしれないデータをみすみす棄ててしまうのは勿体ない。動画や音声なんかだと壊れたブロックの前後が欠落するだけで、全体としてみれば実用上問題ない事が殆どだし。
  
 +そんな時は''cpio''コマンドで、次のようにすると無理やりコピーができる。
 <code> <code>
 find . -depth -print0 | cpio --null -pvd dstdir find . -depth -print0 | cpio --null -pvd dstdir
 </code> </code>
 +
 +本来の用途はファイルストリームを単一のファイルにアーカイブする事らしいんだけど、理屈はどうあれ''Input/output error''に負けずにディレクトリを丸々コピー出来る。
 +