Linuxコマンドを使用してSSDをバックアップしたいのですが、dd
この方法がどれほど安定しているのかわかりません。私が読んだところではエラーを確認したり報告したりしないと思うので、明らかに本当ならdd
これは取引の中断になるでしょう。
次のコマンドは次のとおりです。
sudo dd status=progress bs=512K if=/dev/nvme0n1 of=/media/d/ssd.img
したがって、dd
指定されたユースケースでこのコマンドがどれだけ信頼できるかを説明してください。
そして、より信頼性が高く簡単な代替案はありますか?
答え1
要約すると:使用ddrescue
再開/継続機能をサポートし、自動ロギングやその他のさまざまなオプションがあります。詳細については、次を参照してください。ddrescue ホームページ。
構文の例:
ddrescue /dev/sde yourimagename.image sde.log
回復に関するあなたの意見を考慮して、上記のコマンドの画像を同じサイズの別のドライブに復元したい場合:
ddrescue -f yourimagehere.image /dev/sde restore.logfile
また、これはddrescue
ddより高速です。少なくともdd
と+の速度を比較するとそうですpv
。
答え2
「エラーを確認または報告しない」の元の説明は、おそらくデフォルトでは「dd」が誤った読み取りを満たしていないためです。したがって、ブロック指向デバイスの場合、誤ったブロックだけでなく、後続のすべてのブロックも正しくありません。ソート済み)。他の人が言ったように、この問題はブロックがブロック境界にあるように dd に指示する 'conv=noerror,sync' オプションを使用して解決できます。ファイルシステムのブロックサイズ(通常は4096バイト)に一致するブロックサイズ設定にリンクする必要がありますが、それより低い場合があります。
バックアップははるかに少なく細分化されているため、ファイルバックアップの使用に関するJohan Myréenのコメントに同意します。あるファイルのバックアップ時に発生するエラーが必ずしも他のファイルに影響を与えるわけではありません。ファイルデータエラーを修正するファイルシステム(例:zfs、btrfs、その他のいくつかの構成)を使用することもできます。
誤ったバックアップを検出するもう1つの方法は、元のデバイス(マウントされていません!!)やddバックアップファイルで「sha256」などのメッセージダイジェストハッシュコードを使用することです。もちろん同じでなければなりません。
最後に、バックアップのベストプラクティスは、決して1つのバックアップにのみ依存しないことです。少なくとも2つを維持してください!
答え3
ディスク複製ユーティリティ - 例:クロンジラパーティションテーブルなどを含むディスクの圧縮コピーが作成されますが、ext4などのよく知られているファイルシステムでは、未割り当て領域と未使用領域は無視されます。
明らかに、未使用のスペースをコピーせずにデータのみをコピーする方がはるかに高速です。
NVMEストレージが機能していないと思われる場合頼るrsync
読み取り操作の場合、複製操作に加えて、ソフトウェアを使用してほとんど/すべてのデータを抽出することを検討できます。
答え4
dd
名前が示すように、ディスクイメージバックアップを作成します。 1TBドライブが100GBを使用している場合、ディスクイメージはまだ1TBです。ゼロブロックが存在することを知っていてコマンドがある場合、conv=sparse
このオプションが存在します。dd
ddrescue
--sparse
ただし、バックアップの目的では、元のディスクイメージは必要ない場合があります。ほとんどのバックアップユースケースでは、tarballを使用してファイルをコピーrsync
するか、すべてを(おそらく圧縮された)tarballに配置するだけで十分です。 。rsync
ファイルの違いだけを転送する便利なデルタ転送アルゴリズムもあります。更新中バックアップ(追加ソフトウェアが必要な増分バックアップとは異なります)