ファイルシステムをそのままコピーするには?

ファイルシステムをそのままコピーするには?

プログラム中のデバイスのファイルシステムがあり、その正確なコピーを作成したいと思います。理想的には、このコピーがコピーされたソースフォルダと同じであることを願っています。私はcp -r cp -aandを使ってrsync -azvPこれを達成しようとしました。各フォルダに異なるサイズのフォルダ(使用済みdu -s)が作成されましたが、最終的に私のデバイスは元のフォルダで実行されていましたが、コピーしたフォルダでは実行されませんでした。

  • 私が使用しているコマンドで何を考慮していませんか?
  • ファイルシステム/フォルダをコピーするときは、すべてを同じままにできますか?では、どうすればよいですか?

PS:上記のような質問を投稿しました。スタックオーバーフローしかし、私は間違った取引所で質問したという事実をすぐに悟りました。


編集:役に立たないかもしれませんが、コピーしたディレクトリの使用方法に関係なく、常に次の出力で問題のコンピュータにカーネルパニックが発生します。

VFS:フロッピーを試してNFSを介してルートファイルシステムをマウントできません。 VFS:ルートデバイス 'nfs'または未知のブロック(2,0)を開くことができません。正しい 'root="
ブートオプションを追加します。 使用可能なパーティションは次のとおりです。(ドライバー?) 1f07 204928 mtdblock7(ドライバー?) 50304 mtdblock8(ドライバー?) 0800
8388608 sda ドライバー: sd カーネルパニック - 同期しない: VFS: 不明 不明ブロックにルートファイルシステムをマウントする

答え1

私は通常、次の選択肢のいずれかを使用します。

  • rsync -aHAX(詳細についてはvを追加してください。)コピーするときは、ターゲットフォルダのすべてのリンク構造とx-attrsを維持する必要があります。a時間、所有権、権限を保管して保存することを忘れないでください。
  • tar cvf何らかの理由で、最初の方法が私のニーズに合わず時間がない場合は、単純な方法(時間を節約するために圧縮せずに圧縮するだけ)を使用しますが、常に最初の方法を試してください。

すべてが期待どおりに機能していることを確認するには、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とFSArchiverを使ったことがありましたが、どちらもうまくいきます。私が知っている限り、彼らはすべて元のファイルシステムとできるだけ同じファイルシステムのコピーを作成します。私はFSArchiverがpartimageよりも強力だと思います。たとえば、ext4では機能しますが、partimageでは機能しません。バラよりFSArchiver/partimage 比較表

答え4

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

  • rsyncただする場合がほとんどです。時には、tarすべてをファイルにパッケージ化して別の場所に抽出したい場合があります。
  • ファイルシステム全体を複製したい場合は、それを使用してddファイルシステム全体をコピーできます。

デバイスをデバッグする方法がある場合は、現在機能していない原因となる正確な問題が何であるかを調べてください。

関連情報