パーティションの目的とコピーの目的によって異なります。ただし、一般的にdd
ファイルシステムをバックアップするには不適切なツールだと思います。それも意図したものではありません。
cp -a
またはrsync
代わりに使用します。もちろん、宛先パーティションを作成する必要があります。したがって、ドロップデッドはそれほど簡単ではありませんが、より安全で柔軟性があります。ファイルシステムイメージを作成する必要がある場合、以下を参照してください。
ルートファイルシステムをコピーする場合は、絶対に使用しないでください dd
。copyに含まれてはならないものがたくさんあるため、rsync -ax
(またはcp -ax
個々のトップレベルディレクトリで)のようなものを使用する必要があります。Linuxでは、これには以下が含まれます。
/dev
/lost+found
/mnt
/proc
/run
/sys
/tmp
これらのいくつかは、実際にはカーネルインターフェイスであり、ディスク上の実際のディレクトリではありません。それらをコピーすると、コピーには適用されない情報の束をコピーしています。それを使用してシステムを実行しようとすると、実際のインターフェイスが上にマウントされるため、無駄なスペースになります。他のプロセスには、実行中のプロセスで使用されている一時的な情報が含まれており、コピーするとシステムがガベージを整理できないため、これらはより問題になります。
ルートファイルシステムのイメージファイルを作成する場合(または任意のファイルシステム)のイメージファイルを作成する場合は、空のイメージファイルを作成します。これは次の用途に適していますdd
。
dd if=/dev/zero of=whatever.img bs=1024 count=1000000
これは1024 MBの画像(1000000 * 1024)です。count
他のサイズにする場合は調整します。たとえば、ext
ファイルにファイルシステムを作成します。
mke2fs whatever.img
これは実際のブロックデバイスではないという警告が表示されます。続行します。次に、イメージファイルをマウントします。
mount whatever.img /mnt/img
/mnt/img
存在する必要がありますが、何でもできます。これでrsync
(またはcp -a
)にでき/mnt/img
ます。whatever.img
マウントを解除すると、コンテンツは内部に残ります。
しかしながら...
明確にするために、何らかの理由でイメージファイルが絶対に必要な場合にのみ、前述のファイルシステムイメージメソッドを使用してください。パーティションを別のハードドライブにコピーすることが目的の場合、イメージは必要ありません。そのドライブに空のファイルシステムを持つ新しいパーティションを作成し、マウントして、そこにコピーします。代わりに、ファイルシステムのコンテンツを空のディレクトリに入れてアーカイブすることもできます。
tar -czf myarchive.tar.gz [the directory path]
次に、これを既存の(空またはそれ以外の)パーティションに展開し、トップレベルに配置して次を使用します。
tar -xzf myarchive.tar.gz
それらのパスがアーカイブ内の何かと一致する場合、既存のファイルを上書きすることに注意してください。それ以外の場合、既存のディレクトリ階層は同じままになります。