使用dd备份裸设备
- 格式:docx
- 大小:16.77 KB
- 文档页数:4
(脱机)使用linux tar+dd进行系统备份恢复2017年4月17日14:39源环境:sda:16G安装操作系统CentOS6.5#fdisk-l#df-h备份挂载网络文件夹mkdir/backup;mount-t nfs192.168.1.4:/u01/backup/ddtest/backup备份分区表fdisk-l>/backup/partition.cfg备份LVM卷元数据,将卷信息导出到文件。
vgcfgbackup-f/backup/vg.cfg备份mbrdd if=/dev/sda of=/backup/mbr.bak bs=512count=1备份/boot分区。
dd if=/dev/sda1of=/backup/sda1.bak使用tar命令,备份上面的所有分区和数据。
chroot/mnt/sysimagetar cvpzf os.tgz–-exclude=/boot–exclude=/proc–exclude=/sys–exclude=/dev–exclude=/mnt–exclude=/media–exclude=/os.tgz/exitmv/mnt/sysimage/os.tgz/backup/目的环境sda:16G恢复恢复mbr以光盘Rescue installed system模式启动,过程中要启用网络并分配IP,Rescue最后一步选择skip不要挂载原系统mkdir/backup;mount-t nfs192.168.1.4:/u01/backup/ddtest/backupdd if=/backup/mbr.bak of=/dev/sda bs=512count=1恢复完成后重启服务器以光盘Rescue installed system模式启动,过程中要启用网络并分配IP,Rescue最后一步选择skip不要挂载原系统此时已经识别出sda1,sda2根据备份出来的分区表,创建分区,创建LVM(磁盘不一样大的情况下)或恢复LVM(磁盘一样大小) mkdir/backup;mount-t nfs192.168.1.4:/u01/backup/ddtest/backup参照备份是的fdisk-l输出格式化分区,配置LVMpvcreate/dev/sda2vgcreate VolGroup/dev/sda2lvcreate-L1715M-n lv_swap VolGroupvgdisplay VolGroup|grep Freelvcreate-l3541-n lv_root VolGroup或vgcfgrestore-f/backup/vg.cfg VolGroup提示:Couldn't find device with uuid O01Y3a-jHmn-2GxF-FzIP-EcKu-xbYJ-RvSF2T Cannot restore Volume Group VolGroup with1PVs marked as missing. Restore failedpvcreate-u O01Y3a-jHmn-2GxF-FzIP-EcKu-xbYJ-RvSF2T--restorefile/bakcup/vg.cfg/dev/sda2vgcfgrestore-f/backup/vg.cfg VolGrouplvm vgscan--mknodes--ignorelockingfailurelvm vgchange-ay--ignorelockingfailurels/dev/mapper/mkswap/dev/mapper/VolGroup-lv_swapswapon/dev/mapper/VolGroup-lv_swapmkfs.ext4/dev/mapper/VolGroup-lv_rootmkdir/dest_root;mount/dev/mapper/VolGroup-lv_root/dest_root tar zxvpf/backup/os.tgz–C/dest_rootmkdir/dest_root/boot恢复/boot分区dd if=/backup/sda1.bak of=/dev/sda1恢复完成后重启服务器验证:异机恢复后网卡需要根据mac重新配置磁盘分区和源环境保持一致(相同磁盘大小LVM恢复模式)源环境的mysql数据也是一致总结:备份/boot时间短,数据/备份时间按实际数据大小不同恢复/boot时间短,数据/恢复时间按实际数据大小不同如果虚拟机的话,vmdk文件如果选择thin provision,只占用实际使用空间(比如磁盘10g,s数据1G,恢复后只占用1G)折腾了一天,经验:1.备份/数据是一定要exclude/boot2.恢复时先恢复/数据,再dd恢复/boot所在的分区,恢复完成先挂载,进去看看/boot,/boot/grub是否有异常目的磁盘与源磁盘分区不一致,或不使用LVM也没有问题,需要手动划分分区/boot使用的sda1使用dd恢复手动修改/etc/fstab手动修改/etc/grub.conf,如果设置,会出现下面的错误grub.conf例子:此处3个例子的/boot都是单独的分区,如果和/分区在一起,grub.conf的/都要改成/boot/未使用LVM的例子default=0timeout=5splashimage=(hd0,0)/grub/splash.xpm.gzhiddenmenutitle CentOS(2.6.32-431.el6.x86_64)root(hd0,0)kernel/vmlinuz-2.6.32-431.el6.x86_64ro root=UUID=b85277ba-bbe8-46f8-a0d7-7f44c96f2bcd rd_NO_LUKS rd_NO_LVM LANG=en_US.UTF-8rd_NO_MD SYSFONT=latarcyrheb-sun16crashkernel=auto KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM rhgb quietinitrd/initramfs-2.6.32-431.el6.x86_64.img使用LVM的例子default=0timeout=5splashimage=(hd0,0)/grub/splash.xpm.gzhiddenmenutitle CentOS(2.6.32-431.el6.x86_64)root(hd0,0)kernel/vmlinuz-2.6.32-431.el6.x86_64ro root=/dev/mapper/VolGroup-lv_root rd_NO_LUKS LANG=en_US.UTF-8 rd_NO_MD rd_LVM_LV=VolGroup/lv_swap SYSFONT=latarcyrheb-sun16crashkernel=autord_LVM_LV=VolGroup/lv_root KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM rhgb quietinitrd/initramfs-2.6.32-431.el6.x86_64.img恢复后手工修改的例子(未使用LVM,未使用UUID,使用给的设备名称)default=0timeout=5splashimage=(hd0,0)/grub/splash.xpm.gzhiddenmenutitle CentOS(2.6.32-431.el6.x86_64)root(hd0,0)kernel/vmlinuz-2.6.32-431.el6.x86_64ro root=/dev/sda3rd_NO_LUKS rd_NO_LVM LANG=en_US.UTF-8rd_NO_MD SYSFONT=latarcyrheb-sun16crashkernel=auto KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM rhgb quiet initrd/initramfs-2.6.32-431.el6.x86_64.img。
dd命令用法摘要:一、dd命令简介1.dd命令的作用2.dd命令的发展历程二、dd命令的基本用法1.基本语法2.主要参数3.常用选项三、dd命令的高级用法1.备份和恢复2.分区及格式化3.数据处理四、dd命令的应用场景1.系统迁移2.数据恢复3.分区调整五、dd命令的注意事项1.数据安全2.磁盘空间占用3.兼容性问题正文:dd命令,全称为“disk duplication”,是Linux和Unix系统中一个用于磁盘分区和文件拷贝的命令。
它具有强大的功能,可以实现磁盘分区之间的拷贝、文件备份及恢复等多种操作。
在Linux系统的运维和数据处理过程中,dd命令被广泛应用。
一、dd命令简介dd命令最早由Bill Joy在BSD Unix系统中开发,现在已经成为Linux和Unix系统中不可或缺的一个工具。
它的主要作用是进行磁盘分区和文件拷贝,对于系统和数据处理具有重要的意义。
二、dd命令的基本用法dd命令的基本语法为:`dd if=input_file of=output_filebs=block_size`。
其中,`if`参数表示输入文件,`of`参数表示输出文件,`bs`参数表示块大小。
主要参数包括:`if`、`of`、`bs`、`count`、`skip`和`seek`等。
常用选项有:`conv`、`notrunc`、`sync`和`noerror`等。
三、dd命令的高级用法dd命令在高级用法中,可以实现备份和恢复、分区及格式化、数据处理等多种功能。
例如,通过`dd if=/dev/sda1 of=/dev/sdb1`可以将一个分区的数据拷贝到另一个分区;通过`dd if=/dev/zero of=/dev/sda1 bs=1M`可以对一个分区进行格式化。
四、dd命令的应用场景dd命令在实际应用中,有广泛的应用场景。
如系统迁移时,可以使用dd 命令将系统盘的数据拷贝到新的硬盘上;数据恢复时,可以使用dd命令从损坏的磁盘分区中恢复数据;分区调整时,可以使用dd命令将分区数据拷贝到新的分区中。
dd备份裸设备v1.0---sydjd主要内容:1.UNIX使用dd对裸设备进行备份2.dd命令详解3.确定裸设备数据文件大小,验证备份(2个工具)MakingUser-ManagedBackupstoRawDevices裸设备是指一个磁盘或者分区,它不包含文件系统,所以一个裸设备只能包含一个文件。
通过操作系统来备份raw设备上的文件,需要注意一些细节问题。
下面具体讨论一下。
BackingUptoRawDevicesonUNIXUnix下备份raw设备,最常用的就是dd命令。
使用dd命令需要制定一些正确的参数,这些参数是基于你的os以及database的。
Howtoknowthesizeofyourfile?(确定count)非常简单,使用oracle提供的一个小工具:dbfsize(oracle自带,对数据文件和裸设备都有效)语法:在oracle用户下使用dbfsizeyour_file_nameorrawdevice那么count=49920+1–不要忘记block0(上面提到过哦:)BackingUpwiththeddutilityonUNIX:Examples为了使用dd,我们假设了如下的情况:∙要备份的数据文件:30720KB∙block0=8KB.∙rawoffset64KB.∙我们设定bs=8kNote:“=”左右不要有空格1)从raw设备备份到raw设备%ddif=/dev/rsd1bof=/dev/rsd2bbs=8kskip=8seek=8count=3841 2)裸设备到文件系统%ddif=/dev/rsd1bof=/backup/df1.dbfbs=8kskip=8count=3841 3)文件系统到裸设备%ddif=/backup/df1.dbfof=/dev/rsd2bbs=8kseek=84)文件系统到文件系统,你可以为了提升I/O把bs设为较高的数值%ddif=/oracle/dbs/df1.dbfof=/backup/df1.dbfbs=1024k BackingUptoRawDevicesonLNUIXLinux一般是没有offset的,其他与Unix相同。
使用dd命令进行磁盘镜像备份磁盘镜像备份是一种将整个硬盘或者某个分区的数据完整复制到另一个硬盘或者分区的方法。
这种备份方式可以保留原始硬盘或分区的所有数据和文件属性,包括文件系统类型、目录结构以及隐藏文件等。
在Linux系统中,dd命令是一个非常强大的工具,可以用来进行磁盘镜像备份。
下面将介绍如何使用dd命令进行磁盘镜像备份。
1. 确认目标设备在进行磁盘镜像备份之前,需要先确认目标设备的位置。
可以使用以下命令查看系统中已连接的硬盘和分区信息:```shellsudo fdisk -l```2. 运行dd命令备份磁盘镜像确认目标设备后,可以使用dd命令进行磁盘镜像备份。
以下是dd命令的基本语法:```shellsudo dd if=<源设备> of=<目标设备> bs=<块大小>```其中,if代表输入文件(源设备),of代表输出文件(目标设备),bs代表块大小。
输入文件应该是源设备的路径,输出文件应该是目标设备的路径。
块大小可以根据需要进行调整,一般建议使用默认的块大小。
例如,要备份/dev/sda设备的数据到/dev/sdb设备,可以使用以下命令:```shellsudo dd if=/dev/sda of=/dev/sdb bs=1M```这条命令会将/dev/sda设备的数据完整复制到/dev/sdb设备中。
3. 等待备份完成dd命令进行磁盘镜像备份时,可能需要一段时间才能完成,具体时间取决于源设备的大小和写入速度。
在备份过程中,请耐心等待,避免中断备份操作。
4. 验证备份结果备份完成后,可以使用md5sum命令验证源设备和目标设备之间的数据一致性。
以下是md5sum命令的使用方法:```shellsudo md5sum <设备路径>```例如,要验证/dev/sda设备和/dev/sdb设备的数据一致性,可以使用以下命令:```shellsudo md5sum /dev/sdasudo md5sum /dev/sdb```如果两个设备的MD5校验和相同,说明备份结果正确。
使用dd命令进行高级磁盘操作在计算机系统中,dd命令是一个非常有用的工具,它可以进行高级磁盘操作。
通过dd命令,我们可以进行磁盘的复制、备份和恢复等一系列操作。
本文将介绍dd命令的使用方法以及常见的应用场景。
一、dd命令的基本用法dd命令的语法格式如下:dd if=input_file of=output_file bs=block_size count=blocks其中,各参数的含义如下:- if:指定输入文件的路径和文件名。
- of:指定输出文件的路径和文件名。
- bs:指定块大小,用于控制每次读取和写入的字节数。
- count:指定要读取或写入的块数。
例如,如果我们要将/dev/sda磁盘的内容完整地复制到/dev/sdb磁盘上,可以使用以下命令:dd if=/dev/sda of=/dev/sdb bs=4M这个命令将以4MB为单位,从/dev/sda磁盘读取内容,并将其写入到/dev/sdb磁盘。
二、常见的dd命令应用场景1. 磁盘备份与复制dd命令可以用于将整个磁盘的内容进行备份,或者将一个磁盘的内容复制到另一个磁盘。
这在系统迁移、数据备份等场景中非常有用。
例如,我们可以使用以下命令将/dev/sda的内容备份到一个文件:dd if=/dev/sda of=/path/to/backup.img bs=4M在需要恢复时,可以使用以下命令将备份文件的内容写入到另一个磁盘:dd if=/path/to/backup.img of=/dev/sdb bs=4M2. 创建空白文件有时候,我们需要创建一个指定大小的空白文件,可以使用dd命令轻松完成。
例如,以下命令将创建一个大小为1GB的空白文件:dd if=/dev/zero of=/path/to/blankfile bs=1G count=1这个命令将从/dev/zero文件中读取数据,并将其写入到指定路径的文件中。
3. 磁盘擦除当需要彻底擦除磁盘的内容时,可以使用dd命令进行覆盖写操作。
linux中dd命令的详细解释在linux系统下我们可以通过dd命令来对文件进行拷贝并转换。
下面由店铺整理了linux的dd命令的详细解释,希望对你有帮助。
一、linux的dd命令的详细解释dd:用指定大小的块拷贝一个文件,并在拷贝的同时进行指定的转换。
注意:指定数字的地方若以下列字符结尾,则乘以相应的数字:b=512;c=1;k=1024;w=2参数注释:1. if=文件名:输入文件名,缺省为标准输入。
即指定源文件。
< if=input file >2. of=文件名:输出文件名,缺省为标准输出。
即指定目的文件。
< of=output file >3. ibs=bytes:一次读入bytes个字节,即指定一个块大小为bytes个字节。
obs=bytes:一次输出bytes个字节,即指定一个块大小为bytes 个字节。
bs=bytes:同时设置读入/输出的块大小为bytes个字节。
4. cbs=bytes:一次转换bytes个字节,即指定转换缓冲区大小。
5. skip=blocks:从输入文件开头跳过blocks个块后再开始复制。
6. seek=blocks:从输出文件开头跳过blocks个块后再开始复制。
注意:通常只用当输出文件是磁盘或磁带时才有效,即备份到磁盘或磁带时才有效。
7. count=blocks:仅拷贝blocks个块,块大小等于ibs指定的字节数。
8. conv=conversion:用指定的参数转换文件。
ascii:转换ebcdic为asciiebcdic:转换ascii为ebcdicibm:转换ascii为alternate ebcdicblock:把每一行转换为长度为cbs,不足部分用空格填充unblock:使每一行的长度都为cbs,不足部分用空格填充lcase:把大写字符转换为小写字符ucase:把小写字符转换为大写字符swab:交换输入的每对字节noerror:出错时不停止notrunc:不截短输出文件sync:将每个输入块填充到ibs个字节,不足部分用空(NUL)字符补齐。
Linux命令高级技巧使用dd命令进行磁盘镜像和备份Linux系统作为一种开源操作系统,具有强大的灵活性和可定制性,而dd命令则是其中一个非常强大且常用的命令。
dd命令可以进行磁盘镜像和备份,其灵活性使得它成为Linux系统管理员和维护人员的必备技能之一。
在本文中,我将为您介绍如何使用dd命令进行磁盘镜像和备份的高级技巧。
一、磁盘镜像磁盘镜像是将一个磁盘的完整内容复制到另一个磁盘或者文件中的过程。
它可以用于备份系统和数据,以及快速部署相同配置的多台机器。
使用dd命令进行磁盘镜像的基本语法为:dd if=输入文件 of=输出文件其中,if表示输入文件,可以是磁盘设备(如/dev/sda)或者文件(如/home/user/image.img),of表示输出文件,也可以是磁盘设备或者文件。
1. 镜像整个磁盘或分区要镜像整个磁盘或分区,您需要使用正确的输入文件和输出文件。
首先,您需要确定输入文件的路径,您可以使用lsblk命令查看系统中的磁盘和分区信息。
然后,使用以下命令进行镜像:dd if=/dev/sda of=/path/to/image.img此命令将/dev/sda设备的内容复制到/path/to/image.img文件中。
请确保输出文件的路径和文件名正确,并且有足够的存储空间。
2. 镜像单个文件系统有时候,您只需要镜像一个文件系统而不是整个磁盘。
为了做到这一点,您需要找到文件系统所在的分区,并使用相应的设备路径进行镜像。
例如,如果您想要镜像/dev/sda1分区,可以使用以下命令:dd if=/dev/sda1 of=/path/to/filesystem.img这将复制/dev/sda1分区的内容到/path/to/filesystem.img文件中。
确保输出文件的路径和文件名正确,并且有足够的存储空间。
3. 镜像文件系统的指定范围有时候,您可能只想镜像文件系统的某个指定范围,而不是整个文件系统。
dd命令功能很强大的,对于一些比较底层的问题,使用dd命令往往可以得到出人意料的效果。
用的比较多的还是用dd来备份裸设备。
但是不推荐,如果需要备份oracle裸设备,可以使用rman备份,或使用第三方软件备份,使用dd的话,管理起来不太方便。
建议在有需要的时候使用dd 对物理磁盘操作,如果是文件系统的话还是使用tar backup cpio等其他命令更加方便。
另外,使用dd对磁盘操作时,最好使用块设备文件。
DescriptionThe dd command reads the InFile parameter or standard input, does thespecified conversions, then copies the converted data to the OutFileparameter or standard output. The input and output block size can bespecified to take advantage of raw physical I/O. Note: The term Blockrefers to the quantity of data read or written by the dd command in oneoperation and is not necessarily the same size as a disk block.if=file 输入文件名标准输入确省of=file 输出文件名,标准输出确省ibs=n 输入块大小,n字节(默认512)obs=n 输出块大小,n字节(默认512)bs=n 同时设置输入输出块大小cbs=n 转换缓冲区大小files=n 在中断之前拷贝和转换n个输入文件skip=n 拷贝之前越过n个输入块oseek=n 拷贝之前从输出文件开始查找n个块iseek 拷贝之前从输入文件开始查找n个块seek=n 等同于oseekcono=ascic 将EBCDIC码转换为ASCIIebcdic ASCII->;EBCDICibm ASCII转换为EBCDIC码时轻微不同的映象blolk 将新栈中断的ASCII码记录转换为固定长度unblock 将固定长度的ASCII码记录转换为新行中断记录lcase 变换字将至低等情况ucase 变换字将至高等情况swab 交换每对字节noerrir 出错时不停止处理sync 将每个块填充到ibs输入设备:infile参数指定或标准输入实施指定的转换,然后复制转换数据到outfile 参数指定或标准输出。
dd 用法DD是一个非常有用的命令行工具,可以帮助用户在Linux操作系统中执行磁盘分区和磁盘映像操作。
DD有许多不同的用法和选项,它可以用于复制文件、制作恢复映像、备份磁盘等操作。
在这篇文章中,我们将讨论DD的用法,以及如何在Linux中使用它。
DD的最基本用法是将文件从一个设备复制到另一个设备中。
例如,如果你想将一个指定文件复制到一个SD卡中,你可以使用以下命令:dd if=/path/to/file of=/dev/sdX"if"选项定义输入文件,"of"选项定义输出文件。
在这个例子中,“/dev/sdX”指的是SD卡的设备节点,可以通过“lsblk”命令查看。
DD将从输入文件复制数据,逐字节写入到输出文件中。
这意味着DD将复制文件或磁盘镜像的所有数据——包括文件系统、分区表和引导记录——到目标设备中。
因此,在使用DD 时需要小心,因为它可能会覆盖目标设备中的现有数据。
要复制整个磁盘映像,你可以使用下列命令:dd if=/dev/sda of=/path/to/image.img这将从"/dev/sda"硬盘读取所有数据,并将其写入到一个名为"image.img"的文件中。
该文件可以作为磁盘映像备份和恢复工具,以便将整个磁盘还原回原始状态。
在某些情况下,可能需要将一个磁盘映像拆分成多个较小的文件,以便可以将它们储存在多个设备或媒体中。
DD允许在复制过程中设置输出文件大小限制。
例如:dd if=/dev/sda of=/path/to/image.img bs=1M count=1024这将从"/dev/sda"硬盘读取数据,并将输出写入一个名为"image.img"的文件中。
输出文件的块大小设置为1MB,总计写入1024个块。
这将创建一个1GB大小的映像文件,将硬盘映像分割为多个较小的部分。
dd命令用法摘要:一、dd 命令简介1.dd 命令的作用2.dd 命令的发展历程二、dd 命令的基本用法1.dd 命令的基本语法2.dd 命令的主要参数3.dd 命令的选项三、dd 命令的实际应用1.使用dd 命令进行磁盘分区2.使用dd 命令进行数据备份与恢复3.使用dd 命令进行镜像文件制作四、dd 命令的高级技巧1.dd 命令与内核参数的结合使用2.dd 命令与loop 设备的使用3.dd 命令与网络数据传输正文:dd 命令,全称为“disk duplication”,是Linux 系统中一个功能强大的磁盘操作工具。
该命令自Linux 内核0.99.pl2 版本开始引入,经历了多个版本的迭代与优化,现已成为Linux 系统中最常用、最实用的磁盘操作工具之一。
一、dd 命令简介dd 命令,主要用于实现磁盘分区、数据备份与恢复、镜像文件制作等功能。
其具有操作简单、功能强大、兼容性好等特点,是Linux 系统管理员和普通用户必备的磁盘操作工具。
二、dd 命令的基本用法dd 命令的基本语法为:```dd [选项] if=inputfile of=outputfile bs=block_size```其中,`if`表示输入文件,`of`表示输出文件,`bs`表示块大小。
主要参数有:1.if:输入文件,可以是磁盘设备、分区、文件等。
2.of:输出文件,可以是磁盘设备、分区、文件等。
3.bs:块大小,用于指定数据传输的块大小。
此外,dd 命令还支持多个选项,如`count`、`skip`、`seek`等,用于指定传输的数据块数量、跳过的块数量以及读写的起始位置等。
三、dd 命令的实际应用1.使用dd 命令进行磁盘分区```dd if=/dev/zero of=/dev/sda1 bs=1M count=1024```该命令将创建一个1024 个块(1MB)的磁盘分区。
2.使用dd 命令进行数据备份与恢复```# 备份数据dd if=/dev/sda1 of=/backup/sda1.img bs=4K# 恢复数据dd if=/backup/sda1.img of=/dev/sda1 bs=4K```该命令将把/dev/sda1分区的数据备份到/backup/sda1.img文件中,并在需要时将数据恢复到原始分区。
Linux命令高级技巧使用dd命令进行磁盘备份和恢复Linux命令高级技巧:使用dd命令进行磁盘备份和恢复Linux作为一个功能强大的操作系统,提供了众多强大的命令工具,其中dd命令是一个备受关注和广泛应用的工具。
dd命令不仅可以用于创建映像文件,还可以用于磁盘备份和恢复。
本文将介绍如何使用dd命令进行磁盘备份和恢复,以及一些高级技巧的使用。
一、磁盘备份1.1 备份整个磁盘要备份整个磁盘,可以使用以下命令:```sudo dd if=/dev/sda of=/path/to/backup.img```其中,if参数指定输入文件,即待备份的磁盘设备;of参数指定输出文件,即备份的映像文件,可以自定义路径。
1.2 备份指定分区如果只需要备份某个分区,可以使用以下命令:```sudo dd if=/dev/sda1 of=/path/to/backup.img```其中,if参数指定输入文件,即待备份的分区设备;of参数指定输出文件,即备份的映像文件。
二、磁盘恢复2.1 恢复整个磁盘要恢复整个磁盘,可以使用以下命令:```sudo dd if=/path/to/backup.img of=/dev/sda```其中,if参数指定输入文件,即备份的映像文件;of参数指定输出文件,即待恢复的磁盘设备。
2.2 恢复指定分区如果只需要恢复某个分区,可以使用以下命令:```sudo dd if=/path/to/backup.img of=/dev/sda1```其中,if参数指定输入文件,即备份的映像文件;of参数指定输出文件,即待恢复的分区设备。
三、dd命令高级技巧3.1 显示进度dd命令默认情况下不会显示进度,如果想要查看备份或恢复的进度,可以使用pv命令结合dd命令:```sudo dd if=/dev/sda | pv -s 100G | dd of=/path/to/backup.img```其中,-s参数指定了待备份设备的大小,pv命令会显示进度,便于查看备份进度。
dd命令用法摘要:1.引言2.dd 命令的基本概念3.dd 命令的使用方法4.dd 命令的参数5.dd 命令的应用实例6.结语正文:1.引言在Linux 系统中,数据驱动设备(Device Drivers)是一种特殊的应用程序,用于控制硬件设备。
它们运行在内核空间,具有较高的权限和性能。
数据驱动设备的开发涉及到许多底层技术和硬件知识,对于普通用户而言,学习和使用具有一定的难度。
本文将为大家介绍一个常用的数据驱动设备命令——dd 命令,并详细讲解其使用方法和参数。
2.dd 命令的基本概念dd 命令(原名:diskdump)是一个用于将磁盘上的数据读取到内存中或将内存中的数据写入到磁盘上的Linux 命令。
它主要用于磁盘镜像的创建、文件的复制、磁盘的分区等操作。
dd 命令的特点是速度快、性能高,因此在数据处理和磁盘操作中具有广泛的应用。
3.dd 命令的使用方法dd 命令的基本语法如下:dd [选项] [磁盘文件] [磁盘文件]...```其中,选项可以包括:- `if=<文件>`: 指定输入文件- `of=<文件>`: 指定输出文件- `bs=<大小>`: 指定数据块大小,单位为字节- `skip=<大小>`: 指定跳过的字节数- `count=<大小>`: 指定复制的字节数4.dd 命令的参数dd 命令的主要参数有:- `磁盘文件`: 指定要读取或写入的磁盘设备文件,如`/dev/sda` 或`/dev/hda`。
- `数据块大小`: 指定每次读写操作的数据块大小,单位为字节。
默认值为512 字节。
- `跳过的字节数`: 指定在读取或写入过程中跳过的字节数。
- `复制的字节数`: 指定要复制的字节数。
默认值为1024KB。
5.dd 命令的应用实例以下是dd 命令的一些应用实例:- 创建磁盘镜像:```dd if=/dev/sda of=/dev/sdb bs=1M此命令将把`/dev/sda` 磁盘上的数据复制到`/dev/sdb` 磁盘上,创建一个磁盘镜像。
linux命令--磁盘命令dd⽹上dd命令的⽂章有很多,这⾥只是⾃⼰做下简单的记录。
dd命令介绍作⽤是⽤指定⼤⼩的块拷贝⼀个⽂件,并在拷贝的同时进⾏指定的转换。
可以⽤于测试磁盘命令、数据备份或恢复等。
dd命令⽤于复制⽂件并对原⽂件的内容进⾏转换和格式化处理。
⽤的⽐较多的还是⽤dd来备份裸设备。
但是不推荐,如果需要备份oracle裸设备,可以使⽤rman备份,或使⽤第三⽅软件备份,使⽤dd的话,管理起来不太⽅便。
建议在有需要的时候使⽤dd 对物理磁盘操作,如果是⽂件系统的话还是使⽤ backup 等其他命令更加⽅便。
另外,使⽤dd对磁盘操作时,最好使⽤块设备⽂件。
dd --help 打印帮助dd 命令通⽤语法格式如下:dd [bs=<字节数>][cbs=<字节数>][conv=<关键字>][count=<区块数>][ibs=<字节数>][if=<⽂件>][obs=<字节数>][of=<⽂件>][seek=<区块数>][skip=<区块数>][--help][--version]dd if=path/to/input_file of=/path/to/output_file bs=block_size count=number_of_blocks命令简介主要选项(指定数字的地⽅若以下列字符结尾乘以相应的数字: b=512, c=1, k=1024, w=2, xm=number m):if=file 输⼊⽂件名,缺省为标准输⼊。
从file读取,如if=/dev/zero,该设备⽆穷尽地提供0,(不产⽣读磁盘IO)of=file 输出⽂件名,缺省为标准输出。
向file写出,可以写⽂件,可以写裸设备。
如of=/dev/null,"⿊洞",它等价于⼀个只写⽂件. 所有写⼊它的内容都会永远丢失. (不产⽣写磁盘IO)ibs=bytes ⼀次读⼊ bytes 个字节(即⼀个块⼤⼩为 bytes 个字节)。
dd重要参数dd参数适用范围dd拷贝oracle数据文件需要考虑的因素如何用dd测试磁盘速度?首先要了解两个特殊的设备:/dev/null:回收站、无底洞/dev/zero:产生字符测试磁盘写能力time dd if=/dev/zero of=/test.dbf bs=8k count=300000因为/dev//zero是一个伪设备,它只产生空字符流,对它不会产生IO,所以,IO都会集中在of 文件中,of文件只用于写,所以这个命令相当于测试磁盘的写能力。
测试磁盘读能力time dd if=/dev/sdb1 of=/dev/null bs=8k因为/dev/sdb1是一个物理分区,对它的读取会产生IO,/dev/null是伪设备,相当于黑洞,of 到该设备不会产生IO,所以,这个命令的IO只发生在/dev/sdb1上,也相当于测试磁盘的读能力。
测试同时读写能力time dd if=/dev/sdb1 of=/test1.dbf bs=8k这个命令下,一个是物理分区,一个是实际的文件,对它们的读写都会产生IO(对/dev/sdb1是读,对/test1.dbf是写),假设他们都在一个磁盘中,这个命令就相当于测试磁盘的同时读写能力。
是否需要skip数据文件的block 0?不需要。
因为block 0位于offset之后,而block 0是所有数据文件都需要的,无论它是基于裸备还是文件系统,且block0的大小只与oracle的block size有关,所以,把block 0也dd出来是必要的,不需要skip数据文件的block 0。
是否所有系统都有offset?不是。
aix和Turbo unix要注意offset,其他的一般没有。
如何计算数据文件的占用的实际空间大小?实际的数据文件大小是在dba_data_files中的bytes + 1* blocksize。
如:SQL> select file_name,bytes from dba_data_files;FILE_NAME BYTES BLOCKSIZE---------------------------------------- ---------- ----------/opt/oracle/oradata/test1/system01.dbf 360710144 8192在操作系统查看文件大小:[root@suk1 soft]# ls -l system01.dbf-rw-r--r-- 1 oracle oinstall 360718336 Nov 15 11:53 system01.dbf360718336 = 360710144 + 8192 (8192是数据文件所在表空间的blocksize)一个裸设备的数据文件最多可以是多大?这个和具体的操作系统和数据文件所在表空间的blocksize有关。
使用dd命令在Linux系统中进行磁盘和分区操作在Linux系统中,磁盘和分区操作是系统管理的重要一环。
使用dd命令,我们可以进行磁盘镜像、分区备份和数据恢复等操作。
本文将详细介绍dd命令的使用方法和相关技巧。
一、磁盘镜像磁盘镜像是将整个磁盘的数据完全复制到一个文件中,以便在需要时进行还原或备份。
使用dd命令可以方便地进行磁盘镜像操作。
以下是dd命令进行磁盘镜像的基本格式:```dd if=/dev/sda of=/path/to/image.img```其中,if代表输入文件(源磁盘),of代表输出文件(目标文件)。
我们需要根据实际情况替换这些路径。
执行该命令后,dd将会逐扇区地复制磁盘的数据到目标文件中。
如果你希望显示dd命令的进度,可以添加progress参数:```dd if=/dev/sda of=/path/to/image.img status=progress```二、分区备份和恢复除了整个磁盘镜像,我们还可以使用dd命令备份和恢复单个分区。
以下是使用dd命令进行分区备份和恢复的基本格式:备份分区:```dd if=/dev/sda1 of=/path/to/partition.img```恢复分区:```dd if=/path/to/partition.img of=/dev/sda1```其中,if代表输入文件(源分区),of代表输出文件(目标分区)。
需要注意的是,恢复分区时应谨慎操作,以免覆盖重要数据。
三、填充磁盘空间在某些情况下,我们可能需要填充磁盘空间以保护隐私或提高磁盘性能。
dd命令可以帮助我们生成指定大小的随机数据,并将其写入磁盘中。
以下是填充磁盘空间的dd命令示例:```dd if=/dev/urandom of=/path/to/file bs=1M count=1024```上述命令将生成一个1GB大小的随机数据文件,并将其写入指定路径的文件中。
我们可以根据需要调整文件的大小(count参数)和写入的位置(of参数)。
如何使用dd命令进行磁盘映像和复制磁盘映像和复制是数据备份和恢复的重要操作,而dd命令是一种常用的磁盘操作工具。
本文将介绍如何使用dd命令进行磁盘映像和复制,包括dd命令的基本用法、常见的应用场景以及相关注意事项。
一、基本用法dd命令是Linux系统下的一个强大工具,可以用来读取和写入块设备数据。
它的基本用法如下:1. 指定输入和输出文件dd if=/dev/sda of=/path/to/image.img上述命令中,if参数指定输入文件即源磁盘,of参数指定输出文件即映像文件。
/dev/sda表示硬盘设备,/path/to/image.img是映像文件的路径和名称。
2. 指定数据块大小dd命令默认的数据块大小为512字节,但可以通过bs参数指定其他大小。
例如,要设置数据块大小为1MB,可以使用如下命令:dd if=/dev/sda of=/path/to/image.img bs=1M3. 显示操作进度使用status=progress参数可以在dd命令执行过程中显示操作的进度信息,方便用户监控操作状态。
例如:dd if=/dev/sda of=/path/to/image.img bs=1M status=progress二、应用场景1. 磁盘备份和还原使用dd命令进行磁盘映像可以将整个硬盘的数据备份到映像文件中,当需要还原系统时,可以将映像文件写入新硬盘中。
具体操作步骤如下:步骤1:创建磁盘映像dd if=/dev/sda of=/path/to/image.img bs=1M status=progress步骤2:还原磁盘映像dd if=/path/to/image.img of=/dev/sda bs=1M status=progress2. 文件系统克隆除了整个磁盘的备份和还原,dd命令还可以用于文件系统的克隆。
例如,将一个分区的数据克隆到另一个分区,可以按照以下步骤进行操作:步骤1:创建源分区的磁盘映像dd if=/dev/sda1 of=/path/to/source.img bs=1M status=progress步骤2:将磁盘映像写入目标分区dd if=/path/to/source.img of=/dev/sdb1 bs=1M status=progress3. 数据恢复与修复当硬盘或分区发生损坏时,可以使用dd命令从备份的映像文件中恢复数据。
1、裸设备定义:一块没有分区的硬盘,称为原始设备(RAW DEVICE)或者是一个分区,但是没有用EXT3,OCFS等文件系统格式化,称为原始分区(RAW PARTITIO N)以上两者都是裸设备2、裸设备的绑定有文件系统的分区是采用mount的方式挂载到某一个挂载点的(目录)而裸设备不能mount,只能绑定到/dev/raw/下的某一个设备名比如/dev/raw/raw13、裸设备的绑定方法有两种方法,这里介绍一种,另一种可以google搜索到修改/etc/sysconfig/rawdevices,添加以下内容,这里sdd1和sdd2是原始分区名或者原始设备(硬盘)名,raw1和raw2是/dev目录下的原始设备名,编号从raw1到raw255,也就是最多可以绑定2 55个裸设备/dev/raw/raw1 /dev/sdd1/dev/raw/raw2 /dev/sdd2然后修改裸设备的属主和访问权限chown oracle:dba /dev/raw/raw1chown oracle:dba /dev/raw/raw2chm od 660 /dev/raw/raw1chm od 660 /dev/raw/raw2最后使得裸设备生效,并且在机器启动的时候就自动加载执行/etc/init.d/rawdevices restart 使裸设备生效执行/sbin/chkconfig rawdevices on 保证机器启动的时候裸设备能够加载,这一步很重要4、裸设备的读写不能用cp等命令操作,写入内容用dd命令,可以参阅相关资料5、清空裸设备相当于格式化啦bs是块的大小,block sizecount是块的数量,这两者相乘大于裸设备的容量即可dd if=/dev/zero of=/dev/raw/raw1 bs=8192 count=12800dd if=/dev/zero of=/dev/raw/raw2 bs=8192 count=12800-------另外rhel4使用udev来管理设备手动修改/dev/raw/raw1 不能永久生效要想使得权限持久生效需要修改文件/etc/udev/permissions.d/50-udev.permissions 的第113行raw/*:root:disk:0660改成raw/*:oracle:dba:0660重启机器如果/dev/下没有/raw/ 目录,可以自己手工建立这几天看了一下linux下的裸设备管理,做了一些笔记,不敢独享,共享如下:(笔记的内容不一定正确,有错误请指出)1、什么裸设备?字符设备?块设备?裸设备:也叫裸分区(原始分区),是一种没有经过格式化,不被Unix/Linux通过文件系统来读取的特殊字符设备。
d d备份裸设备 ---s y d j d 主要内容:
1.UNIX使用dd对裸设备进行备份
2.dd命令详解
3.确定裸设备数据文件大小,验证备份(2个工具)
Making User-Managed Backups to Raw Devices
裸设备是指一个磁盘或者分区,它不包含文件系统,所以一个裸设备只能包含一个文件。
通过操作系统来备份raw设备上的文件,需要注意一些细节问题。
下面具体讨论一下。
Backing Up to Raw Devices on UNIX
Unix下备份raw设备,最常用的就是dd命令。
使用dd命令需要制定一些正确的参数,这些参数是基于你的os以及database的。
How to know the size of your file(确定count)
非常简单,使用oracle提供的一个小工具:dbfsize (oracle自带,对数据文件和裸设备都有效)
那么count=49920+1–不要忘记block 0 (上面提到过哦:)
Backing Up with the dd utility on UNIX: Examples 为了使用dd,我们假设了如下的情况:
•要备份的数据文件:30720KB
•block 0 =8 KB.
•raw offset 64 KB.
•我们设定bs=8k
Note:“=”左右不要有空格
1)从raw设备备份到raw设备
% dd if=/dev/rsd1b of=/dev/rsd2b bs=8k skip=8 seek=8 count=3841
2)裸设备到文件系统
% dd if=/dev/rsd1b of=/backup/ bs=8k skip=8 count=3841
3)文件系统到裸设备
% dd if=/backup/ of=/dev/rsd2b bs=8k seek=8
4)文件系统到文件系统,你可以为了提升I/O把bs设为较高的数值
% dd if=/oracle/dbs/ of=/backup/ bs=1024k
Backing Up to Raw Devices on LNUIX
Linux一般是没有offset的,其他与Unix相同。
Backing Up to Raw Devices on Windows
参考:
验证dd备份
使用oracle提供的工具dbv ,支持文件系统文件和裸设备。
对应中文:
检查的页总数: 1280
处理的页总数(数据): 150
失败的页总数(数据): 0
处理的页总数(索引): 127
失败的页总数(索引): 0
处理的页总数(其它): 1001
处理的总页数(段) : 0
失败的总页数(段) : 0
空的页总数: 0
标记为损坏的总页数: 2
流入的页总数: 0
Highest block SCN : 428223 参考文档:。