ddがすべてのメタデータとすべての「空の」ブロックを含むすべてをコピーするかどうか

ddがすべてのメタデータとすべての「空の」ブロックを含むすべてをコピーするかどうか

突然パーティション(または1つのパーティション)に問題が発生しました。 Kingston SSDにはデフォルトのUbuntuがインストールされており、ルートファイルシステムはLUKS(AESだと思います)を使用して暗号化されています。これでライブCDからパーティションをマウントしようとしましたが、成功しませんでした。

元に戻せない追加ダメージを与えるのではないかと恐れました。だから一つ作ろうか正確なコピー運転する。これは、すべてのパーティション表、LUKSパーティション、および私が認識していない他のすべての種類のメタデータのすべての種類のメタデータを意味します。私はすべての空のブロックが欲しいし、絶対に安全だと思います。

私は知っていますが、dd if=/dev/sda of=/dev/sdb説明したデータがすべて含まれているかどうかはわかりません。

たぶんブロックサイズをとして指定する必要がありますが、-bそれがどのように機能するのか、なぜ必要なのかわかりません(もしそうなら)。そして、パーティションのブロックサイズを見つける方法もわかりません。

コピーしたら教えてくださいみんなそうでない場合、データには異なる方法があります。

答え1

はい、(正式に)データとパーティション、UUIDなどに関するすべての情報を含まないチャンクも同様です。

たとえば、ddコピーされたドライブからデータを回復できます(つまり、ファイルを削除した後)。

読みたいかもしれませんこれ情報noerrorsyncオプション。

読み取りエラーがない限り、ブロックサイズ(bs=)は結果に影響を与えませんが、「1M」(または少なくとも「4k」)に設定する必要があります。そうしないと、何の理由もなく時間がかかります。

答え2

ただし:

cp /dev/block_device imgfile

もしimgfileこれらを理解するファイルシステムであるGNUにあります。cp しなければならないデフォルトは画像を稀に書くことです。ただし、次のデフォルト設定を指定できます。

cp --sparse=always /dev/sda imgfile

ddの主な用途は、指定されたものだけを安定して使用する能力です。部分あるいは、ストリームに特定の変換を非常に効率的に適用できます。 1:1コピーしたい場合みんなファイルならそれはcpすべてです。

答え3

ddコピーするデータが何を意味するかは関係ありません。パーティション表、パーティションの内容、ファイルの断片、空のファイルシステムスペースはすべてバイトです。少なくともサイズが大きいと、正確なコピーが作成されます(大きい場合は直接アクセスできないいくつかの尾ごみを含むdd if=/dev/sda of=/dev/sdb)。/dev/sdb/dev/sdasdbsdasdb

すべての魔法はsdXブロックデバイスにあります。ddバイトをコピーするツールです。

ddただし、これが作業に最適なツールであるわけではありません。少しエラーが発生しやすく、通常は最速の作業ではありません。私が見つけたcat異なるディスク間のコピーで高速化dd直感的ではない方法でデータが失われる可能性があります。(私は考える最新のLinuxシステムはこれに関して安全です。)を使用すると、タイプミス(swap sumsなど)catによるデータ破損のリスクが軽減されるという利点があります。出力はおなじみのシェルリダイレクト演算子で指定されます(ただし、この構文を使用することもできます)。ifofdd

cat /dev/sda >/dev/sdb

他のディスクが大きい場合は、ファイルにディスクイメージを作成できます。

cat /dev/sda >/path/to/disk.img

これらのディスクイメージは直接使用できず、起動することもできません。ただし、それをディスクにコピーすると、コンテンツ全体が2回コピーされるため、元のコンテンツのバイト単位のコピーが作成されます。あなたもループバックのインストールファイルにアクセスします。パーティションでループデバイスを作成できますが、Ubuntuは最新バージョンでのみこの目的のためのツールを提供しています。。データのみを保持するには、パーティションを個別にコピーして別々のファイルに保存するだけで十分です。

関連情報