1.23. dd命令

1.功能说明

dd命令用来转换或复制文件,同时可以对设备进行备份。其格式如下。

dd if="input_file" of="output_file" bs="block_size" count="number"
dd命令的选项及其说明如下。

if:就是输入文件,可以是设备,例如,磁盘某分区或者整个磁盘。
of:就是输出文件,也可以是输出设备,例如,磁盘、磁带等。
bs:指定一个block的大小,如果没有指定,默认为512字节。
count:就是“bs”的数量。

2.举例

1)将/etc/inittab文件备份到/opt/inittab.bak中。

[root@mylinux ~]# dd if=/etc/inittab  of=/opt/inittab.bak

2)将/dev/sda2整个分区进行备份,保存备份文件到/opt目录。

[root@mylinux ~]# dd if=/dev/sda2 of=/opt/sda2.back

3)将上面例子中的备份包/opt/sda2.back恢复到相应的分区,使用以下命令。

[root@mylinux ~]#dd if=/opt/sda2.back of=/dev/sda2

注意 在恢复目标分区时,一定要先卸载目标分区,待恢复完成,再迚行挂载。

还需要注意的是,备份的分区最好和恢复的分区一致,
例如,本例中“/opt/sda6.back”文件是对“/dev/sda2”分区的备份,
那么恢复的时候最好将“/opt/sda6.back”文件恢复到“/dev/sda2”分区下,
或者恢复到大小与“/dev/sda2”一致的分区下。
因为恢复的目标分区如果大于备份的分区,将浪费空间;
相反,若恢复的目标分区小于备份的分区,就将在恢复的时候提示空间不足。
dd命令用于按照指定大小和个数的数据块来复制文件或转换文件,格式为“dd [参数]”。
dd命令是一个比较重要而且比较有特色的一个命令,
它能够让用户按照指定大小和个数的数据块来复制文件的内容。当然如果愿意的话,
还可以在复制过程中转换其中的数据。Linux系统中有一个名为/dev/zero的设备文件,
每次在课堂上解释它时都充满哲学理论的色彩。因为这个文件不会占用系统存储空间,
但却可以提供无穷无尽的数据,因此可以使用它作为dd命令的输入文件,来生成一个指定大小的文件。
参数                  作用
if                  输入的文件名称
of                  输出的文件名称
bs                  设置每个“块”的大小
count               设置要复制“块”的个数
#从/dev/zero设备文件中取出一个大小为560MB的数据块,然后保存成名为560_file的文件
$ dd if=/dev/zero of=560_file count=1 bs=560M


# 光驱设备中的光盘制作成iso格式的镜像文件,在Windows系统中需要借助于第三方软件才能做到,但在Linux系统中可以直接使用dd命令来压制出光盘镜像文件,将它编程一个可立即使用的iso镜像
dd if=/dev/cdrom of=RHEL-server-7.0-x86_64-LinuxProbe.Com.iso




# 创建一个内容全部为0的1G大小的文件
dd if=/dev/zero of=hujianli.iso bs=1M count=1024

# 向/dev/null中传输大量的数据,来检测内存的操作速度
$ dd if=/dev/zero of=/dev/null bs=1M count=1024
记录了1024+0 的读入
记录了1024+0 的写出
1073741824 bytes (1.1 GB, 1.0 GiB) copied, 0.0290159 s, 37.0 GB/s



# 创建ISO镜像
dd if=/dev/cdrom of=image.iso


mkisofs 命令可以创建ISO镜像文件。该命令生成的输出文件能够被 cdrecord 这类实用工具
刻录到CD-ROM或DVD-ROM。我们需要将所有文件放入同一个目录中,然后用 mkisofs 命令将
整个目录中的内容写入ISO文件:

$ mkisofs -V "Label" -o image.iso source_dir/

1.23.1. 1.能够起到闪存或者硬盘的混合型ISO

下面的命令能够制作出可引导的ISO文件:
# isohybrid image.iso
这个混合型ISO文件可用于写入USB存储设备。
将该ISO写入USB存储设备:
# dd if=image.iso of=/dev/sdb1
你可以用相应的设备代替/dev/sdb1,或者使用 cat 命令:
# cat image.iso >> /dev/sdb1

1.23.2. 2. 用命令行刻录ISO

cdrecord 命令可以将ISO文件刻入CD-ROM或DVD-ROM。
使用下列命令刻录CD-ROM:

# cdrecord -v dev=/dev/cdrom image.iso
还有一些其他的选项,如下所示。
  使用 -speed 选项指定刻录速度:
-speed SPEED
例如:
# cdrecord -v dev=/dev/cdrom image.iso -speed 8


参数8表明其刻录速度为8x。
  刻录CD-ROM时也可以采用多区段(multi-session)方式,这样就能在一张光盘上分多次

刻录数据。多区段刻录需要使用 -multi 选项:
# cdrecord -v dev=/dev/cdrom image.iso -multi

1.23.3. 3. 玩转CD-ROM托盘

$ eject
这个命令可以弹出光驱托盘。
$ eject -t
这个命令可以合上光驱托盘。