差分

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

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

両方とも前のリビジョン 前のリビジョン
blog:2011:2011-10-15 [2015-01-06 11:51]
127.0.0.1 外部編集
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''に負けずにディレクトリを丸々コピー出来る。
 +