答案1
你得到Permission denied
错误,因为你没有root
。这在 Cygwin 的环境下听起来有些奇怪,但却很有说服力。
id
当你在正常启动的 Cygwin shell 中查询状态( )时,你会得到类似这样的信息:
$ id
uid=1001(user) gid=545(Users) groups=545(Users),555(Remote Desktop Users),513(None)
$ dd if=/dev/sda bs=1000 count=1 | wc -c
dd: opening `/dev/sda': Permission denied
0
在 Windows 7 下,进入 Cygwin 的诀窍root
是启动会话升高即右键单击 Cygwin 图标并选择以管理员身份运行。现在你的还不是root
它自己,但至少在root
的组中:
$ id
uid=1001(user) gid=545(Users) groups=545(Users),0(root),544(Administrators),555(Remote Desktop Users),513(None)
现在,dd
它就可以像你在 Un*x 中习惯的那样工作了:
$ dd if=/dev/sda bs=1000 count=1 | wc -c
1+0 records in
1+0 records out
1000 bytes (1.0 kB) copied, 0.00104424 s, 958 kB/s
1000
答案2
我最近不得不在 Windows 上将一个 USB 驱动器克隆到另一个。我的驱动器是带有附加软件的多重引导驱动器,所以我不想只复制 FS 上的所有文件。DD 是一个明显的选择,但我没有使用 Linux,所以我必须做一些事情才能让它正常工作。
我安装了 cygwin 并执行以下操作。
首先我必须弄清楚我的 f: 卷是什么 /dev/sdX 设备。为此,请在 cygwin 中运行此命令。(提示:确保以管理员权限启动 cygwin。*右键单击 cygwin 并“以管理员身份运行”)
cat /proc/partitions
which should output:
8 0 3813383838 sda
8 1 4031 sda3 C:\
8 15 30588303 sdb
8 15 30588303 sdb1 E:\
8 21 30530020 sdc
8 22 30530020 sdc1 F:\
等等...在这里您可以清楚地看到,要将我的 F:驱动器克隆到我的 E:驱动器,我会发出以下命令。
实际上还有一个步骤,你必须找到设备的根目录。查找具有设备大小的 sd*。这应该很容易,因为大小应该是众所周知的,例如 8GB、16GB、32GB,以字节为单位展开,如上所示。
dd if=/dev/sdc of=/dev/sdb bs=8M
我的图像是 32gb..我不想只是坐着等待闪烁的光标..我想看到进度,所以我在 cygwin 中安装了“pv”。
dd if=/dev/sdc | pv | dd of=/dev/sdb bs=8M
现在,如果您想将拇指驱动器复制到图像,请执行以下操作。
dd if=/dev/sdX | pv | dd of=/cygdrive/c/Users/Myname/Desktop/mythumbdrive.img bs=8M
希望这可以帮助
答案3
我曾成功dd(适用于 Windows),我相信这是重写而不是移植。它是开源的,不依赖于 Cygwin。
我特别喜欢这个dd --list
命令,它列出了所有磁盘设备以及足够的信息来识别我想要的设备。
答案4
HDD 原始复制工具可以复制 SD 卡。如果您在保存对话框中选择“原始图像(dd 图像)”,则它将与使用 dd 制作的图像相同。您也可以恢复图像。
我知道这不是通过 cygwin 完成的,但我个人不相信它访问原始设备。