ウェブサイト検索

ddを使ってLinuxディスクイメージを簡単にクローンおよび復元する方法


Linuxでデータを消去、バックアップ、または復元したい場合、いくつかのアプリを選ぶことができます。しかし、どのLinuxオペレーティングシステムを使用していても、必ず機能するコマンドが1つあります──ddです。

データを消去、バックアップ、または復元する時が来たとき、Linuxではいくつかのアプリを選ぶことができます。GPartedは、最も実績のある選択肢の一つです。GNOME Disksは、GNOMEデスクトップ環境で素晴らしく見えるより現代的な代替手段です。しかし、どのLinuxオペレーティングシステムを使用していても、常に機能するオプションがあります—dd。

Linuxを使うのにターミナルに触れる必要はありません。しかし、特定のコマンドを習得すると、時間を節約できるだけでなく、どのバージョンのLinuxでも使えるスキルを学ぶことができます。

なぜddを使用するのか?

デスクトップでもサーバーでも、ddは単に機能します。ddはUnixコマンドとして始まり、Linuxに加えてFreeBSDやmacOSなどの他のUnix系オペレーティングシステムもサポートしています。

ddは、ワイプを開始したりディスクイメージを作成するのに数秒しかかかりません。何を入力するかを知っていれば、ターミナルを開いてオンラインで指示を検索するのにかかる時間でドライブを消去できます。

大きな力には大きな責任が伴う。ドライブをクローンする命令は、ドライブを消去する命令とはそれほど違いがない。ファイルを削除できるコマンドを扱うときは、入力する内容に特に注意を払う必要がある。

緊張していますか?いいですね。たとえあなたがデータベースの専門家であっても、常に慎重にコマンドを入力したいものです。気を逸らすと、最悪の場合、ハードウェアを壊すことになり、より一般的にはデータの損失を引き起こす可能性があります。それでは、始めましょう。

ddを使用してドライブをクローンする

ドライブをクローンすることは、コンピュータのバックアップを作成する確実な方法です。データをポータブルハードドライブやDropboxにバックアップすることもできますが、これはファイルを保存するだけです。

アプリを保存するには、各アプリを個別にバックアップする方法を学ぶ必要があります。いくつかのアプリでは、特定のファイルをエクスポートすることを意味します。他のアプリでは、隠しフォルダをコピーすることを意味します。それに全くバックアップできないアプリもあります。

ddは、あなたのハードドライブまたはパーティションの正確なコピーを作成することでこれを回避します。このコピーを復元すると、コンピュータは元の状態に戻ります。ファイル、アプリ、ブラウジング履歴、さらにはシステム設定もすべて戻ります。すべてです。

ドライブをクローンするには、コピーしているドライブよりも大きな容量を持つ第二のドライブが必要です。おそらく、これはポータブルハードドライブか大容量のフラッシュドライブになるでしょう。

ターミナルを開くところから始めてください。ddコマンドを実行するには管理者権限が必要です。管理者としてサインインするにはsuと入力するか、ddコマンドの先頭にsudoと入力してください。

コピーの準備ができたら、以下のコマンドを入力してください。これにより、2番目のドライブにある既存のデータはすべて消去されるため、事前にデータをバックアップしておくようにしてください。

dd if=/dev/sdX of=/dev/sdY

さあ、今何が起こっているのかを理解しましょう。ddはコマンドです。ifは入力、つまりコピーしたい場所です。ofは出力、つまりコピーするもので置き換える場所です。

sdX と sdY は、あなたが操作しているドライブを指します。ドライブには、通常 /dev/sda、/dev/sdb、または /dev/sdc などの名前が付けられています。名前を確認するには、パーティションエディタを使用することができます。また、すでにターミナルにいるので、lsblk コマンドを使用することもできます。

ディスクイメージの作成

ディスクをクローンする別の方法は、移動させたり、ブータブルUSBのように復元したりできるディスクイメージを作成することです。

画像ファイルを作成することで、複数のバックアップを大きなポータブルハードドライブなどの単一の場所に保存できます。再度、このプロセスには1つのコマンドだけが必要です:

dd if=/dev/sdX of=path/to/your-backup.img

スペースを節約するために、ddにバックアップを圧縮させることができます。

dd if=/dev/sdX | gzip -c > path/to/your-backup.img.gz

このコマンドは、バックアップをIMG.GZファイルに圧縮します。これはLinuxが扱える多くの圧縮形式の一つです。

ddを使用してドライブを復元する

バックアップが使えないなら、何の役に立ちますか?ddでイメージを復元する準備ができたら、2つの選択肢があります。最初のアプローチを使用した場合は、単純に2つの宛先を入れ替えてください。

dd if=/dev/sdY of=/dev/sdX

イメージファイルから復元する際も同じ概念が適用されます。

dd if=path/to/your-backup.img of=/dev/sdX

イメージファイルが圧縮されている場合は、少し状況が異なります。代わりにこのコマンドを使用してください:

gunzip -c /path/to/your-backup.img.gz | dd of=/dev/sdX

明確に言うと、gunzipは「g unzip」であり、「g zip」の反対です。このコマンドはバックアップを解凍します。その後、ddはこのイメージで既存のドライブを置き換えます。

考慮すべきパラメーター

コマンドの末尾にパラメータを付けることで、コマンドを変更できます。デフォルトでは、ddはデータを転送するのに時間がかかる場合があります。ブロックサイズを増やすことで、プロセスを加速できます。そのためには、末尾にbs=を追加してください。

dd if=/dev/sdX of=/dev/sdY bs=64

この例では、デフォルトのブロックサイズを512バイトから64キロバイトに増加させます。

conv=noerrorはddにエラーが発生しても処理を続けるよう指示します。デフォルトの動作は停止することで、その結果、ファイルが不完全になります。エラーを無視することが常に安全であるとは限らないことに注意してください。その結果のファイルが破損する可能性があります。

conv=sync は、読み取りエラーが発生した場合にゼロで入力ブロックを追加します。これにより、データオフセットが同期のまま保たれます。

必要であれば、これらの最後の2つをconv=noerror,syncのように組み合わせることができます。カンマの後にはスペースはありません。

ddを知る

もし興味があれば、ddの名前はIBMのジョブ制御言語の文に由来しています。そこが何を意味するのかわからなくても心配いりません。それがコマンドを使うのを難しくすることはありません。

ddに関して助けるためにもっと情報が必要ですか?ウィキページはかなり詳細です。また、Arch Linuxのウィキにも素晴らしい記事があります。繰り返しますが、Archを使用しているかどうかは関係ありません。ddは使用しているLinuxオペレーティングシステムに関係なく同じように動作します。

もしddがあなたに合わないことが分かった場合でも、運が悪いわけではありません。他にハードドライブをクローンする方法があります!

関連記事: