ファイルシステムをそのままコピーするにはどうすればよいでしょうか?

ファイルシステムをそのままコピーするにはどうすればよいでしょうか?

プログラミング中のデバイス用のファイル システムがあり、その正確なコピーを作成したいと考えています。理想的には、このコピーがコピー元のフォルダーと同一になるようにしたいと思います。これを実現するためにcp -r cp -a、 とを使用してみましたrsync -azvP。ただし、それぞれが異なるサイズのフォルダーになり ( を使用du -s)、最終的には、デバイスが元のフォルダーから実行されていても、コピーしたフォルダーからは実行されません。

  • 私が使用したコマンドでは考慮されていないものは何ですか?
  • ファイル システム/フォルダーをコピーするときにすべてを同一に保つことは可能ですか? もし可能であれば、どうすればよいでしょうか?

PS 同様の質問を投稿しましたスタックオーバーフローしかしすぐに間違った取引所で質問していたことに気づいた


編集: これは役に立たないかもしれませんが、どの方法を使用しても、コピーされたディレクトリによって、問題のマシンは常に次の出力でカーネル パニックを引き起こします。

VFS: NFS 経由でルート ファイル システム をマウントできません。フロッピーを試行しています。 VFS: ルート デバイス "nfs" または不明なブロック (2,0) を開けません。 正しい "root=" ブート オプションを追加してください。使用可能なパーティションは次のとおりです。 1f00
64 mtdblock0 (ドライバー?) 1f02 64 mtdblock2 (ドライバー?) 1f04 2432 mtdblock4 (ドライバー?) 1f05 128 mtdblock5 (ドライバー?) 1f06 4352 mtdblock6 (ドライバー?) 1f07 204928 mtdblock7 (ドライバー?) 1f08 50304 mtdblock8 (ドライバー?) 0800
8388608 sda ドライバー: sd カーネル パニック - 同期していません: VFS: 不明なブロック (2,0) にルート ファイル システム をマウントできません

答え1

私は通常、次のいずれかの代替手段を使用します。

  • rsync -aHAX(詳細度を上げるには v を追加) コピー中にターゲット フォルダー内のリンク構造と x-attrs が保持されるようにします。忘れないでくださいはaアーカイブを意味し、時間、所有権、およびアクセス許可が既に保持されています。
  • シンプルな方法tar cvf(時間を節約するために圧縮せず、単に tar にする)は、何らかの理由で最初の方法が私のニーズを満たさず、時間がない場合に私が使用する方法ですが、常に最初の方法を試します。

diff -r <folder1> <folder2>すべてが正常に実行されたかどうかを確認するには、必要に応じて後で実行します。

答え2

コメントの返信を読むと、ルート フォルダーをコピーしようとしている可能性があります (「コピーしたディレクトリを使用してデバイスが起動しません」)。その場合、実行すべきことがいくつかあります。

$ cd /
$ mkdir backups

$ tar -cvpf /backups/fullbackup.tar --directory=/ --exclude=proc --exclude=sys \
     --exclude=dev/pts --exclude=backups .

ルート フォルダーを新しいシステムにコピーしたら、起動する前に grub を更新する必要があります。

$ grub-install --recheck /dev/sdX (Where X is the partition number)
$ update-grub

答え3

試してみるといいFSアーカイバ。これは、現在メンテナンスされていない類似の partimage の後継です。私は過去に partimage と FSArchiver の両方を使用したことがありますが、どちらもうまく機能しました。私の知る限り、どちらも可能な限り元のファイルシステムと同じファイルシステムのコピーを作成します。FSArchiver は partimage よりも少し強力だと思います。たとえば、ext4 で動作しますが、partimage では動作しません。FSArchiver/partimage 比較表

答え4

「同一」が何を意味するかによって多少異なります。

  • rsyncほとんどの場合、を実行するだけで十分です。tarすべてをファイルにパックし、別の場所に抽出するために を使用したい場合もあります。
  • 完全なファイル システムのクローンが必要な場合は、 を使用してddファイル システム全体をコピーできます。

デバイスをデバッグする手段がある場合は、現在デバイスが動作しない原因が正確に何であるかを調べてください。

関連情報