ddpt is yet another variant of the venerable Unix dd command line utility. It offers more precise control over a storage copy and can bypass upper layers to use SCSI commands like READ, WRITE, WRITE AND VERIFY, WRITE ATOMIC or offloaded copy mechanisms to move the data. ddpt supports the Linux kernel 2.6, 3, 4 and 5 series with ports to FreeBSD, Solaris, Android and Windows. There is a little SNTL hiding in the sg3_utils library used by this utility. That can now translate SCSI READ, WRITE and VERIFY(BytChk=1) to NVM(e) Read, Write and Compare commands. Since NVMe doesn't have separate pass-through device nodes, the default action of ddpt is to treat a NVMe device node (e.g. /dev/nvme0n1) as a normal block device. The 'pt' flag is needed on NVMe devices to use that SNTL. Note that --verify only works when OFILE is a pt device; the cmp utility can be used in other cases. For more information and downloads see: https://sg.danny.cz/sg/ddpt.html or https://doug-gilbert.github.io/ddpt.html https://sg.danny.cz/sg/ddpt_xcopy_odx.html There is a github mirror (of my subversion repository) at: https://github.com/doug-gilbert/ddpt Changelog for released ddpt-0.97 [20210421] [svn: r388] - ddpt: add cdl operand for command duration limits - ddpt: add oflag=nocreat and conv=nocreat that require OFILE to exist, it won't be created - ddpt: warn if disk has protection type 2 and cdbsz!=32 has not been used (it is required according to SBC-4) - ddpt: cdbsz= operand can now take 2 comma-separated numbers - NVMe devices can now be accessed via iflag=pt or oflag=pt without those flags they will be accessed as block devices - now accept --progress or -p as shorter form of status=progress [borrowed from FreeBSD's dd] - fix progress reporting when OFILE is /dev/null - start using autoconf 2.70 - point svn:externals to sg3_utils release 1.46 (rev 891) Changelog for ddpt-0.96 [20200303] [svn: r375] ... Doug Gilbert