Linux

dd(data destroyer^H
dd(dataset definition)

プログレス確認

status=progress option( coreutils-8.24+ )

GNU Coreutils 8.24 で入った機能

 dd accepts a new status=progress level to print data transfer statistics
 on stderr approximately every second.
$ dd --help|grep status -A4
  status=LEVEL    The LEVEL of information to print to stderr;
                  'none' suppresses everything but error messages,
                  'noxfer' suppresses the final transfer statistics,
                  'progress' shows periodic transfer statistics

$ dd if=/dev/urandom of=/dev/null status=progress
327538176 bytes (328 MB, 312 MiB) copied, 20 s, 16.4 MB/s     

kill -SIGUSR1

dd のプロセスに対してSIGUSR1を投げると進捗が確認できる

% zcat cros.img.gz | sudo dd of=/dev/mmcblk0 bs=4M ;sync

のようにしておいてddのプロセス番号を確認

% ps -ef|grep dd
   :
root      9273 32218  0 17:57 pts/1    00:00:00 sudo dd of=/dev/mmcblk0 bs=4M
root      9276  9273  9 17:57 pts/1    00:00:00 dd of=/dev/mmcblk0 bs=4M

で,こんな感じに

0+243258 レコード入力
0+243258 レコード出力
1224679424 バイト (1.2 GB) コピーされました、 17.2794 秒、 70.9 MB/秒
0+302681 レコード入力
0+302681 レコード出力
1532985344 バイト (1.5 GB) コピーされました、 20.8063 秒、 73.7 MB/秒

なのでこんなとか

% sudo kill -USR1 $(pgrep ^dd)

こんな感じで

% watch -n10 'sudo kill -USR1 $(pgrep ^dd)'

pv

導入

$ apt install pv

利用例

% zcat cros.img.gz | pv | sudo dd of=/dev/mmcblk0 bs=4M
5.81GB 0:06:12 [15.2MB/s] [                           <=>                      ]
$ zcat raspbian_lite_latest.zip | pv -cN zcat | xz | pv -cN xz | dd of=./raspbian_lite_latest.xz
     zcat: 8.41MB 0:00:05 [1.09MB/s] [   <=>                                   ]
       xz: 3.96MB 0:00:05 [1.06MB/s] [   <=>                                   ]

ddrescue

dd じゃないけど

$ sudo apt install gddrescue
$ sudo ddrescue /dev/zero /dev/mmcblk0 --force
GNU ddrescue 1.19
Press Ctrl-C to interrupt
rescued:     2226 MB,  errsize:       0 B,  current rate:   34406 kB/s
   ipos:     2226 MB,   errors:       0,    average rate:     445 MB/s
   opos:     2226 MB, run time:       5 s,  successful read:       0 s ago
Copying non-tried blocks... Pass 1 (forwards)

ddすると重い/固まる

ionice

% zcat cros.img.gz | sudo ionice -c3 dd of=/dev/sdz

pv -L

% zcat cros.img.gz | pv -L 8192k | sudo dd of=/dev/sdz

cgroup

$ sudo mkdir /sys/fs/cgroup/blkio/dd
$ echo $$ | sudo tee -a /sys/fs/cgroup/blkio/dd/tasks 
26041
$ ls -l /dev/mmcblk0
brw-rw---- 1 root disk 179, 0 12月  6 18:42 /dev/mmcblk0
$ echo "179:0 1024" | sudo tee -a /sys/fs/cgroup/blkio/dd/blkio.throttle.write_bps_device 
179:0 1024
$ sudo dd if=/dev/zero of=/dev/mmcblk0 bs=4k count=10
10+0 レコード入力
10+0 レコード出力
40960 バイト (41 kB) コピーされました、 40.0136 秒、 1.0 kB/秒

mount中のファイルシステムに書き込もうとすると終了するscript

https://gist.github.com/matoken/e051cefb78594520038d

/usr/local/bin に dd として

$ wget -O - https://gist.githubusercontent.com/matoken/e051cefb78594520038d/raw/9ac20f31c590a043f1774f82068a99846ab7c4bb/dd.sh | sudo tee /usr/local/bin/dd
$ sudo chmod +x /usr/local/bin/dd
$ which dd
/usr/local/bin/dd
$ sudo which dd
/usr/local/bin/dd
$ sudo dd if=/dev/zero of=/dev/mmcblk0
/dev/mmcblk0 seems to specify the file system in the mount.
Force Quit.
$ sudo umount /dev/mmcblk0p1 
$ sudo dd if=/dev/zero of=/dev/mmcblk0


spam 避けですcheck を付けて下さい

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2015-12-06 (日) 18:05:47 (506d)