{category}

Linux - バックアップとリストア

dd

ディーディー(ストレージと設備管理

意味 データのコピーと変換


ddとは?

ddは、Linuxシステムでファイルやデバイスの内容をコピーしたり変換したりするコマンドです。ディスクイメージの作成やバックアップ、データの復元など、低レベルなデータ操作に使用されます。

ddの具体的な使い方

ディスクコピーの例

$ sudo dd if=/dev/sda of=/dev/sdb bs=4M status=progress

👇出力結果

4260659200 bytes (4.3 GB, 4.0 GiB) copied, 20 s, 213 MB/s
1024+0 records in
1024+0 records out
4294967296 bytes (4.3 GB, 4.0 GiB) copied, 20.1254 s, 213 MB/s

この例では、/dev/sda(入力元のディスク)の内容を/dev/sdb(出力先のディスク)にそのままコピーしています。bs=4Mはブロックサイズを4MBに設定し、転送速度を向上させています。status=progressオプションを追加することで、コピーの進行状況をリアルタイムで確認できます。このコマンドは、ディスク全体のバックアップを作成する際によく使用されます。

ランダムデータ生成

$ dd if=/dev/urandom of=random_file bs=1M count=100 status=progress

👇出力結果

100663296 bytes (101 MB, 96 MiB) copied, 0.453453 s, 222 MB/s
100+0 records in
100+0 records out
104857600 bytes (105 MB, 100 MiB) copied, 0.472614 s, 222 MB/s

この例では、/dev/urandom(ランダムデータソース)から100MBのランダムデータを生成し、'random_file'という名前のファイルに書き込んでいます。bs=1Mでブロックサイズを1MBに設定し、count=100で100ブロック(つまり100MB)のデータを生成しています。status=progressオプションにより、進行状況がリアルタイムで表示されます。

ISOイメージの作成

$ sudo dd if=/dev/cdrom of=ubuntu.iso bs=4M status=progress

👇出力結果

1046478848 bytes (1.0 GB, 998 MiB) copied, 60 s, 17.4 MB/s
250+1 records in
250+1 records out
1051721728 bytes (1.1 GB, 1003 MiB) copied, 60.4815 s, 17.4 MB/s

この例では、物理CDROMドライブ(/dev/cdrom)からISOイメージファイル(ubuntu.iso)を作成しています。bs=4Mでブロックサイズを4MBに設定し、読み取り速度を向上させています。status=progressオプションにより、イメージ作成の進行状況をリアルタイムで確認できます。

ddに関するよくある質問

Q. ddコマンドは危険?
A. ddコマンドは非常に強力で、誤って使用すると重大なデータ損失を引き起こす可能性があります。特に、出力先(of=)を間違えると、重要なデータを上書きしてしまう危険があります。そのため、ddコマンドを使用する際は細心の注意を払い、実行前に入力と出力のパラメータを必ず確認する必要があります。
Q. ddでのブロックサイズ(bs)の意味は?
A. ddコマンドのbs(ブロックサイズ)オプションは、一度に読み書きするデータの量を指定します。適切なブロックサイズを設定することで、転送速度を最適化できます。一般的に、大きなブロックサイズ(例:bs=4M)を使用すると、大容量データの転送が高速化されますが、使用するメモリも増加します。小さなファイルや精密な制御が必要な場合は、小さなブロックサイズが適しています。
Q. ddでファイルのバックアップは可能?
A. はい、ddコマンドを使ってファイルのバックアップを作成することができます。例えば、'dd if=元ファイル of=バックアップファイル bs=4M'のように使用します。ただし、通常のファイルバックアップには、cp、rsync、tarなどのコマンドの方が適しています。ddは主にディスクイメージの作成やデバイスレベルのコピーに使用されます。

ddが学べる書籍の紹介

「プログラミング単語帳」を使って、プログラミングの単語を英単語のように学習してみませんか?
プログラミング単語帳には、Linuxのddやhdparm、blkid、parted、などのような実務でよく使われる単語が数百以上収録されています。
この書籍には、プログラミングの単語の意味や読み方、単語の使い方がわかる例文などが掲載されており、いつでもどこでもプログラミングの学習ができます。

よく使われる単語にだけ絞って学習することができるので、効率的にプログラミングが学習できます。

1日5分の暗記でプログラミンが身に付く!プログラミング単語帳 公式ストアで発売中!

HTML編、CSS編、JavaScript編、PHP編、Ruby編、その他単語編の6シリーズ分が公式ストアにて販売中です。気になった方はぜひ購入してみてください。


Linuxを学べる「プログラミング単語帳」アプリ

プログラミング単語帳がアプリになりました!Linuxはもちろん、10種類のプログラミング言語の中から、よく使われる単語をスマホで学習できます。

収録単語は2,000単語以上!
現在は、HTML、CSS、JavaScirpt、PHP、Laravel、Ruby、Python、MySQL、Linux、など10カテゴリーの単語帳が1つのアプリに収録されています。

いつでも、どこでも、隙間時間を有効活用して、プログラミングを効率的に学べるので、ぜひダウンロードしてみてください。

2024年7月アップデート情報:「Laravel」カテゴリーが追加されましました!

2024年8月アップデート情報:「MySQL」「Linux」カテゴリーが追加されましました!


関連するそのほかの単語

hdparm

ディスク設定ツール

種類: ディスクパラメータ

blkid

ブロックデバイスの情報表示

種類: デバイス管理

parted

高度なディスクパーティション管理

種類: ディスク管理

whoami

現在のユーザー名を表示

種類: システム情報表示

>>

追記リダイレクト

種類: ストリーム制御