Skip to content

Commit 09c98d8

Browse files
committed
add dd tool usage
1 parent b1de4d2 commit 09c98d8

2 files changed

Lines changed: 48 additions & 1 deletion

File tree

‎README.md‎

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,4 +11,5 @@
1111
4. how to cross-compile, like ARM platform
1212
5. how to compile Vi IMproved from source and some VIM settings fitting for programming under vim
1313
6. how to use GCC and gdb to compile and debug
14-
7.
14+
7. dd.md - - - some usage of "dd" tool
15+
8.

‎dd.md‎

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
# dd 使用
2+
3+
## 使用 dd 拷贝数据,从小分区到大分区
4+
因为`dd``扇区对扇区` 的命令,也就是 **原样无脑复制**
5+
6+
sudo dd if=<SOURCE_BLOCK_FILE> of=<TARGET_BLOCK_FILE>
7+
sudo e2fsck -f <TARGET_BLOCK_FILE>
8+
sudo resize2fs <TARGET_BLOCK_FILE>
9+
10+
然后查看分区状态,应该由 `dirty` 变成 `clean`
11+
12+
## 使用 信号 来显示 dd 进度
13+
14+
linux下显示dd命令的进度:
15+
16+
dd if=/dev/zero of=/tmp/zero.img bs=10M count=100000
17+
18+
想要查看上面的dd命令的执行进度,可以使用下面几种方法:
19+
比如:每5秒输出dd的进度
20+
方法一:
21+
22+
watch -n 5 pkill -USR1 ^dd$
23+
24+
方法二:
25+
26+
watch -n 5 killall -USR1 dd
27+
28+
方法三:
29+
30+
while killall -USR1 dd; do sleep 5; done
31+
32+
方法四:
33+
34+
while (ps auxww |grep " dd " |grep -v grep |awk '{print $2}' |while read pid; do kill -USR1 $pid; done) ; do sleep 5; done
35+
36+
上述四种方法中使用三个命令:`pkill、killall、kill`向 dd 发送`SIGUSR1`信息,dd命令进程接收到信号之后就打印出自己当前的进度。
37+
38+
PS: 发送信号使daemon重新载入configure file
39+
40+
kill -HUP $pid
41+
42+
## dd 备份的替代方式
43+
44+
rsync -av // have an installed Linux instead Live CD
45+
46+
或者寻找 `g4l` (ghostforlinux)

0 commit comments

Comments
 (0)