Windows эквивалент для дд


40

Мне нужно читать и писать различные образы флэш-карт. То, как я всегда делал это в Linux, было с dd, и это помогло. Что такое хороший эквивалент Windows?

Проще говоря, мне нужно иметь возможность прочитать всю карту в файл и наоборот. Я пробовал WinDD , но, похоже, он работает на разделах, а не на целых устройствах, но мне нужно иметь возможность выгрузить весь диск / карту и таблицу разделов независимо от ее содержимого.

Использование Windows 7 64bit, с кард-ридером через порт USB3.

Ответы:


20

Попробуйте Win32DiskImager , он может записывать образы на диски.


5
Он размещен на SourceForge, который имеет историю включения вредоносных программ в дистрибутивы вопреки желанию владельцев проекта. Источник: notepad-plus-plus.org/news/notepad-plus-plus-leaves-sf.html
Скотт Стивенс,

4
@AnthonyLozano Я загрузил win32diskimager из sourceforge, в нем нет вредоносных программ, он широко используется и даже рекомендуется для таких вещей, как Raspberry Pi, для записи образов дисков. Существует вилка на GitHub , но вы должны скомпилировать его самостоятельно github.com/bizplay/win32-disk-imager
Logern

2
Я начал использовать Chocolatey для всех моих утилит. Подумайте apt-get для Windows, используя платформу NuGet. Там есть пакет win32diskimager, который устанавливается без проблем. Портативный, а также. chocolatey.org
Майк

4
Это не работает для устройств без присвоенных им букв разделов, поэтому бесполезно для устройств с нераспознанными разделами или вообще без разделов. Не эквивалентно dd.
Ксерц

1
Он не создает файл образа, совместимый с dd, фактически он пытается понять структуру диска и создает zip-файл с каждым разделом, который он распознает в отдельном файле. И в моем случае возникли проблемы с восстановлением файлов на разделы снова
user230910

20

Просто используйте dd для Windows ... он отлично работает, хотя это довольно старый проект.


Кажется, есть проблема под Windows 10. У кого-нибудь есть проблемы с .6 бета 3?
TravisWhidden

@TravisWhidden, какие проблемы? Я столкнулся с некоторыми ошибками «невозможности записи», но не уверен, что это та же проблема.
Скотт Стивенс

Это не работает для меня на моей машине Win7
Аарон

Это, кажется, работает, но кажется slooooow ...
user230910

Спасибо, отлично работал для меня.
Джесси Бусман

14

Руфус работает как положено. Выберите «DD Image» для «Создать загрузочный диск с помощью».

Источник опубликован на GitHub: https://github.com/pbatard/rufus .

Мой опыт: Win32DiskImager не обнаружил u-SD через считыватель USB-3; dd для Windows, скомпилированный MinGW dd, Unix Utils dd и Linux dd VIA VirtualBox VM USB3 проходил все недопустимо медленно; Я до сих пор не нашел эквивалент командной строки Windows, который может побить скорость записи 50 МБ / с, которую я вижу с Rufus.


Мой голос за Руфуса тоже. Ни один из других предложенных ответов не работал для меня в Windows 10 Pro v1703. Хорошо ... давайте будем честными ... Я не пробовал решение Python.
Дуг Уилсон

3
Он действительно хорош для предварительной загрузки изображений на USB-накопители, но он не выполняет половину того, что может сделать dd, так что это не совсем «эквивалент»
Rolf

3
Это недопустимо, поскольку позволяет только записывать образы на диски, а не читать эти диски.
Ксерц

2
Руфус сделал для меня диск с другой контрольной суммой из картинки.
fuzzyTew

1
Сегодня редко можно увидеть полезное приложение размером всего 1 МБ. Какой отличный инструмент!
Гарет Дэвидсон

9

Сначала я также попробовал Win32DiskImager, который, как я думал, делает только копию раздела на основе его дисплея (нет, он может создавать резервные копии всей SD-карты), поэтому я продолжил поиск.

Мой текущий фаворит - HDDRawCopy . Он копирует в / из файла весь образ диска, но не разделы по отдельности. Он создает dd-совместимые или сжатые изображения на лету - не так эффективно, как 7zip (даже не достигает производительности ZIP), но вам не нужно снова прикасаться к изображению.


2
HDD Raw Copy смог обнаружить пустой диск SCSI, который "dd for windows" не смог. Это позволило мне скопировать диск HFS из Windows! Благодарность!
HackSlash

2
Обратите внимание, что по какой-то причине HDD RAW COPY имеет ограничение в 50 МБ / с
Gizmo

9

Удивило, что никто не упомянул утилиты ядра GNU для Windows , я использую их годами. они 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

сообщенное время немного странно, но в остальном кажется, что оно работает хорошо.


1
Правильно ли копируется содержимое более 4-х гигабайт? В прошлый раз, когда я проверял (давно), он был скомпилирован с использованием среды выполнения Microsoft где off_ta long, следовательно, смещения ограничены 31 или 32 битами ... что является большим обманом при использовании dd.
AntoineL

Я никогда не пробовал, извините.
jcomeau_ictx

Git для Windows поставляется (на момент написания) с версией dd 8.30, скомпилированной в 2018 году. Кажется, что он отлично работает с /dev/sdXименами, по крайней мере, из Git Bash, работающего от имени администратора. Вероятно, некоторое время назад он потерял все 32-битные ограничения.
mwfearnley

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')

3
Просто для записи, я думаю, что было бы во много раз быстрее делать больше, чем один байт за раз. И нет никаких условий ошибки, сценарий полагается на ненулевые байты, возникающие на ранней стадии, и вы заметили, что он напечатал «готово» на ранней стадии.
Люк

2
Как вы знаете, какой диск для цели?
HackSlash

Python - неправильный инструмент, подобный тесному циклу. Лучше было бы создать буфер с 256 КБ всех нулей и сравнить его с 256 КБ, извлеченным из диска за один раз. Плюс наличие некоторой обработки исключений.
Гарет Дэвидсон

3

Для истинного эквивалента в ddWindows не ищите полусырые альтернативы - просто установите настоящий GNU dd. Лучший способ сделать это, вероятно, Cygwin , довольно полный дистрибутив GNU и других инструментов FOSS. Думайте об этом как об установке «Linux» (точнее, (GNU) Linux-дистрибутива) поверх Windows, без каких-либо слоев эмуляции или ограниченного черного ящика, такого как подсистема Windows для Linux. Это как родной, как это получается.

Чтобы использовать его, вам необходимо:

  1. Установите базовую среду Cygwin. Сделайте так, как указано на сайте , просто оставьте значения по умолчанию, если вам это нужно, ddно вы также можете повеселиться и получить подсказку о том, что он может предложить.
  2. Откройте терминал Cygwin как администратор , затем проверьте, с каким устройством / разделом вы хотите работать cat /proc/partitions.
  3. Используйте ddкак на любом (GNU) Linux.

Вы даже можете использовать cygwin из командной строки DOS ... (я все время использую для cat / grep / tail / ...) и даже в консоли DOS / Windows "ls -la / proc" работает нормально ... один из моих любимых ...
ZEE

3

вау все эти ответы и DISM существует уже давно? Я уверен, что он был встроен в Windows 7 с самого начала.

DISM / capture-image /image-file:d:\backup.wim / capturedir: c: \ / name: simpleback

Есть много настроек, которые вы можете настроить. после захвата - разверните на новом носителе с помощью инструментов dism.



Не работает: The /image-file option is not recognized in this context.. Должно быть/imagefile
yahol

1

Попробовав некоторые из инструментов, рекомендованных здесь, я в итоге использовал balena Etcher в Windows 10. (Руфус дал мне результат с неверной контрольной суммой. HDDRawCopy дал мне ошибку записи.)


Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.