`

第九章 dd备份工具

 
阅读更多
我们在第八章当中的特殊 loop 装置挂载时使用过 dd 这个命令对吧? 不过,这个命令可不只是制作一个文件而已喔~这个 dd 命令最大的功效,鸟哥认为,应该是在於『备份』啊! 因为 dd 可以读取磁碟装置的内容(几乎是直接读取磁区"sector"),然后将整个装置备份成一个文件呢!真的是相当的好用啊~ dd 的用途有很多啦~但是我们仅讲一些比较重要的选项,如下:

[root@www ~]# dd if="input_file" of="output_file" bs="block_size" \
> count="number"
选项与参数:
if   :就是 input file 罗~也可以是装置喔!
of   :就是 output file 喔~也可以是装置;
bs   :规划的一个 block 的大小,若未指定则默认是 512 bytes(一个 sector 的大小)
count:多少个 bs 的意思。

范例一:将 /etc/passwd 备份到 /tmp/passwd.back 当中
[root@www ~]# dd if=/etc/passwd of=/tmp/passwd.back
3+1 records in
3+1 records out
1945 bytes (1.9 kB) copied, 0.000332893 seconds, 5.8 MB/s
[root@www ~]# ll /etc/passwd /tmp/passwd.back
-rw-r--r-- 1 root root 1945 Sep 29 02:21 /etc/passwd
-rw-r--r-- 1 root root 1945 Dec 17 18:09 /tmp/passwd.back
# 仔细的看一下,我的 /etc/passwd 文件大小为 1945 bytes,因为我没有配置 bs ,
# 所以默认是 512 bytes 为一个单位,因此,上面那个 3+1 表示有 3 个完整的 
# 512 bytes,以及未满 512 bytes 的另一个 block 的意思啦!
# 事实上,感觉好像是 cp 这个命令啦~

范例二:将自己的磁碟之第一个磁区备份下来
[root@www ~]# dd if=/dev/hdc of=/tmp/mbr.back bs=512 count=1
1+0 records in
1+0 records out
512 bytes (512 B) copied, 0.0104586 seconds, 49.0 kB/s
# 第一个磁区内含有 MBR 与 partition table ,透过这个动作,
# 我们可以一口气将这个磁碟的 MBR 与 partition table 进行备份哩!

范例三:找出你系统最小的那个分割槽,并且将他备份下来:
[root@www ~]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/hdc2             9.5G  3.9G  5.1G  44% /
/dev/hdc3             4.8G  651M  3.9G  15% /home
/dev/hdc1              99M   21M   73M  23% /boot  <==就捉他好了!
[root@www ~]# dd if=/dev/hdc1 of=/tmp/boot.whole.disk
208782+0 records in
208782+0 records out
106896384 bytes (107 MB) copied, 6.24721 seconds, 17.1 MB/s
[root@www ~]# ll -h /tmp/boot.whole.disk
-rw-r--r-- 1 root root 102M Dec 17 18:14 /tmp/boot.whole.disk
# 等於是将整个 /dev/hdc1 通通捉下来的意思~如果要还原呢?就反向回去!
# dd if=/tmp/boot.whole.disk of=/dev/hdc1 即可!非常简单吧!
# 简单的说,如果想要整个硬盘备份的话,就类似 Norton 的 ghost 软件一般,
# 由 disk 到 disk ,嘿嘿~利用 dd 就可以啦~厉害厉害!


你可以说, tar 可以用来备份关键数据,而 dd 则可以用来备份整颗 partition 或 整颗 disk ,很不错啊~不过,如果要将数据填回到 filesystem 当中, 可能需要考虑到原本的 filesystem 才能成功啊!让我们来完成底下的例题试看看:

例题:
你想要将你的 /dev/hdc1 进行完整的复制到另一个 partition 上,请使用你的系统上面未分割完毕的容量再创建一个与 /dev/hdc1 差不多大小的分割槽 (只能比 /dev/hdc1 大,不能比他小!),然后将之进行完整的复制 (包括需要复制 boot sector 的区块)。
答:
由於需要复制 boot sector 的区块,所以使用 cp 或者是 tar 这种命令是无法达成需求的! 此时那个 dd 就派的上用场了。你可以这样做:

# 1. 先进行分割的动作
[root@www ~]# fdisk -l /dev/hdc
   Device Boot   Start    End    Blocks   Id  System
/dev/hdc1   *        1     13    104391   83  Linux
# 上面鸟哥仅撷取重要的数据而已!我们可以看到 /dev/hdc1 仅有 13 个磁柱

[root@www ~]# fdisk /dev/hdc
Command (m for help): n
First cylinder (2354-5005, default 2354): 这里按 enter
Using default value 2354
Last cylinder or +size or +sizeM or +sizeK (2354-5005, default 5005): 2366

Command (m for help): p
   Device Boot   Start    End    Blocks   Id  System
/dev/hdc9         2354   2366    104391   83  Linux

Command (m for help): w
# 为什么要使用 2366 呢?因为 /dev/hdc1 使用 13 个磁柱,因此新的 partition
# 我们也给她 13 个磁柱,因此 2354 + 13 -1 = 2366 罗!

[root@www ~]# partprobe

# 2. 不需要格式化,直接进行 sector 表面的复制!
[root@www ~]# dd if=/dev/hdc1 of=/dev/hdc9
208782+0 records in
208782+0 records out
106896384 bytes (107 MB) copied, 16.8797 seconds, 6.3 MB/s

[root@www ~]# mount /dev/hdc9 /mnt
[root@www ~]# df
Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/hdc1               101086     21408     74459  23% /boot
/dev/hdc9               101086     21408     74459  23% /mnt
# 这两个玩意儿会『一模一样』喔!
[root@www ~]# umount /mnt


非常有趣的范例吧!新分割出来的 partition 不需要经过格式化,因为 dd 可以将原本旧的 partition 上面,将 sector 表面的数据整个复制过来! 当然连同 superblock, boot sector, meta data 等等通通也会复制过来!是否很有趣呢?未来你想要建置两颗一模一样的磁碟时, 只要下达类似: dd if=/dev/sda of=/dev/sdb ,就能够让两颗磁碟一模一样,甚至 /dev/sdb 不需要分割与格式化, 因为该命令可以将 /dev/sda 内的所有数据,包括 MBR 与 partition table 也复制到 /dev/sdb 说! ^_^


转自:http://vbird.dic.ksu.edu.tw/linux_basic/0240tarcompress_6.php
分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

    linuxdd命令备份与恢复.pdf

    Linux dd命令是一个功能强大且灵活的命令行工具,经常用于备份和恢复磁盘、分区、文件等数据。下面将对dd命令的应用实例进行详细介绍。 1. 将本地的 /dev/hdb整盘备份到 /dev/hdd dd if=/dev/hdb of=/dev/hdd 这...

    linux dd命令实用技巧总结

    Linux中的`dd`命令是一个非常强大的工具,常用于数据转换和复制。它的功能包括但不限于创建映像文件、格式化磁盘、数据迁移等。本文将深入探讨`dd`命令的基本用法及其各种实用技巧。 首先,`dd`命令的基本语法是: ...

    鸟哥Linux私房菜

    47. **dd**:在第八章第5.2节及第九章第6.1节中描述。dd命令是一个非常强大的文件复制工具,可用于制作磁盘镜像。 48. **declare**:在第十一章第2.6节中提及。declare命令用于声明变量的类型或属性。 49. **...

    iphone备份原文件

    7. **第三方工具**:除了Apple官方提供的方法外,还有许多第三方软件可以帮助管理和创建iPhone备份,如Dr.Fone、iMazing等,它们提供了更多定制选项和额外功能。 8. **备份的限制**:某些应用程序的数据可能不包含...

    鸟哥linux私房菜

    - **dump/dumpe2fs**:备份工具(dump)和文件系统检查工具(dumpe2fs),详情见第九章4.0节和第八章1.3节。 #### E - **e2label**:修改ext2/3文件系统的卷标,详情见第八章3.5节。 - **echo**:输出字符串到标准...

    linux鸟哥的私房菜基础版

    - **dd**:复制文件和转换数据格式的工具,在第八章第5.2节及第九章第6.1节介绍。 - **df**:显示磁盘空间使用情况,在第八章第2.1节讲解。 - **diff**:比较文件之间的差异,在第十二章第4.3节说明。 - **dump**:...

    RMAN备份与恢复

    ### RMAN备份与恢复知识点详解 #### 一、进入RMAN **1.1 连接本地数据库** 在Oracle环境中,可以通过以下两种方式连接到本地数据库: - 直接输入`rman target /` - 或者简写为`rman` 这种方式会提示用户输入...

    鸟哥的私房菜.pdf

    - 位置:第十二章、4.3 / 第十一章、6.4 / 第九章、2.1 - 描述:文件比较、列格式化及压缩相关命令。 22. **crontab** - 位置:第十六章、3.1 - 描述:用于定期执行任务的配置文件。 23. **cut/dirname/du** ...

    Linux系统开发

    - **dd**:第八章、5.2节和第九章、6.1节都提到了dd命令,这个强大的工具常用于数据备份、恢复以及磁盘分区等场景。 - **df**:第八章、2.1节讲解了df命令,它是用于显示磁盘空间使用情况的基本工具。 - **dump**:...

    补丁DD8.0-130109-13年01月09日.zip

    这里的"DD8.0"可能是指一个特定的软件系列或平台的第八个主要版本,而"130109"和"13年01月09日"则表明这个补丁是在2013年1月9日发布的。 在IT领域,补丁管理是维护系统安全和稳定的重要环节。补丁发布后,用户需要...

    linux学习资料1

    - **dd**:在第八章的5.2节和第九章的6.1节中介绍了dd命令的强大数据复制能力,常用于备份和恢复硬盘分区。 - **declare**:在第十一章的2.6节中讲解了如何使用declare命令声明变量及其属性。 - **df**:在第八章的...

    计算机导论第4章.ppt

    计算机导论第4章ppt知识点总结 本章主要讲述了电子表格软件Excel 2003的使用,包括工作表、工作薄及其有关概念、工作表的基本操作与格式化操作、Excel中的数据计算、图表的建立与编辑、数据管理等内容。下面是本章...

    linux使用书

    第九章、6.1 - **描述**:dd命令是一个强大的数据复制工具,可用于备份和恢复硬盘分区。 - **df**: - **章节**:第八章、2.1 - **描述**:df命令用于显示文件系统的磁盘空间使用情况。 ##### E - **echo**: -...

    第12章闪回技术.ppt

    Oracle 10g 的闪回技术是一种强大的数据库恢复工具,它允许用户撤销或恢复数据到之前的某个状态,而无需依赖传统的备份和恢复过程。这一技术显著增强了数据库的灵活性和容错能力。 **1. 闪回技术概述** 闪回技术在...

    linux下MYSQL数据库的备份脚本

    - 遍历所有数据库,并使用`$MYSQLDUMP -u $db_user -h $db_host -p$db_passwd $db | $GZIP -9 &gt; "$backup_dir/backup.0/$time.$db.gz"`命令将每个数据库备份为gz压缩文件。 ##### 9. 删除最旧的备份 - 如果存在`$...

    装机人员工具

    9. **硬件诊断**:硬盘健康检查工具(如HDDScan)和内存测试工具(如MemTest86)帮助识别硬件故障,确保硬件的稳定性。 10. **自动化工具**:装机人员可能会编写批处理脚本或使用自动化工具(如AutoIt、Ansible)来...

    补丁DD8.0-121229-12年12月29日

    3. **站内信模板备份**:若站点曾自定义过站内信模板,则需做好备份工作,尤其是id为9和10的站内信模板。 4. **集分宝数据调整**:升级后,站长需要根据实际情况重新配置集分宝的相关数据。 #### 六、常见问题...

Global site tag (gtag.js) - Google Analytics