debugfs を使用してディレクトリをコピーする方法は?

debugfs を使用してディレクトリをコピーする方法は?

debugfs のマニュアルページには、コマンド 'rdump . .' は、指定されたファイルシステム上で見つかったすべてのファイルを debugfs cwd からネイティブ ファイルシステムの cwd に再帰的にコピーするという印象を受けます。しかし、構文エラーが発生し、コピーが開始されないようです。

私が実行するコマンドは次のとおりです。

cd /path/to/transfer/destination
debugfs /dev/sda1 -R rdump . .

私の仕事は、クリーンだがマウントできない USB ストレージ デバイスの全コンテンツをホスト マシンの HD にコピーすることです。ホスト マシンは USB デバイスのファイル システムで使用される inode サイズ (256) をサポートしておらず、ソフトウェアはアップグレードできないため、debugfs を使用してファイルを転送するつもりでした。このタスクについて他に提案があれば、ぜひ教えてください。

答え1

私が持っているバージョンのマニュアル ページには、現在の作業ディレクトリへの参照がありません。cwd (pwd) はシェルでは重要ですが、デバイスには意味がありません (各ドライブに cwd がある Windows とは異なります)。ソース ディレクトリと宛先ディレクトリの両方を完全に指定することをお勧めします。tarまたはddまたは を使用しないのはなぜですかrsync?

答え2

これはどう?

debugfs /dev/sda1 -R "rdump / /path/to/transfer/destination"

テストするものがないのでテストしていませんが、TFM ではこれがより正しいと示唆しているようです。実際には、man ページの提案に一致するように引数を入れ替える必要があるかもしれません。

debugfs -R "rdump / /path/to/transfer/destination" /dev/sda1

それが重要かどうかは分かりませんが、重要になる可能性はあります。

関連情報