Linux dd 命令怎么用?具体例子?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux dd 命令怎么用?具体例子?相关的知识,希望对你有一定的参考价值。

举个例子说明一下:

将硬盘a克隆到硬盘b :

dd if=/dev/sda of=/dev/sdb bs=4M

可能在这个过程中的速度会比较慢,但是是有原因的,因为有用的和无用的数据都要复制。

                                  ——答案来自<xisai>Linux界大牛老师

参考技术A 比如将硬盘a克隆到硬盘b :
dd if=/dev/sda of=/dev/sdb bs=4M
不过速度有点慢,因为有用的和无用的数据都要复制。
参考技术B dd命令:文件创建或复制命令
if=数据来源
of=数据存储目标
bs=1 blocksize 指定复制大小为复制单位
count=2 数量
seek=#: 创建数据文件时,跳过的空间大小;
备份和还原MBR文件:
dd if=/dev/sda of=/mnt/usb/mbr.backup bs=512 count=1
dd if=/mnt/usb/mbr.backup of=/dev/sda bs=512 count=1
创建1G大小的文件
dd if=/dev/zero of=/var/swapfile bs=1M count=1024
参考技术C time dd if=/dev/zero of=/dev/sda(这里就是你的硬盘) bs=1024k (块大小) count=1000(块数量) 这个是写测试
time dd if=/dev/sda of=/dev/null bs=1024k count=1000 这个是读测试追问

硬盘克隆怎么用这条命令?

参考技术D NAME
dd - convert and copy a file
SYNOPSIS
dd [OPERAND]...
dd OPTION
DESCRIPTION
Copy a file, converting and formatting according to the operands.
bs=BYTES
read and write BYTES bytes at a time (also see ibs=,obs=)
cbs=BYTES
convert BYTES bytes at a time
conv=CONVS
convert the file as per the comma separated symbol list
count=BLOCKS
copy only BLOCKS input blocks
ibs=BYTES
read BYTES bytes at a time (default: 512)
if=FILE
read from FILE instead of stdin
iflag=FLAGS
read as per the comma separated symbol list
obs=BYTES
write BYTES bytes at a time (default: 512)
of=FILE
write to FILE instead of stdout
oflag=FLAGS
write as per the comma separated symbol list
seek=BLOCKS
skip BLOCKS obs-sized blocks at start of output
skip=BLOCKS
skip BLOCKS ibs-sized blocks at start of input
status=noxfer
suppress transfer statistics

BLOCKS and BYTES may be followed by the following multiplicative suffixes: c =1, w =2, b =512, kB=1000, K =1024, MB =1000*1000, M =1024*1024, xM =M GB =1000*1000*1000, G =1024*1024*1024, and so on
for T, P, E, Z, Y.
Each CONV symbol may be:
ascii from EBCDIC to ASCII
ebcdic from ASCII to EBCDIC
ibm from ASCII to alternate EBCDIC
block pad newline-terminated records with spaces to cbs-size
unblock
replace trailing spaces in cbs-size records with newline
lcase change upper case to lower case
nocreat
do not create the output file
excl fail if the output file already exists
notrunc
do not truncate the output file
ucase change lower case to upper case
swab swap every pair of input bytes
noerror
continue after read errors
sync pad every input block with NULs to ibs-size; when used with block or unblock, pad with spaces rather than NULs
fdatasync
physically write output file data before finishing
fsync likewise, but also write metadata
Each FLAG symbol may be:
append append mode (makes sense only for output; conv=notrunc suggested)
direct use direct I/O for data
directory
fail unless a directory
dsync use synchronized I/O for data
sync likewise, but also for metadata
fullblock
accumulate full blocks of input (iflag only)
nonblock
use non-blocking I/O
noatime
do not update access time
noctty do not assign controlling terminal from file
nofollow
do not follow symlinks
Sending a USR1 signal to a running ‘dd’ process makes it print I/O statistics to standard error and then resume copying.
$ dd if=/dev/zero of=/dev/null& pid=$!
$ kill -USR1 $pid; sleep 1; kill $pid
18335302+0 records in 18335302+0 records out 9387674624 bytes (9.4 GB) copied, 34.6279 seconds, 271 MB/s
Options are:
--help display this help and exit
--version
output version information and exit

用dd备份Linux系统

参考技术A

dd - convert and copy a file



假设我们的系统是安装在/dev/sda磁盘上,现在我加入一个和sda一样大小的磁盘,并使用 dd 命令将sda拷过来:


dd对磁盘是极大的浪费,100G的硬盘只用1G,dd后的备份文件也是100G。所以在 dd 时可以指定 bs 和 count 。
我测试时还存在一个问题:



接下来取下sda,直接以sdb开机。和原来系统应该一模一样。

以上是关于Linux dd 命令怎么用?具体例子?的主要内容,如果未能解决你的问题,请参考以下文章

linux中的通配符[0-9]怎么用?举一个例子

怎样用文本文档写命令脚本文件? 有例子最好

C#中Substring具体怎么用?(复杂的例子看不懂)

ssh 命令怎么用?

spring boot怎么写具体get我只能用一个例子来描述

怎么用java程序对集合里的对象按对象的某个属性排序,这个属性是日期(YYYY-MM-DD hh:mm),最好有个例子。