1. ホーム
  2. オペレーティングシステム
  3. リナックス

Linux ddコマンド詳細説明:データのバックアップ、およびバックアッププロセスでのフォーマット変換のケース

2022-01-13 10:17:08

ddコマンドは、主にデータのバックアップとバックアップ処理中のフォーマット変換に使用されます。実際、ddコマンドはソースデータをターゲットデータにコピーすることができ、ソースデータがファイル、パーティション、ディスク、CDのいずれであってもデータをバックアップすることができます。

ddコマンドの基本的な書式は次のとおりです。

[root@localhost ~]# dd if="input file" of="output file" bs="data block" count="number"

パラメータです。

  1. if: 入力データを定義したファイル。入力デバイスでもよい。
  2. of: 出力データを定義するファイル。出力デバイスにもなりうる。
  3. bs: データブロックのサイズを指定する。つまり、一度に何バイト読み書きを行うかを定義する。モードデータブロックサイズは512バイトです。
  4. count: bsの数を指定します。
  5. conv=flags: フラグに基づきファイルを変換します。フラグは以下の通りである。
    • ascii:EBCDICコードからASCIIコードに変換します。
    • ebcdic:ASCIIからEBCDICコードへの変換。
    • ibm:ASCIIから代替EBCDICコードへの変換。
    • block: 終了文字ブロックの改行を同じ長さのスペースに置き換えます。
    • unblock: cbsサイズのブロックの末尾のスペースを1つの改行文字で置き換えます。 {ブロックの解除 {を使用します。 lcase: 大文字を小文字に変換します。 {大文字を小文字に変換します。
    • notrunc: 出力ファイルを切り捨てない。
    • {を使用します。 ucase: 小文字を大文字に変換します。 {小文字を大文字に変換します。 {を使用します。 swab: 入力データバイトの各ペアをスワップします。 {スワップ
    • noerror: データを読み込む際にエラーが発生しても続行する。
    • {を使用します。 sync: 各入力データブロックをibsのサイズまでNUL文字で埋める。blockまたはunblockと組み合わせた場合、NUL文字は空白に置き換えられる。 {ブロックまたはブロック解除と組み合わせた場合、NUL文字はスペースに置き換えられます。

例1] バックアップファイル

[root@localhost ~]# dd if=/etc/httpd/conf/httpd.conf of=/tmp/httpd.bak
Recorded 67+1 reads in
# data accounts for 67 blocks of writes and 1 block of unwritten data
Recorded 67+1 writes out
#Default data block size is 512 bytes
34439 bytes (34 kB) copied, 0.0524897 seconds, 656 kB/sec
#If you want to backup files, then the dd command is very similar to the cp command
[root@localhost ~]# ll -h /tmp/httpd.bak
-rw-r--r--.1 root root 34K Jun 5 18:04 /tmp/httpd.bak
# check the size of the generated backup file

例2] パーティションをバックアップファイルとしてバックアップする場合

[root@localhost ~]# df -h
File System Capacity Used Available Used %% Mount Point
/dev/sda3 20G 2.0G 17G 11% /
tmpfs 306M 0 306M 0% /dev/shm
/dev/sda1 194M 27M 157M 15% /boot
/dev/sr0 3.5G 3.5G 0 100% /mnt/cdrom
#To check the partition capacity, we backup the /boot partition
[root@localhost ~]# dd if=/dev/sda1 of=/tmp/boot.bak
# backup completed
[root@localhost ~]# ll -h /tmp/boot.bak
-rw-r--r--.1 root root 200M June 5 18:14 /tmp/boot.bak
#View the generated backup file
# If you need to restore, then execute the following command
[root@localhost ~]# dd if=/tmp/boot.bak of=/dev/sda1

パーティションを直接別のパーティションにバックアップしたい場合は、新しいパーティションを生成する必要があります。このパーティションは、元のパーティションより小さくすることはできず、それと同じサイズかそれ以上のサイズのみです。コマンドは以下の通りです。

[root@localhost ~]# dd if=/dev/sda1 of=/dev/sdb1
# If you need to restore, simply reverse the input and output entries with the following command
[root@localhost ~]# dd if=/dev/sdb1 of=/dev/sda1

例3]. ディスク全体のバックアップ

{{コード

例4]・・・。フロッピーディスクをコピーする

{{コード

バックアップがCD-ROMの場合、LinuxではddというコマンドでCD-ROMのISOイメージを作成します。コマンドは以下の通りです。

[root@localhost ~]# dd if=/dev/sda of=/dev/sdb
# back up disk a to disk b
[root@localhost ~]# dd if=/dev/sda of=/tmp/disk.bak
# back up disk a to the file disk.bak
#backup restore
# If you want to back up to another drive, then simply replace the source drive with the backup drive when the source drive data is corrupted
#If you want to backup to a file, then you need to copy the backup data to another Linux during recovery, and then install the new hard disk to this Linux
# Server, then copy the disk backup data to the new hard disk. The command is as follows
[root@localhost ~]# dd if=/tmp/disk.bak of=/dev/sdb

スワップパーティションを追加する場合など、指定したサイズのファイルを作成する必要があることがありますが、これもddコマンドで行います。コマンドは以下の通りです。

[root@localhost ~]# dd if=/dev/fd0 of=/tmp/fd.bak
# In Linux, the device file name of a floppy disk is /dev/fd0
#This command first saves the data on the floppy disk as a temporary data file
[root@localhost ~]# dd if=/tmp/fd.bak of=/dev/fd0
# then replace the floppy with a new one and copy the data backup to the new floppy to achieve the floppy copy

ddコマンドは、ディスク全体のコピーに関してはGHOSTユーティリティと似ていますが、ddコマンドでコピーしたハードディスクのデータは、GHOSTでコピーしたハードディスクのデータよりもはるかに安定しています。ddコマンドは強力ですが、コピーに時間がかかるという明らかな欠点があり、100GBのデータをコピーするのに15分から25分かかります(サーバーの性能に依存します)。

他にもtarやcpioコマンドなど、データのバックアップを実施する方法やツールはたくさんあります。rsyncやscpなどのネットワークレプリケーションツールについては、習得するためにはネットワークの知識が必要なため、ここでは説明しません。

Linuxのddコマンドの詳細:データのバックアップ、およびフォーマット変換の場合のバックアッププロセスでは、このに導入され、より関連するLinuxのddコマンドの内容は、BinaryDevelopの過去の記事を検索してくださいまたは以下の関連記事を閲覧を継続、私はあなたが将来的にBinaryDevelopをよりサポート願っています!。