相当于 dd 的窗口

Jar*_*und 53 windows windows-7 dd disk-image

我需要读取和写入各种闪存卡图像。我在 linux 中总是这样做的方式是使用 dd,这就是诀窍。什么是好的窗户等价物?

简而言之,我需要能够将整张卡读入一个文件,反之亦然。我试过WinDD,但这似乎是在分区而不是整个设备上运行,但我需要能够转储整个磁盘/卡及其分区表,而不管其内容如何。

使用 Windows 7 64 位,读卡器位于 USB3 端口。

Eug*_*eck 27

只需将dd 用于 WINdows ......即使它是一个相当古老的项目,它也能完美运行。

  • 在 Windows 10 下似乎有问题。有人对 .6 beta 3 有问题吗? (2认同)

Log*_*ern 27

试试Win32DiskImager,它可以将图像写入磁盘。

  • 这不适用于没有分配分区号的设备,因此对于具有无法识别分区或根本没有分区的设备是无用的。不等同于`dd`。 (7认同)
  • @AnthonyLozano 我从 sourceforge 下载了 win32diskimager,它没有任何恶意软件,它被广泛使用,甚至推荐用于 Raspberry Pi 之类的东西来写入磁盘映像。github上有fork但是你得自己编译https://github.com/bizplay/win32-disk-imager (5认同)
  • 我已经开始将 Chocolatey 用于我所有的实用程序。考虑使用 NuGet 框架的 Windows apt-get。那里有一个 win32diskimager 包,安装没有问题。便携式的,以及。https://chocolatey.org/ (2认同)
  • 它不会生成 dd 兼容的映像文件,事实上,它会尝试了解磁盘布局并生成一个 zip 文件,其中它在单独的文件中识别出每个分区。就我而言,将文件再次恢复到分区时遇到问题 (2认同)

mst*_*ias 16

Rufus按预期工作。为“使用创建可启动磁盘”选择“DD 映像”。

源代码发布在 GitHub 上:https : //github.com/pbatard/rufus

balenaEtcher是另一个与 Windows 兼容的工具,用于将图像写入 USB 驱动器。它也很快,而且比 Rufus 更容易使用。

我的经验:Win32DiskImager 没有通过 USB-3 读卡器检测到 u-SD;Windows 的 dd、MinGW 编译的 dd、Unix Utils dd 和 Linux dd VIA VirtualBox VM USB3 直通都慢得令人无法接受;我还没有找到可以超过我在 Rufus 上看到的 50MB/s 写入速度的 Windows 命令行等效项。

  • 它非常适合在 U 盘上预加载图像,但它没有 dd 能做的一半,所以它并不是真正的“等效” (4认同)
  • 这是无效的,因为它只允许在磁盘上_写入_图像,而不是_读取_这些磁盘。 (3认同)
  • Rufus 为我制作了一个与图像校验和不同的磁盘。 (2认同)

jco*_*ctx 12

很惊讶没有人提到Windows 的 GNU 核心实用程序,我已经使用它们多年了。它们是 32 位二进制文​​件,但显然,除了less,它们仍然在 Windows 7 64 位下工作

用法示例:

C:\Windows\Temp>dd if="\\.\s:" of=sdrive.dat bs=4096
25599+0 records in
25599+0 records out
104853504 bytes (105 MB) copied, 30.3147 seconds, -56145186608800624000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000 MB/s

C:\Windows\Temp>dd if="\\.\physicaldrive0" of=mbr.dat bs=512 count=1
1+0 records in
1+0 records out
512 bytes (512 B) copied, 0.0210012 seconds, -891479495977528 kB/s
Run Code Online (Sandbox Code Playgroud)

报告的时间有点奇怪,但除此之外它似乎运作良好。

  • 它能否正确复制超过 4 GB 的内容?上次我检查(很久以前)它是针对 Microsoft 的运行时编译的,其中“off_t”是“long”,因此偏移量限制为 31 或 32 位......这在使用“dd”时是一个很大的欺骗。 (2认同)

小智 11

首先我还尝试了 Win32DiskImager,我认为它只是根据其显示进行分区复制(不,它可以备份整个 SD 卡),所以我继续搜索。

我目前最喜欢的是HDDRawCopy。它将整个磁盘映像复制到/从文件复制,但不会单独分区。它动态创建 dd 兼容或压缩的图像 - 不如 7zip 高效(甚至达不到 ZIP 性能),但您不需要再次触摸图像。

  • 请注意,出于某种原因,HDD RAW COPY 的限制为 50MB/s (3认同)
  • HDD Raw Copy 能够检测到“dd for windows”无法检测到的空白 SCSI 驱动器。它允许我从 Windows 复制 HFS 磁盘!谢谢! (2认同)

小智 8

我只是想验证驱动器是否已擦除,所以我只关心阅读,但是如果您不信任这些可执行文件,则可以修改此 python 脚本以执行此类操作。打开 Windows 分区管理器以获取您关心的驱动器的驱动器编号,并将该 2 更改为该编号。然后你可以把它写出来,或者如果你用 wb 而不是 rb 你可以写。祝你好运

import sys

f = open('\\\\.\\PhysicalDrive2','rb')
a = f.read(1)
i = 1

kb = 1024
mb = kb*1024

while a == b'\x00':
    i+=1
    if i % mb == 0:
        sys.stdout.write('\r{} MB scanned'.format(i/mb))
    a = f.read(1)

print('done')
Run Code Online (Sandbox Code Playgroud)

  • 只是为了记录,我认为一次执行多个字节会快很多倍。并且没有错误条件,脚本依赖于早期发生的非空字节,并且您发现它很早就打印了“完成”。 (3认同)
  • 您如何知道目标驱动力是什么? (2认同)

Xer*_*erz 7

对于dd在 Windows 上的真正等价物,不要寻找半生不熟的替代品 - 只需安装真正的 GNU dd. 最好的方法可能是Cygwin,一个非常完整的 GNU 和其他 FOSS 工具的发行版。可以将其视为在 Windows 之上安装“Linux”(或者更确切地说,是 (GNU)Linux 发行版),没有任何仿真层或像 Linux 的 Windows 子系统这样的有限黑盒。它是原生的。

为了使用它,您需要:

  1. 安装基本的 Cygwin 环境。这样做的指示,在网站上,只保留默认值,如果你只需要dd-但你也可以有一些乐趣和得到什么它提供一个提示。
  2. 以管理员身份打开 Cygwin 终端,然后检查您要使用的设备/分区cat /proc/partitions
  3. 使用dd,你会在任何(GNU)的Linux。