dd
น่าแปลกใจ มันช่วยให้คุณทำสำเนาฮาร์ดไดรฟ์ไปที่อื่นฮาร์ดไดรฟ์เป็นศูนย์อย่างสมบูรณ์ ฯลฯ แต่เมื่อคุณเรียกใช้dd
คำสั่งคุณจะไม่สามารถบอกความคืบหน้าได้ มันอยู่ที่เคอร์เซอร์จนกว่าคำสั่งจะเสร็จสิ้นในที่สุด ดังนั้นหนึ่งมอนิเตอร์ dd คืบหน้าอย่างไร?
dd
น่าแปลกใจ มันช่วยให้คุณทำสำเนาฮาร์ดไดรฟ์ไปที่อื่นฮาร์ดไดรฟ์เป็นศูนย์อย่างสมบูรณ์ ฯลฯ แต่เมื่อคุณเรียกใช้dd
คำสั่งคุณจะไม่สามารถบอกความคืบหน้าได้ มันอยู่ที่เคอร์เซอร์จนกว่าคำสั่งจะเสร็จสิ้นในที่สุด ดังนั้นหนึ่งมอนิเตอร์ dd คืบหน้าอย่างไร?
คำตอบ:
อัปเดต 2016 : หากคุณใช้ GNU coreutils> = 8.24 (ค่าเริ่มต้นใน Ubuntu Xenial 16.04 ขึ้นไป) ดูวิธีที่ 2 ด้านล่างเพื่อดูวิธีอื่นในการแสดงความคืบหน้า
pv
ติดตั้งpv
และวางไว้ระหว่างdd
คำสั่งอินพุต / เอาต์พุตเท่านั้น
หมายเหตุ : dd
คุณไม่สามารถใช้มันเมื่อคุณเริ่มต้นแล้ว
จากคำอธิบายแพคเกจ :
pv
- Pipe Viewer - เป็นเครื่องมือที่ใช้เทอร์มินัลสำหรับตรวจสอบความคืบหน้าของข้อมูลผ่านไปป์ไลน์ สามารถแทรกลงในไพพ์ไลน์ปกติใด ๆ ระหว่างสองกระบวนการเพื่อให้เห็นภาพว่าข้อมูลกำลังผ่านไปเร็วแค่ไหนใช้เวลานานเท่าไหร่ถึงจะเสร็จสมบูรณ์และประมาณระยะเวลาที่จะเสร็จสิ้น
การติดตั้ง
sudo apt-get install pv
ตัวอย่าง
dd if=/dev/urandom | pv | dd of=/dev/null
เอาท์พุต
1,74MB 0:00:09 [ 198kB/s] [ <=> ]
คุณสามารถระบุขนาดโดยประมาณด้วย--size
ถ้าคุณต้องการการประมาณเวลา
ตัวอย่างสมมติว่าดิสก์ 2GB ถูกคัดลอกมาจาก / dev / sdb
คำสั่งโดยไม่ต้องpv
จะเป็น:
sudo dd if=/dev/sdb of=DriveCopy1.dd bs=4096
สั่งด้วยpv
:
sudo dd if=/dev/sdb | pv -s 2G | dd of=DriveCopy1.dd bs=4096
เอาท์พุท:
440MB 0:00:38 [11.6MB/s] [======> ] 21% ETA 0:02:19
การใช้งานอื่น ๆ
แน่นอนคุณสามารถใช้pv
โดยตรงเพื่อไพพ์เอาต์พุตไปยัง stdout:
pv /home/user/bigfile.iso | md5sum
เอาท์พุต
50,2MB 0:00:06 [8,66MB/s] [=======> ] 49% ETA 0:00:06
โปรดทราบว่าในกรณีนี้pv
จดจำขนาดโดยอัตโนมัติ
status
เพิ่มตัวเลือกใหม่ในdd
(GNU Coreutils 8.24+)dd
ใน GNU Coreutils 8.24+ (Ubuntu 16.04 และใหม่กว่า) มีstatus
ตัวเลือกใหม่เพื่อแสดงความคืบหน้า:
dd if=/dev/urandom of=/dev/null status=progress
462858752 bytes (463 MB, 441 MiB) copied, 38 s, 12,2 MB/s
dd if=/dev/zero bs=1M count=35000 | pv | dd of=VirtualDisk.raw
(ส่วนการป้อนข้อมูลของท่อ):
pv bigfile.iso | dd of=VirtualDisk.raw bs=1M count=35000
ทำงานได้รับการยืนยัน @SopalajodeArrierez สามารถกำหนดพารามิเตอร์ใน dd ตัวที่สอง
pv < /dev/sda > /dev/sdb
ดูเหมือนว่าจะได้รับความเร็วที่ดีกว่า ( แหล่งที่มา )
dd if=/dev/urandom | pv | of=/dev/sdb
ให้การเขียน ~ 18MB / s, dd if=/dev/zero | pv | of=/dev/sdb
ให้ ~ 80MB / s, และธรรมดาธรรมดาdd if=/dev/zero of=/dev/sdb
ให้ ~ 550MB / s (ใกล้กับความเร็วการเขียนสูงสุดของ SSD) bs=4096000
ทั้งหมดที่มี
จากHowTo: ตรวจสอบความคืบหน้าของวว
คุณสามารถตรวจสอบความคืบหน้าของ dd โดยไม่ต้องหยุดโดยใช้kill
คำสั่ง
หากต้องการดูความคืบหน้าของการดำเนินการdd
ทันทีให้เปิดเทอร์มินัลอื่นแล้วป้อน:
sudo kill -USR1 $(pgrep ^dd)
สิ่งนี้จะแสดงdd
ความคืบหน้าในdd
หน้าต่างเทอร์มินัลโดยไม่หยุดกระบวนการ หากคุณอยู่ใน BSD หรือ OS X ใช้แทนINFO
สัญญาณจะยุติ DDUSR1
USR1
หากคุณต้องการได้รับการอัปเดตdd
ความคืบหน้าเป็นประจำให้ป้อน:
watch -n5 'sudo kill -USR1 $(pgrep ^dd)'
watch
จะสอบสวนdd
กระบวนการทุก ๆ -n วินาที ( -n5
= 5 วินาที) และรายงานโดยไม่หยุด
บันทึกเครื่องหมายคำพูดเดี่ยวที่เหมาะสมในคำสั่งด้านบน
kill -INFO $(pgrep ^dd$)
กับระบบ BSD (เช่น OSX)
sudo pkill -usr1 dd
จำได้ง่ายกว่าทำงานได้ดีอย่างสมบูรณ์ (อย่างน้อยใน Ubuntu 14.04) และพิมพ์น้อยกว่า
pv
การถ่ายโอนจะช้าลงอย่างที่ TeddHansen แสดง นอกจากนี้ฉันจะเดิมพันคนจำนวนมากกำลัง Googling นี้เพราะพวกเขาแล้วเริ่มต้นdd
การดำเนินงาน)
ตัวอย่างเล็ก ๆ น้อย ๆ ที่มีประโยชน์ใช้กับpv
และพิมพ์น้อยลงหรือความคืบหน้ามากขึ้นแล้วคำตอบอื่น ๆ :
ก่อนอื่นคุณจะต้องติดตั้งpv
โดยใช้คำสั่ง:
sudo apt-get install pv
จากนั้นตัวอย่างบางส่วนคือ:
pv -n /dev/urandom | dd of=/dev/null
pv -tpreb source.iso | dd of=/dev/BLABLA bs=4096 conv=notrunc,noerror
หมายเหตุ: ตัวอย่างแรกคือ 5 dd if=/dev/urandom | pv | dd of=/dev/null
ตัวอักษรพิมพ์น้อยลงแล้ว
และฉันชอบโคลนดิสก์ไดรฟ์ (แทนที่ X ด้วยตัวอักษรไดรฟ์):
(pv -n /dev/sdX | dd of=/dev/sdX bs=128M conv=notrunc,noerror) 2>&1 | dialog --gauge "Running dd command (cloning), please wait..." 10 70 0
แหล่งที่มา: http://www.cyberciti.biz/faq/linux-und-dd-command-show-progress-while-coping/
นอกจากนี้สำหรับการเก็บถาวรตัวเอง
dialog
พร้อมกับคำสั่งด้วยapt-get install dialog
dialog
ตัวอย่างเช่น เซเรนิตี้ตอนนี้ !
dialog
สิ่งนี้จะช่วยในการเขียนสคริปต์เชลล์อย่างไม่น่าเชื่อ: D
brew install pv dialog
สำหรับ Mac สุภาพบุรุษคนนี้ยังคำนวณด้วยสไตล์ ไชโย
ใช้Ctrl+ Shift+ Tในขณะที่dd
ทำงานและมันจะออกความคืบหน้า (เป็นไบต์)
load: 1.51 cmd: dd 31215 uninterruptible 0.28u 3.67s
321121+0 records in
321120+0 records out
164413440 bytes transferred in 112.708791 secs (1458745 bytes/sec)
dd
สายจาก
^T
ไปยังเครื่องเทอร์มินัลเท่านั้น (ยกเว้นแอปเทอร์มินัลจำนวนมากจะขัดขวาง Ctrl-Shift-T และเปิดแท็บใหม่) ผู้ค้นหาหลายคนใน OSX / BSD อาจชื่นชมคำตอบนี้ แต่ควรชัดเจนว่าไม่ใช่สำหรับ Ubuntu (หรือ GNU / LInux โดยทั่วไปใช่ไหม)
เพื่อความสมบูรณ์:
coreutilsของGNUเวอร์ชั่น8.24มีแพตช์สำหรับ dd แนะนำพารามิเตอร์เพื่อพิมพ์ความคืบหน้า
การกระทำที่แนะนำการเปลี่ยนแปลงนี้มีความคิดเห็น:
dd: สถานะใหม่=ระดับความคืบหน้าในการพิมพ์สถิติเป็นระยะ
ดิสทริบิวชันมากมายรวมถึงUbuntu 16.04.2 LTSใช้เวอร์ชันนี้
apt install build-essential
และapt-get build-dep coreutils
จากนั้นดาวน์โหลด coreutils-8.25.tar.xz, และเรียกใช้tar xvf coreutils-8.25.tar.xz
configure --prefix=$HOME/usr/local
make
รวบรวมใหม่dd
จะอยู่ภายใต้src
ผบ. คุณสามารถคัดลอกไปยัง / bin และแทนที่ที่มีอยู่หนึ่งหรือ jus ทำงานเป็น src / วัน
ที่ดีที่สุดคือการใช้http://dcfldd.sourceforge.net/มันง่ายในการติดตั้งผ่าน apt-get
dd
และตัวเลือกstatus=on
โดยค่าเริ่มต้นสำหรับข้อความความคืบหน้าstatusinterval=N
(N ในบล็อก) สำหรับความถี่การปรับปรุงข้อความและsizeprobe=[if|of]
ตัวบ่งชี้ร้อยละ ฉันจะใช้นามแฝงเป็นDD
:)
สถานะความคืบหน้าดั้งเดิมถูกเพิ่มใน dd !!!
Coreutils เวอร์ชันใหม่ (8.24) เพิ่มสถานะความคืบหน้าในdd
เครื่องมือ:
การใช้งานบน Xubuntu 15.10:
เปิดเทอร์มินัลแล้วพิมพ์คำสั่งเหล่านี้:
wget ftp://ftp.gnu.org/pub/gnu/coreutils/coreutils-8.24.tar.xz
tar -xf coreutils-8.24.tar.xz
cd coreutils-8.24
./configure && make -j $(nproc)
เรียกใช้dd
เป็นราก:
sudo su
cd src
./dd if=/dev/sdc of=/dev/sda conv=noerror status=progress
คุณจะเห็น: ไบต์วินาทีและความเร็ว (ไบต์ / วินาที)
วิธีตรวจสอบเวอร์ชั่นของdd
:
พื้นเมือง:
dd --version
ใหม่:
cd coreutils-8.24/src
./dd --version
หากคุณเริ่ม dd แล้วและหากคุณกำลังเขียนไฟล์เช่นเมื่อสร้างสำเนาของ pendrive ไปยังดิสก์คุณสามารถใช้คำสั่ง watch เพื่อสังเกตขนาดของไฟล์เอาต์พุตเพื่อดูการเปลี่ยนแปลงและการประเมินโดยประมาณ
watch ls -l /pathtofile/filename
หากต้องการดูเฉพาะขนาดไฟล์ (มุมมอง h-human):
watch ls -sh /pathtofile/filename
dd | pv | dd
สามทำสำเนา 50GB VM ของฉันใช้เวลา 800 วินาทีเมื่อเทียบกับ 260 วินาทีใช้ DD เพียง ด้วยไพพ์ไลน์นี้อย่างน้อย pv ไม่ทราบว่าไฟล์อินพุตมีขนาดใหญ่เพียงใดดังนั้นจึงไม่สามารถบอกคุณได้ว่าคุณอยู่ไกลแค่ไหนดังนั้นจึงไม่มีข้อเสียในการทำดังต่อไปนี้ - และคุณจะได้รับความเร็วที่ดี:
ฉันจะหลีกเลี่ยง pv ในสิ่งที่มีขนาดใหญ่และ (ถ้าใช้ Bash):
ควบคุม -Z กระบวนการ dd
bg
เพื่อวางไว้ในพื้นหลัง สังเกตว่าbg
จะให้ผลลัพธ์เหมือนกับ[1] 6011
ที่หมายเลขหลังคือรหัสกระบวนการ ดังนั้นทำ:
while true; do kill -USR1 process_id ; sleep 5; done
โดยที่ process_id เป็นรหัสกระบวนการที่คุณสังเกตเห็น กด Control-C เมื่อคุณเห็นสิ่งที่ต้องการ:
[1]+ Done dd if=/path/file.qcow2 of=/dev/kvm/pxetest bs=4194304 conv=sparse
-bash: kill: (60111) - No such process
คุณทำเสร็จแล้ว
แก้ไข: ผู้ดูแลระบบ Silly! ทำให้ชีวิตของคุณเป็นอัตโนมัติไม่ทำงาน! ถ้าฉันมีกระบวนการที่ยาวนานที่ฉันต้องการตรวจสอบนี่เป็นหนึ่งในสายการบินที่จะดูแล Enchilada ทั้งหมดสำหรับคุณ ใส่ทั้งหมดนี้ไว้ในบรรทัดเดียว:
dd if=/path/to/bigimage of=/path/to/newimage conv=sparse bs=262144 & bgid=$!; while true; do sleep 1; kill -USR1 $bgid || break; sleep 4; done
แน่นอนคุณสามารถสคริปต์มันอาจทำให้ $ 1 ไฟล์อินพุตของคุณและ $ 2 ไฟล์เอาต์พุตของคุณ นี่เป็นแบบฝึกหัดสำหรับผู้อ่าน โปรดทราบว่าคุณจำเป็นต้องนอนหลับน้อยก่อนที่จะฆ่าหรือการฆ่าอาจตายพยายามส่งสัญญาณไปยัง dd เมื่อยังไม่พร้อม ปรับการนอนหลับของคุณตามต้องการ (อาจลบการนอนหลับครั้งที่สองออกไปด้วยกัน)
Bash- FTW! :-)
while
ลูป watch
ใช้
sudo watch pkill dd
หรือหน้าจอหน้าต่างอื่นเรียก จากนั้นดูdd
ผลลัพธ์ของสถิติอย่างสะดวกสบาย
watch pkill -USR1 -x dd
รับสัญญาณตั้งแต่ผมใช้ ตั้งแต่ฉันยังใช้watch
สำหรับงานที่คล้ายกันอื่น ๆ อันนี้มาโดยธรรมชาติ
http://linuxcommando.blogspot.com/2008/06/show-progress-during-dd-copy.html
โดยทั่วไป:
kill -USR1 < dd pid >
dd if=... of=... bs=4M status=progress oflag=dsync
oflag=dsync
จะทำให้การเขียนของคุณตรงกันอยู่เสมอดังนั้นข้อมูลของstatus=progress
มีความแม่นยำมากขึ้น อย่างไรก็ตามมันอาจช้าลงเล็กน้อย
conv=fsync
ดีกว่า
Ubuntu 16.04 มาพร้อมกับ DD (coreutils) เวอร์ชัน8.25 ดังนั้นตัวเลือกที่status=progress
ถูก :-) สนับสนุน
หากต้องการใช้เพียงเพิ่มstatus=progress
พร้อมกับdd
คำสั่งของคุณ
ตัวอย่าง:
dd bs=4M if=/media/severus/tools-soft/OperatingSystems/ubuntu-16.04-desktop-amd64.iso of=/dev/null status=progress && sync
ให้สถานะเป็น
1282846183 bytes (1.2 GiB, 1.1 GiB) copied, 14.03 s, 101.9 MB/s
ใช้ตัวเลือกstatus=progress
เพื่อรับความคืบหน้าในระหว่างการถ่ายโอน
นอกจากนี้conv=fsync
จะแสดงข้อผิดพลาด I / O
ตัวอย่าง:
sudo dd if=mydistrib.iso of=/dev/sdb status=progress conv=fsync
ฉันชอบ ddrescue มันทำหน้าที่เหมือน dd แต่ให้ผลลัพธ์และไม่ล้มเหลวจากข้อผิดพลาดในทางตรงกันข้ามมันมีอัลกอริธึมขั้นสูงมากและพยายามอย่างหนักที่จะทำสำเนาที่ประสบความสำเร็จจริง ๆ ... นอกจากนี้ยังมี GUIs มากมายสำหรับมัน
โครงการ: https://www.gnu.org/software/ddrescue
Wikipedia: https://en.wikipedia.org/wiki/Ddrescue
ฉันได้สร้าง wrapper ทุบตีมากกว่าdd
ที่จะใช้pv
เพื่อแสดงความคืบหน้า ใส่ลงในของคุณ.bashrc
และใช้dd
ตามปกติ:
# dd if=/dev/vvg0/root of=/dev/vvg1/root bs=4M
2GB 0:00:17 [ 120MB/s] [===========================================================>] 100%
0+16384 records in
0+16384 records out
2147483648 bytes (2.1 GB) copied, 18.3353 s, 117 MB/s
ที่มา:
dd()
{
local dd=$(which dd); [ "$dd" ] || {
echo "'dd' is not installed!" >&2
return 1
}
local pv=$(which pv); [ "$pv" ] || {
echo "'pv' is not installed!" >&2
"$dd" "$@"
return $?
}
local arg arg2 infile
local -a args
for arg in "$@"
do
arg2=${arg#if=}
if [ "$arg2" != "$arg" ]
then
infile=$arg2
else
args[${#args[@]}]=$arg
fi
done
"$pv" -tpreb "$infile" | "$dd" "${args[@]}"
}
#!/bin/bash
. ด้านล่าง: tmp=":${PATH}:"; tmp=${tmp/:/usr/local/bin:/:}; tmp=${tmp%:}; PATH=${tmp#:}; dd "$@"
หรือคุณอาจต้องการdd
ระบุตำแหน่งฮาร์ดโค้ด local dd=/usr/bin/dd
จากนั้นใช้ อย่าลืมเพิ่มบิตที่ใช้งานได้: chmod +x /usr/local/dd
.
ดังนั้นวันนี้ฉันรู้สึกหงุดหงิดเล็กน้อยกับการพยายามวิ่งkill
วนเป็นวงกลมในขณะที่dd
กำลังวิ่งและเกิดขึ้นกับวิธีนี้ในการวิ่งขนานกันได้อย่างง่ายดาย:
function vdd {
sudo dd "$@" &
sudo sh -c "while pkill -10 ^dd$; do sleep 5; done"
}
ตอนนี้ใช้vdd
ที่ใดก็ได้ตามปกติdd
(ผ่านการขัดแย้งทั้งหมดโดยตรง) และคุณจะได้รับรายงานความคืบหน้าที่พิมพ์ทุก 5 วินาที
ข้อเสียเพียงอย่างเดียวคือคำสั่งจะไม่ส่งคืนทันทีเมื่อ dd เสร็จสมบูรณ์ ดังนั้นจึงเป็นไปได้ว่าคำสั่งนี้จะทำให้คุณรออีก 5 วินาทีหลังจากที่ dd กลับมาก่อนที่จะสังเกตเห็นและออก
สิ่งนี้บังคับให้ dd จัดทำสถิติทุก 2 วินาทีซึ่งเป็นค่าเริ่มต้นสำหรับการดู:
watch killall -USR1 dd
หากต้องการเปลี่ยนจากทุก 2 วินาทีเป็นทุกๆ 5 วินาทีให้เพิ่มตัวเลือก -n 5 ดังนี้:
watch -n 5 killall -USR1 dd
ในกรณีที่ใครก็ตามจาก CentOS land เกิดขึ้นเพื่อค้นหากระทู้นี้ ...
ตัวเลือก 'status = คืบหน้า' ใช้งานได้กับ CentOS 7.5 และ 7.6
คำตอบข้างต้นโดย @davidDavidson บอกเป็นนัยถึงฟีเจอร์ที่ถูกเพิ่มเข้ามาใหม่ใน Coreutils 8.24
coreutils ของ GNU เวอร์ชั่น 8.24 มีแพตช์สำหรับ dd แนะนำพารามิเตอร์เพื่อพิมพ์ความคืบหน้า
อาจเป็นกรณีนี้ แต่ CentOS อาจไม่ทำตามรูปแบบการกำหนดรุ่นเดียวกัน
Coreutils เวอร์ชันที่มาพร้อมกับ CentOS 7.6.1810 คือ:
coreutils-8.22-23.el7.x86_64 : A set of basic GNU tools commonly used in shell scripts
และเวอร์ชั่นของ dd ที่ติดตั้งคือ:
[root@hostname /]# dd --version
dd (coreutils) 8.22
Copyright (C) 2013 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Written by Paul Rubin, David MacKenzie, and Stuart Kemp.
นี้แสดงให้เห็นรุ่น8.22
อย่างไรก็ตามฉันได้ทดสอบ 'status = progress' ด้วย dd ทั้งบน CentOS 7.5 และ CentOS 7.6 (ทั้งคู่กับ Coreutils เวอร์ชัน 8.22) และทำงานได้อย่างถูกต้อง
ฉันไม่รู้ว่าทำไม RedHat เลือกที่จะใช้ Coreutils เวอร์ชันเก่า แต่มีการใช้งานกับ 8.22
อย่างน้อยกับ 'dd' จาก GNU coreutils หรือ busybox มันจะตอบสนองต่อสัญญาณ USR1 โดยการพิมพ์ข้อมูลความคืบหน้าไปยัง stderr
ฉันเขียนสคริปต์ตัวห่อหุ้มเล็กน้อยสำหรับ dd ที่แสดงตัวบ่งชี้เปอร์เซ็นต์ที่สมบูรณ์และพยายามที่จะไม่ยุ่งเกี่ยวกับกระบวนการของ dd หรือวิธีการทำงานในทางใดทางหนึ่ง คุณสามารถค้นหาได้ใน GitHub:
http://github.com/delt01/dd_printpercent
น่าเสียดายที่เคล็ดลับ SIGUSR1 นี้ใช้ได้กับ GNU dd เท่านั้น (จากแพ็คเกจ coreutils) หรือโหมด 'dd' ของ busybox ด้วยคุณสมบัติเฉพาะนั้นที่เปิดใช้งานในเวลารวบรวม ไม่ทำงานกับหุ้น 'dd' ที่รวมอยู่ในระบบ BSD ส่วนใหญ่รวมถึง FreeBSD และ OS X ... :(
คุณสามารถดูความคืบหน้าของโครงการ coreutils ใด ๆ progress - Coreutils Progress Viewer
โดยใช้
มันสามารถตรวจสอบ:
cp mv dd tar cat rsync grep fgrep egrep ตัดการเรียงลำดับ md5sum sha1sum sha224sum sha256sum sha384sum sha384sum sha512sum adb gzip gunzip bzip2 xz unxz lzma unlzma 7z
คุณสามารถดูmanpage
คุณสามารถใช้มันในหน้าต่างเทอร์มินัลแยกขณะที่คำสั่งกำลังทำงานหรือเปิดใช้งานด้วยคำสั่ง dd:
dd if=/dev/sda of=file.img & progress -mp $!
ที่นี่จะ&
ใช้คำสั่งแรกและดำเนินการต่อทันทีแทนที่จะรอจนกว่าคำสั่งจะจบลง
คำสั่งความคืบหน้าเปิดตัวด้วย: -m
ดังนั้นจึงรอจนกว่ากระบวนการที่ตรวจสอบจะสิ้นสุดลง-p
ดังนั้นจึงตรวจสอบ pid ที่กำหนดและ$!
เป็นคำสั่ง pid ล่าสุด
หากคุณออก dd ด้วย sudo คุณก็ต้องมีความคืบหน้าด้วยเช่นกัน:
sudo dd if=/dev/sda of=file.img &
sudo progress -m
# with no -p, this will wait for all coreutil commands to finish
# but $! will give the sudo command's pid