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.